【计算机类职业资格】二级C语言笔试58及答案解析.doc
《【计算机类职业资格】二级C语言笔试58及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试58及答案解析.doc(21页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试 58 及答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.有以下程序段: int x=3 do printf(“%d“,x-=2); while (!(-x); 其输出结果是( )。(分数:1.00)A.1B.3 0C.1 -2D.死循环2.下述关于数据库系统的叙述中正确的是( )。(分数:1.00)A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据3.在最坏情况下,下列排序方法中时间复杂度最小的是( )。(分数:1.00)A.冒泡
2、排序B.快速排序C.插入排序D.堆排序4.下列叙述中正确的是( )。(分数:1.00)A.在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法5.下面不属于软件工程 3 个要素的是( )。(分数:1.00)A.工具B.过程C.方法D.环境6.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(分数:1.00)A
3、.控制流B.加工C.数据存储D.源和潭7.下列叙述中正确的是( )。(分数:1.00)A.实体集之间一对一的联系实际上就是一一对应的关系B.关系模型只能处理实体集之间一对一的联系C.关系模型属于格式化模型D.以上三种说法都不对8.下面程序段的输出结果是( )。 int i=32770; printf(“%d/n“, i);(分数:1.00)A.32769B.32767C.-32766D.输出不确定数9.实型数据在计算机中表示的方法有( )。(分数:1.00)A.双精度型和单精度型B.小数形式和 ASCII 码法C.BCD 码法和指数形式D.小数形式和指数形式10.若有如下程序: sub(int
4、 a,int b,int c) c=a+b; return(c); main() int x=3,y=4,z=6; sub(x,y,z); printf(%d”,z); 则程序运行后的输出结果是( )。(分数:1.00)A.3B.6C.7D.411.若有如下程序: main() int a,b,C,m,n,k; m=n=k=0; a=-1;b=2; C=3; if(c0)m=a+b; if(a=0) if(b0) if(c=0)n=a=b; else if(c0)n=a-b; else k/=c; printf(“%d,%d, %d,“,m,n,k); 则程序运行后的输出结果是( )。(分数:
5、1.00)A.1,0,0B.2,-3,3C.1,-3,3D.1,0,312.以下对枚举类型名的定义中正确的是( )。(分数:1.00)A.enum a=one,two,three;B.enum aone=9,two=-1three=200;C.enum a=“one“,“two“,“four“;D.enum a“nine“,“two“,“three“;13.若有如下程序: main() int n; for(n=0;n9;n+) if(n1) printf(“%d“,n); continue; if(n=4)break; printf(“%d“,n); 则循环体执行的次数是( )。(分数:1.
6、00)A.1B.5C.9D.死循环14.下面程序段中的循环体的执行次数是( )。 for(i=4;i0;i-) for(j=1;j=4;j+) sum=sum+j;(分数:1.00)A.4B.0C.12D.1615.若要打开 A 盘中 user 子目录下名为 aaa.txt 的文本文件进行读、写操作,下面符合此要求的函数调用是( )。(分数:1.00)A.fopen(“A:/user/aatxt“,“r“)B.fopen(“A:/user/aatxt“,“r=“)C.fopen(“A:/user/aatxt“,“rb“)D.fopen(“A:/user/aatxt“,“w“)16.函数 fun
7、 的返回值是( )。 fun(char *a,char *b) int num=0,n=0; while(*(a+num)!=/0)num+; while(bn) *(a+num)=bn;num+;n+;)return num; (分数:1.00)A.字符串 a 的长度B.字符串 b 的长度C.字符串 a 和 b 的长度之差D.字符串 a 和 b 的长度之和17.执行下面程序的正确结果是( )。 main() float a=1.9; switch (a) case 0:printf(“0000“);case 1:printf(“1111“); case 2:printf(“3333“); p
8、rintf(“%f“, a); (分数:1.00)A.1.900000B.111133331.900000C.33331.900000D.00001111233331.90000018.设 x、y、t 均为 int 型变量,则执行语句:x=y=3;t=+x|+y;后,y 的值为( )。(分数:1.00)A.不定值B.4C.3D.119.下面程序的输出结果是( )。 #define PI 3.1415 #define ARE(X) PI*x*x main() int r=2; printf(“%.2f“,ARE(r+1); (分数:1.00)A.28.26B.28.260000C.9.28D.9
9、.28000020.有如下程序 main() int y=3,x=3,z=1; printf(“%d %d/n“, (+x,+y),z+2); 运行该程序的输出结果是( )。(分数:1.00)A.3 4B.4 2C.4 3D.3 321.下列选项中,不能用作标识符的是( )。(分数:1.00)A._1234_B._1_2C.int_2_D.2_int_22.算法的时间复杂度是指( )。(分数:1.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法程序中的指令条数D.算法执行过程中所需要的基本运算次数23.C 语言中各种基本数据类型的存储空间长度排列为( )。(分数:1.00)A.ch
10、arlongintfloatdoubleB.doublefloatlongintcharC.charintlongfloatdoubleD.floatintlongchardouble24.以下程序执行后 sum 的值是( )。(分数:1.00)A.15B.14C.不确定D.0 main() int i, sum; for(i=1;i6;i+) sum+=i; printf(“%d/n“,su; 25.在 C 语言中,关于函数 fseek 的说法正确的是( )。(分数:1.00)A.使位置指针重新返回文件的开头B.使位置指针到文件的结尾C.可以改变文件位置指针D.利用 fseek 函数只能实现
11、文件顺序读写26.以下能正确定义数组并正确赋初值的语句是( )。(分数:1.00)A.int N=5,b;B.int a12=1,3;C.intc2=1,2,3,4;D.int d32=1,2,34;27.若有如下程序: main() char a=“1234“;int i,t=0; for(i=0;ai=0 main() printf(“%1d/n“,fun(3); (分数:1.00)A.1B.2C.3D.443.下面程序输出的结果是( )。 main() int x=100,a=10,b=20,ok1=5,ok2=0; if(ab) if(b!=15) if(!ok1) x=-i; els
12、e if(ok2) x=10; x=1; printf(“%d/n“,x); (分数:1.00)A.-1B.0C.1D.不确定的值44.下列不属于 C 语言关键字的选项是( )。(分数:1.00)A.printfB.sizeofC.externD.long45.有以下程序: void swap1(int C) int t; t=c0; c0=C1; c1=t; void swap2(int c0, int c1) int t; t=c0; c0=c1; c1=t; main() int a2=3,5, b2=3,5); swapl(a); swap2(b0,b1); printf(“%d %d
13、 %d %d/n“,a0,a1,b0,b1); 其输出结果是(分数:1.00)A.5 3 5 3B.5 3 3 5C.3 5 3 5D.3 5 5 346.下列叙述中正确的是( )。(分数:1.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对47.有以下程序: void fun(char *c,int d) *c=*c+1;d=d+1; printf(“%c,%c,“,*c,d); main() char a=A,b=a; fun(C.intc2=1,2,3,4;D.int d32=1,2,3
14、4; 解析:解析 选项 A 中,数组的长度使用了变量 N,而在 C 语言中是不能用变量来定义数组的长度的,故选项 A 错误。在 C 语言中,给二维数组赋初值时,行数不能超过定义的行数,每行的初值个数不能超过定义时的列数,故选项 B 错误。选项 C 数组的第二维下标默认,而在 C 语言中,数组的第二维下标不能默认,故选项 C 错误。所以,D 选项为所选。27.若有如下程序: main() char a=“1234“;int i,t=0; for(i=0;ai=0 main() printf(“%1d/n“,fun(3); (分数:1.00)A.1 B.2C.3D.4解析:解析 本题的 fun 函
15、数是一个递归函数,当参数 n 为 1 或 2 时返回 2,否则返回 n-fun(n-1)。递推下来就是 n-fun(n-1)=n- (n-1)-fun(n-2)=n-(n-1)+(n-2)-fun(n-3)=直到 fun()函数的参数等于 1 或 2,故 fun(3)=3-fun(2)=3-2=1。所以答案是 A。43.下面程序输出的结果是( )。 main() int x=100,a=10,b=20,ok1=5,ok2=0; if(ab) if(b!=15) if(!ok1) x=-i; else if(ok2) x=10; x=1; printf(“%d/n“,x); (分数:1.00)A
16、.-1B.0C.1 D.不确定的值解析:解析 如果没有大括号,else 总是与它上面的最近的 if 配对。所以本题中的 elseif(ok2)是与if(!ok1)配对的,首先因为 ab 成立所以进一步判断 b!=15 也成立,再进一步判断!ok1,为假,不执行子句 X=-1;继续判断 ok2 是否为真,ok2 亦为假,故子句 x=10;也不执行,最后让 x=1;输出 x,所以结果应该选择 C。44.下列不属于 C 语言关键字的选项是( )。(分数:1.00)A.printf B.sizeofC.externD.long解析:解析 关键字也称为保留字,它是由 C 语言本身预先定义好的一类单词。标
17、准 C 语言中共有 32 个关键字,都是用小写字母组成的单词。每个关键字在 C 语言中都具有特殊的含义,并实现着一定的功能。例如 if、for 等。本题中选项 A 是标准输出函数的函数名,不属于 C 语言的关键字,故应该选择 A。45.有以下程序: void swap1(int C) int t; t=c0; c0=C1; c1=t; void swap2(int c0, int c1) int t; t=c0; c0=c1; c1=t; main() int a2=3,5, b2=3,5); swapl(a); swap2(b0,b1); printf(“%d %d %d %d/n“,a0,
18、a1,b0,b1); 其输出结果是(分数:1.00)A.5 3 5 3B.5 3 3 5 C.3 5 3 5D.3 5 5 3解析:解析 本题中函数 swapl()是传递的地址。所以对该形参 c 的改变将影响实参,分析可知该函数的作用,是使数组 c 的第一个元素和第二个元素的值互换。主函数中调用该函数将 a 作为实参传递给形参c,故执行该函数后 a 的第一个元素和第二个元素的值将交换。分别为 5 和 3。函数 swap2()是值传递的,所以该函数执行后对数组 b 将没有任何改变,此时该数组的第一个和第二个元素依然为 3 和 5,因此最后的输出为 5、3、3 和 5,所以,4 个选项中选项 B
19、符合题意。46.下列叙述中正确的是( )。(分数:1.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对解析:解析 程序执行的实际计算工作量不仅与程序的控制结构有一定的关系,与处理的数据量有关,而且还与数据的存储结构密切相关。所以,选项 A 正确,选项 B 和选项 C 错误。47.有以下程序: void fun(char *c,int d) *c=*c+1;d=d+1; printf(“%c,%c,“,*c,d); main() char a=A,b=a; fun(&b,a); printf(
20、“%c,%c/n“,a,b); 程序运行后的输出结果是( )。(分数:1.00)A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b 解析:解析 程序中定义了两个字符型变量a和b,并分别赋初值为A和a,然后调用函数 fun(),将 b 的地址和 a 值作为实参。在函数 fun()中第一个参数是传递地址,故在调用函数 fun()中对参数做的修改(即将 b 值加一)将影响字符型变量的值(变为 b),函数 fun()第二个参数是传值的,故在调用函数fun()对第二个参数做的修改不影响字符型变量 a(即a的值仍为A),所以在 fun()函数中输出的 d 为b,B,接着在主函数中,输
21、出 a,b,然后退出 fun()函数,接着执行后面的语句,输出 A,b。所以最后输出为 b,B, A,b。4 个选项中 D 正确。48. (分数:1.00)A.x/y*z B.x*(1/(y*)C.x/y*1/zD.x/y/z解析:49.设栈 S 的初始状态为空。元素 a、b、c、d、e、f 依次通过栈 S,若出栈的顺序为 b、d、c、f、e、a,则栈 S 的容量至少应该为( )。(分数:1.00)A.3 B.4C.5D.6解析:解析 根据条件,可做如下操作:a、b 进栈,栈中有 a 和 b 两个元素;b 出栈,c、d 进栈,栈中有 a、c、d 这 3 个元素;d、c 出栈,e、f 进栈,栈中
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 58 答案 解析 DOC
