收藏 分享(赏)

C语言笔试题.带答案内容.doc

上传人:小屁孩 文档编号:8847136 上传时间:2019-07-14 格式:DOC 页数:354 大小:257.38KB
下载 相关 举报
C语言笔试题.带答案内容.doc_第1页
第1页 / 共354页
C语言笔试题.带答案内容.doc_第2页
第2页 / 共354页
C语言笔试题.带答案内容.doc_第3页
第3页 / 共354页
C语言笔试题.带答案内容.doc_第4页
第4页 / 共354页
C语言笔试题.带答案内容.doc_第5页
第5页 / 共354页
点击查看更多>>
资源描述

1、-_一、选择题(1)(10)每小题 2 分, (11)(50)每小题 1 分,共 60 分)下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)在数据结构中,从逻辑上可以把数据结构分为_。A)动态结构和静态结构 B)紧凑结构和非紧凑结构C)线性结构和非线性结构 D)内部结构和外部结构答案:C评析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。(2)若进栈序列为 l,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是_。A)1,4,3,

2、2 B)2,3,4,lC)3,1,4,2 D)3,4, 2,1答案:C评析:栈是一种后进先出表,选项 c 中,先出栈的是 3,说明此时栈内必然有1,2,由于 l 先于 2 进栈,所以 l 不可能在 2 之前出栈,故选项 C 这种出栈序列是不可能的。(3)排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_。A)希尔排序 B)冒泡排序 C)插入排序 D)选择排序答案:A评析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。-_(4)在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值 11,所需的关键

3、码比较次数为_。A)2 B)3 C)4 D)5答案:C评析:二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与 ll 比较的关键码分别为 15,8,10,12 四个。(5)对于 n 个结点的单向链表(无表头结点),需要指针单元的个数至少为_。A)n-1 B)n C)n+l D)2n答案:C评析:在 n 个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要 n+1 个指针单元。(6)在软件开发过程中,软件结构设计是描述_。A)数据存储结构 B)软件体系结构 C)软件结构测试

4、D)软件控制过程答案:B评析:从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。(7)模块本身的内聚是模块独立性的重要性度量因素之一。在 7 类内聚中,具有最强内聚 的一类是_。A)顺序性内聚 B)过程性内聚 C)逻辑性内聚 D)功能性内聚答案:D-_评析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚共有7 类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。(8)数据存储和数据流都是_,仅仅是所处的状态不同。A)分析

5、结果 B)事件 C)动作 D)数据答案:D评析:数据流图有 4 种成分:源点或终点、处理、数据存储和数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。(9)数据的完整性是指数据的正确性、有效性和_。A)可维护性 B)独立性 C)安全性 D)相容性答案:D评析:数据模型的完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。(10)关系代数运算是以_为基础的运算。A)关系运算 B)谓词运算 C)集合运算 D)代数运算答案:C评析:关系代数运算是以关系代数作为运算对象的一组高级运算的集合。它

6、的基本操作是并、交、差、笛卡尔积,另外还包垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。(11)能将高级语言程序转换成目标语言程序的是_。A)调试程序 B)解释程序 C)编译程序 D)编辑程序答案:C-_评析:用高级语言编写的程序称为“源程序”,而计算机只能识别和执行由 0和 l 组成的二进制指令,所以高级语言必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。(12) _是构成 c 语言程序的基本单位。A)函数 B)过程 C)子程序 D)子例程答案:A评析:c 程序是由函数构成的。一个 c 源程序至少包含一个 main 函数,也可以包含一个 main 函数

7、和若干个其他函数,因此,函数是 c 程序的基本单位。(13)可以在 C 语言中用做用户标识符的是_。A)void B)as_b3 C)for D)2cdefine _123 -abc DoWORD If cas SIG答案:B评析:c 语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。另外还需要注意的是关键字不能作标识符。选项 A 中 void,C 中 for 都为关键字,D 中 2c 以字母开头。(14)若有以下类型说明语句:char w;int x;float y,z;则表达式 w*x+z-y 的结果为_类型。A)float B)char C)int

8、D)double答案:A评析:在进行运算时,不同类型的数据参加运算,需要先将其转换成同一类型的数据,然后再进行运算。转换的顺序由低到高为:char,shortintunsignedlongdoublefloat,故结果为 float 型。-_(15)main() float x=123A56;printf(“-52fn”,x);以上程序输出的结果是_。A)1234 B)1235 C)12345 D)12346答案:D评析:f 格式符,用来输出实数,以小数形式输出。“-mnf”的含义是:输出数据共占 m 列,其中 n 位小数,如果输出位数小于 m。则右端补空格。如果总长度大于列数,则按实际情况四

9、舍五入输出。(16)下面语句的输出结果是_。Printf(“dn”,strlen(“t”065xffn”);A)14 B)8C)5 D)输出项不合法,无正常输出答案:C评析:在 c 语言中,以“”开头的字符均为转义字符,其中“”后可跟l3 位八进制数或在“”后跟字母 x 及 l2 位十六进制数,以此来代表一个特定的字符。(17)下列程序的输出结果是_。main() int a=0,b=0,c=0;if(+a0lI+b0)+c;-_printf(“na=d,b=d,c=d”,a,b,C);A)a=0,b=0,c=0 B)a=l,b=l,c=1C)a=l,b=O, c=I D)a=0, b=1c=

10、1答案:C评析:“”是或运算,它有个“短路”的特点需特别注意,当“”运算符左边的表达式的值为真时,则程序就不再对“”右边的表达式的值进行运算,而是使得整个表达式的值直接为真。(18)下列程序的输出结果是_。Main() int i;for(i=1;i+l;i+) if(i4)printlf(”d”,i+);break;printf(“d”,i+);A)55 B)56C)程序错误,没有输出 D)循环条件永远为真,死循环答案:B评析:本程序中有个 for 循环,但注意到 for 循环的条件是“i+l”,也就是只要 i+l 的值为真(非零值均为真),就执行循环。当 i=l 的时,i+l 的值为真,判

11、断 if 条件不成立,执行 i+,输出 i 的值为 5。-_(19)下列程序的输出结果是_。#define A 100main() int i=O,sum=O;do if(I=(i2)*2)continue;sum+=i;while(+i代表回车符)aaabbb-_A)aaa B)aaa C)aaa0bbb0 D)aaabbbbbbbbb答案:B评析:scanf 是标准输入函数,在输入字符串 aaa 时,实际的内容为“aaa0”,“0”是由系统自动加入的;gets 的功能是从终端读入一行字符,即一直读到换行符为止,并由系统自动以“0”代替换行符。(30)下述函数功能是_。Int fun(cha

12、r*x) char*y=x;while(*y+);return y-x-l;A)求字符串的长度 B)求字符串存放的位置C)比较两个字符串的大小 D)将字符串 x 连接到字符串 y 后面答案:A评析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。(31)以下程序的输出结果是_。main() char str12=s,t,r,i,n, g;printf(”dn”,strlen(str);-_A)6 B)7 C)ll D)12答案:A评析:在 c 语言中,字符串的长度是其首字符到 NULL(不含)字符的总字符个数。本题定义字符数组

13、 str 的同时,对第 7 个元素,由系统自动添加上“0”,故字符串的长度为 6。(32)请读程序段:char str=”ABCD”,*p=str;printf(”dn”,*(p+4);程序段的输出结果是_。A)68 B)0C)字符D的地址 D)不确定的值答案:B评析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“0”,故指向字符数组的指针 p 的+(p+4)的值为“0”。由于“0”的编码值就是 0,所以本题输出为 0。(33)若有定义:int a410;,则以下选项中对数组元素 aij引用错误的是_。(0#includemain() char*sl=”AbCdEf

14、”,*s2=”aB”;s1+;s2+;printf(”dn”,strcmp(s 1,s2);上面程序的输出结果是_。A)正数 B)负数 C)零 D)不确定的值答案:A评析:函数 strcmp 的功能是比较字符串 s1 和 s2,如果 sls2,则返回个正数;如果 sls2,所以函数的值为正数。(36)下面程序的输出是_。char s=”ABcD”;-_main() char*p;for(p=s;pmain() char*p=”B00L”,”0PK”,”H”,”SP”;int i:for(i=3;i=0;i,i)printf(“c”,*pi);printf(”n”);A)SO B)SP C)SP

15、OPK D)SHOB答案:A评析:p0存放的是“BOOL0”的首地址;p1存放的是“OPK0”的首址等。在 printf 语句中输出的+pI表示 pi字符串的第一个字符。在 for 循环中,i 的初值为 3,那么输出的第一个字符为“s”,接着两次 i,则输出的值为+p1,即字符“0”,所以本题的输出为 SO。(39)以下程序的输出结果是_。#include-_void prt(int*x,int*y,int*z) printf(”d,d,dn”,+*x,+*y*(z+);int a=10,b=40,c=20;main() prt(答案:【16】length+【17】ilength评析:第一个循环极有可能是计算串的长度,在 i=length 时字符才被删除,被删除的是从第 i 个到第 i+n 或最后一个间的所有字符。删除前,应判断i=length。由于已经进行了一 i 运算,故实际应填入 ilength。(17)下述函数统计一个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。int word(char*s) int num=O,flag=O;while(*s) if( 【18】 =”)flag=O;else if( 【19】 )flag=1;num+return 【20】 ;答案:【18】*s+【19】flag=O 或*(s-1)=”

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报