【计算机类职业资格】二级C语言-9-2及答案解析.doc
《【计算机类职业资格】二级C语言-9-2及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-9-2及答案解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-9-2 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列数据结构中,属于非线性结构的是_。(分数:1.00)A.循环队列B.带链队列C.二叉树D.带链栈2.在面向对象方法中,实现信息隐蔽是依靠_。(分数:1.00)A.对象的继承B.对象的多态C.对象的封装D.对象的分类3.软件设计中划分模块的一个准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合4.C 语言中,下列不合法的字符常量是_。(分数:1.00)A.“/xff“B.“/65“C.“ float printF; print
2、f(“请输入 2 个数: “); scanf(“%d%f“, printf(“%d%f/n“, case, printF); 该程序在编译时产生错误,其出错原因是_。(分数:1.00)A.定义语句出错,case 是关键字,不能用作用户自定义标识符B.定义语句出错,printF 不能用作用户自定义标识符C.定义语句无错,scanf 不能作为输入函数使用D.定义语句无错,printf 不能输出 case 的值14.表达式:(int)(double)9/2)-(9)%2 的值是_。(分数:1.00)A.0B.3C.4D.515.若有定义语句:“int x=10;”,则表达式 x-=x+x 的值为_。
3、(分数:1.00)A.-20B.-10C.0D.1016.下面是有关 C 语言字符数组的描述,其中错误的是_。(分数:1.00)A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组中的内容不一定是字符串D.字符数组只能存放字符串17.下面结构体的定义语句中,错误的是_。(分数:1.00)A.struct ordint x; int y; int z; ; struct ord a;B.struct ordint x; int y; int z; struct ord a;C.struct ordint x; int y; int z; a;D.str
4、uctint x; int y; int z; a;18.有以下程序: #includestdio.h main() int c=0, k; for(k=1; k3; k+) switch(k) default: c+=k; case2: c+; break; case4: c+=2; break; printf(“%d/n“, c); 程序运行后的输出结果是_。(分数:1.00)A.3B.5C.7D.919.以下程序段中,与语句“k=ab?(bc?1:0):0;”功能相同的是_。(分数:1.00)A.if(ab)else k=0;B.if(ab)|(bc)k=1;else k=0;C.if(
5、a=b)k=0;else if(bD.if(ab)k=1;else if(bc)k=1;else k=0;20.有以下程序 #includestdio.h #includestring.h main() char a10=“abcd“; printf(“%d, %d/n“, strlen(a), sizeof(a); 程序运行后的输出结果是_。(分数:1.00)A.7,4B.4,10C.8,8D.10,1021.有以下程序 #includestdio.h main() int n=2, k=0; while(k+ printf(“%d%d/n“, k, n); 程序运行后的输出结果是_。(分数
6、:1.00)A.02B.13C.57D.1222.有以下定义语句,编译时会出现编译错误的是_。(分数:1.00)A.char a=“a“;B.char a=“/n“C.char a=“aa“;D.char a=“/x2d“;23.有以下程序 #includestdio.h main() char c1, c2; c1=“A“+“8“-“4“; c2=“A“+“8“-“5“; printf(“%c, %d/n“, c1, c2); 已知字母 A 的 ASCII 码为 65,程序运行后的输出结果是_。(分数:1.00)A.E,69B.D,69C.E,DD.输出无定值24.有以下程序 #includ
7、estdio.h void fun(int p) int d=2; p=d+; printf(“%d“, p); main() int a=1; fun(a); printf(“%d/n“, a); 程序运行后的输出结果是_。(分数:1.00)A.32B.12C.21D.2225.下列函数的功能是_。 fun(char*a, char*b) while(*b=*a)!=“/0“)a+; b+; (分数:1.00)A.将 a 所指字符串赋给 b 所指空间B.使指针 b 指向 a 所指字符串C.将 a 所指字符串和 b 所指字符串进行比较D.检查 a 和 b 所指字符串中是否有“/0“26.有以下
8、程序: #includestdio.h main() int m=1, n=2, *p= r=p; p=q; q=r; printf(“%d, %d, %d, %d/n“, m, n, *p, *q); 程序运行后的输出结果是_。(分数:1.00)A.1,2,1,2B.1,2,2,1C.2,1,2,1D.2,1,1,227.若有定义语句:“int a410, *p, *q4;”且 0i4,则错误的赋值是_。(分数:1.00)A.p=aB.qi=aiC.p=aiD.p= prinft(“%d, “, strlen(p); printf(“%s/n“, p); 程序运行后的输出结果是_。(分数:1
9、.00)A.9, One*WorldB.9, One*Dream!C.10, One*Dream!D.10, One*World29.有以下程序 #includestdio.h main() int a=2, 3, 5, 4, i; for(i=0; i4; i+) switch(i%2) case 0: switch(ai%2) case 0: ai+; break; case 1: ai-; break; case 1: ai=0; for(i=0; i4; i+)printf(“%d“, ai); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.3344B.2
10、050C.3040D.030430.有以下程序: #includedstdio.h main() char s=“012xy“; int i, n=0; for(i=0; si!=0; i+) if(si=“a“ printf(“%d/n“, n); 程序运行后的输出结果是_。(分数:1.00)A.0B.2C.3D.531.有以下程序: #includestdio.h main() int a=1, b=0; printf(“%d, “, b=a+b); printf(“%d/n“m a=2+b); 程序运行后的输出结果是_。(分数:1.00)A.0,0B.1,0C.3,2D.1,232.以下
11、函数 findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。 #define MIN-2147483647 int findmax(int x, int n) int i, max; for(i=0; in; i+) max=MIN; if(maxxi)max=xi; return max; 造成错误的原因是_。(分数:1.00)A.定义语句“int i, max;”中 max 未赋初值B.赋值语句“max=MIN;”中,不应给 max 赋 MIN 值C.语句“if(maxxi)max=xi;”中判断条件设置错误D.赋值语句“max=MIN;”放错了位置3
12、3.设有以下函数: void fun(int n, char*s) 则下面对函数指针的定义和赋值均正确的是_。(分数:1.00)A.void(*pf)(); pf=fun;B.void*pf(); pf=funC.void*pf(); *pf=fun;D.void(*pf)(int, char); pf=34.有以下程序: #includestdio.h int f(int n); main() int a=3, s; s=f(a); s=s+f(a); printf(“%d/n“, s); int f(int n) static int a=1; n+=a+; return n; 程序运行后
13、的输出结果是_。(分数:1.00)A.7B.8C.9D.1035.有以下程序: #includestdio.h #define f(x)x*x*X main() int a=3, s, t; s=f(a+1); t=f(a+1); printf(“%d, %d/n“, s, t); 程序运行后的输出结果是_。(分数:1.00)A.10,64B.10,10C.64,10D.64,6436.设有定义:“int a=1, b=2, c=3;”,以下语句中执行效果与其他三个不同的是_。(分数:1.00)A.if(ab)c=a, a=b, b=c;B.if(ab)c=a, a=b, b=c;C.if(a
14、b)c=a; a=b; b=c;D.if(ab)c=a; a=b; b=c;37.设有定义:“char*c;”,以下选项中能够使字符型指针 c 正确指向一个字符串的是_。(分数:1.00)A.char str=“string“; c=str;B.scanf(%s, c);C.c=getchar();D.*c=“string“;38.有以下程序: #includestdio.h #includestring.h struct A int a; char b10; double c; ; struct A f(struct A t); main() struct A a=1001, “ZhangD
15、a“, 1098. 0; a=f(a); printf(“%d, %s, %6.1f/n“, a.a, a.b, a.c); struct A f(struct A t) t.a=1002; strcpy(t.b, “ChangRong“); t.c=1202. 0; return t; 程序运行后的输出结果是_。(分数:1.00)A.1001,ZhangDa,1098.0B.1002,ZhangDa,1202.0C.1001,ChangRong,1098.0D.1002,ChangRong,1202.039.若有以下程序段: int r=8; print(“%d/n“, r1); 输出结果是
16、_。(分数:1.00)A.16B.8C.4D.240.以下叙述中正确的是_。(分数:1.00)A.程序设计的任务就是编写程序代码并上机调试B.程序设计的八种就是确定所用数据结构C.程序设计的任务就是确定所用算法D.以上三种说法都不完整二、程序填空题(总题数:1,分数:18.00)41.str 是一个由数字和字母字符组成的字符串,由变量 num 传入字符串长度。请补充函数 proc(),该函数的功能是:把字符串 str 中的数字字符转换成数字并存放到整型数组 bb 中,函数返回数组 bb 的长度。 例如,str=“abc123de45fg67“,结果为:1234567。 注意:部分源程序给出如下
17、。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的横线上填入所编写的若干表达式或语句。 试题程序: #includestdio.h #define M 80 int bbM; int proc(char str, int bb, int num) int i, n=0; for(i=0; inum; i+) if( 1) bbn= 2; n+; return 3; void main() char strM; int num=0, n, i; printf(“Enter a string:n“); gets(str); while(strnum) num+; n=p
18、roc(str, bb, num); printf(“/nbb=“); for(i=0; in; i+) printf(“%d“, bbi); (分数:18.00)三、程序改错题(总题数:1,分数:24.00)42.下列给定程序中,函数 proc()的功能是:读入一个字符串(长度20),将该字符串中的所有字符按ASCII 码升序排序后输出。 例如,输入 opdye,则应输出 deopy。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestring.h #includestdlib.h #inclu
19、deconio.h #includestdio.h /*found* int proc(char str) char c; unsigned i, j; for(i=0; istrlen(str)-1; i+) for(j=i+1; jstrlen(str); j+) if(stristrj) c=strj; /*found* strj=stri+; stri=c; void main() char str81; system(“CLS“); printf(“/nPlease enter a character string:“); gets(str); printf(“/n/nBefore
20、sorting:/n%s“, str); proc(str); printf(“/nAfter sorting decendingly:n %s“, str); (分数:24.00)_四、程序设计题(总题数:1,分数:18.00)43.请编写函数 proc(),它的功能是计算: s=(ln(1)+ln(2)+ln(3)+ln(m)0.5 在 C 语言中可调用 log(n)函数求 ln(n)。 例如,若 m 的值为 30,则 proc()函数值为 8.640500。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句
21、。 试题程序: #includestdlib.h #includeconio.h #includestdio.h #includemath.h double proc(int m) void main() system(“CLS“); printf(“%f/n“, proc(30); (分数:18.00)_二级 C 语言-9-2 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列数据结构中,属于非线性结构的是_。(分数:1.00)A.循环队列B.带链队列C.二叉树 D.带链栈解析:解析 线性结构是指数据元素只有一个直接前驱和直接后驱,线性表
22、是线性结构,循环队列、带链队列和栈是指对插入和删除有特殊要求的线性表,是线性结构。而二叉树是非线性结构。2.在面向对象方法中,实现信息隐蔽是依靠_。(分数:1.00)A.对象的继承B.对象的多态C.对象的封装 D.对象的分类解析:解析 对象的封装性是指从外部看只能看到对象的外部特征,即只需知道数据的取值范围和可以对该数据施加的操作,而不需要知道数据的具体结构以及实现操作的算法。3.软件设计中划分模块的一个准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析 耦合性和内聚性是模块独立性的两个定性标准,是互相关联的。在软件设计中,各模块间的内聚性
23、越强,则耦合性越弱。一般优秀的软件设计,应尽量做到高内聚,低耦合,有利于提高模块的独立性。4.C 语言中,下列不合法的字符常量是_。(分数:1.00)A.“/xff“B.“/65“C.“ float printF; printf(“请输入 2 个数: “); scanf(“%d%f“, printf(“%d%f/n“, case, printF); 该程序在编译时产生错误,其出错原因是_。(分数:1.00)A.定义语句出错,case 是关键字,不能用作用户自定义标识符 B.定义语句出错,printF 不能用作用户自定义标识符C.定义语句无错,scanf 不能作为输入函数使用D.定义语句无错,p
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 92 答案 解析 DOC
