【计算机类职业资格】二级C语言笔试-85及答案解析.doc
《【计算机类职业资格】二级C语言笔试-85及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-85及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-85 及答案解析(总分:109.00,做题时间:90 分钟)一、选择题(总题数:40,分数:79.00)1.以下选项中不合法的标识符是_。(分数:2.00)A.printB.FORC.aD._002.有以下程序 A:int f1(int x,int y) return xy?x:y; int f2(int x,int y) return xy?y:x; )main()int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d);g=a+b+c+d-e-f;printf(“%d,%d,%d/n“,e,f,
2、g);程序运行后的输出结果是_。(分数:2.00)A.4,3,7B.3,4,7C.5,2,7D.2,5,73.有以下语句:int b;char c10;,则正确的输入语句是_。(分数:2.00)A.scanf(“%d%s“,b,c);B.scanf(“%d%s“,b,c);C.scanf(“%d%s“,b,c);D.scanf(“%d%s“,b,c);4.有一个名为 ink.txt的文件,内容如下:#define HDY(A,B) A/B#define PRINT(Y) printf(“y=%d/n.,Y)有以下程序:#include “init.txt“main()int a=1,b=2,c
3、=3,d=4,k;K=HDY(a+c,b+d);PRINT(K);下面针对该程序的叙述正确的是_。(分数:2.00)A.编译有错B.运行出错C.运行结果为 y=0D.运行结果为 y=65.有以下程序:main()int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,k,t;for(i=0;i3;i+)for(k=i+i;k4;k+)if(aiiakk)t=aii;aii=akk;akk=t;for(i=0;i4;i+)printf(“%d,“,a0i);程序运行后的输出结果是_。(分数:2.00)_6.设有定义:int n1=0,n2,*P=n2,*q=n1;,以
4、下赋值语句中与 n2=n1;语句等价的是_。(分数:2.00)A.*p=*q;B.p=q;C.*p=n1;D.p=*q;7.在数据库系统中,用户所见的数据模式为_。(分数:2.00)A.概念模式B.外模式C.内模式D.物理模式8.有以下程序:int add(int a,int b)return(a+b);main()int k,(*f)(),a=5,b=10;f=add;则以下函数调用语句错误的是_。(分数:2.00)A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);9.设有定义:int a=2,b=3,c=4;,则以下选项中值为 0的表达式是
5、_。(分数:2.00)A.(!a=1)(!b=0)B.(aB) !c|1C.abD.a|(b+b)(c-10.有以下程序:main()int a=0,b=0,C=0,d=0;if(a=1)b=1;c=2;else d=3;printf(“%d,%d,%d,%d/n“,a,b,c,d);程序输出_。(分数:2.00)A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错11.在长度为 64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为_。(分数:2.00)A.63B.64C.6D.712.下列叙述中正确的是_。(分数:2.00)A.数据的逻辑结构与存储结构必定是一一对应的B.
6、由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上三种说法都不对13.有以下结构体说明,变量定义和赋值语句:struct STDchar name10;int age;char *;s5,*ps;ps=s0;则以下 scanf函数调用语句中错误的结构体变量成员是_。(分数:2.00)_14.设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是_。(分数:2.00)A.k+B.k+=1C.+kD.k+115.有以下程序:maln()int i,s=0,t=1,2,3
7、,4,5,6,7,8,9;for(i=0;i9;i+=2)s+=*(t+i);printf(“%d/n“,s);程序执行后的输出结果是_。(分数:2.00)A.45B.20C.25D.3616.有以下程序:main()char a7=“a0/0a0/0“;int i,j;i=sizeof((分数:2.00)A.;j=strlen(a);,按在内存中的存放顺序,a 数组的第 10个元素是_(分数:2.00)A.a04B.a13C.a03D.a1423.在结构化程序设计中,模块划分的原则是_。(分数:2.00)A.各模块应包括尽量多的功能B.各模块的规模应尽量大C.各模块之间的联系应尽量紧密D.模
8、块内具有高内聚度、模块间具有低耦合度24.以下叙述中正确的是_。(分数:2.00)A.预处理命令行必须位于 C源程序的起始位置B.在 C语言中,预处理命令行都以“#”开头C.每个 C程序必须在开头包含预处理命令行:#includestdio.hD.C语言的预处理不能实现宏定义和条件编译的功能25.用树形结构表示实体之间联系的模型是_。(分数:2.00)A.关系模型B.网状模型C.层次模型D.以上三个都是26.在 16位编译系统上,若有定义 int a=10,20,30,*p=a;,当执行 p后,下列说法错误的是_。(分数:2.00)A.p向高地址移了一个字节B.p向高地址移了一个存储单元C.p
9、向高地址移了两个字节D.p与 a+1等价27.有以下程序:void swapl(int c0,int c1)int t;t=c00;c00=c10;c10=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,a+1);swap2(b0,b1);printf(“%d%d%d%d/n“,a0,a1,b0,b1);程序运行后的输出结果是_。(分数:2.00)A.3 5 5 3B.5 3 3 5C.3 5 3 5D.5 3 5 328.有以下程序:#includestdio.hmai
10、n()char cl=1,c2=2;cl=getchar();c2=getchar();putchar(c1);putchar(c2);当运行时输入:a回车后,以下叙述正确的是_。(分数:2.00)A.变量 c1被赋予字符 a,c2 被赋予回车符B.程序将等待用户输入第 2个字符C.变量 c1被赋予字符 a,c2 中仍是原有字符 2D.变量 c1被赋予字符 a,c2 中将无确定值29.在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是_。(分数:2.00)A.auto和 registerB.extern和 registerC.auto和 staticD.static和 registe
11、r30.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数:2.00)A.只能是整数 0或 1B.只能是整数 0或非 0整数C.可以是结构体类型的数据D.可以是任意合法的表达式31.以下叙述正确的是_。(分数:2.00)A.C语言中的文件是流式文件,因此只能顺序存取数据B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第一个数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失32.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定这属于算法的_。(分数:2.00)
12、A.正当性B.可行性C.确定性D.有穷性33.数据的存储结构是指_。(分数:2.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示34.按照“后进先出”原则组织数据的数据结构是_。(分数:2.00)A.队列B.栈C.双向链表D.二叉树35.以下叙述中正确的是_。(分数:2.00)A.调用 printf函数时,必须要有输出项B.使用 putchar函数时,必须在之前包含头文件 stdio.hc)在 C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D) 调用 getchar函数读入字符时,可以从键盘上输入字符所对应的 A
13、SC码36.以下语句中存在语法错误的是_。(分数:2.00)_37.有以下程序:main()int a=1,b;for(b=1:b=10;b+)if(a=8)break;if(a%2=1)a+=5;continue;a-=3:printf(“%d/n“,b);程序运行后的输出结果是_。(分数:2.00)_38.有以下程序:mian()int i,j;for(i=1;i4;i+)for(j=i;j4;j+)printf(“%d*%d=%d“,i,j,i*j);printf(“/n“);程序运行后的输出结果是_。(分数:2.00)A.1*1=1 1*2=2 1*3=3B.1*1=1 1*2=2 1
14、*3=32*1=2 2*2=4 2*2=4 2*3=63*1=3 3*3=9C.1*1=1D.1*1=11*2=2 2*2=4 2*1=2 2*2=41*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=939.以下叙述中错误的是_。(分数:2.00)A.gets函数用于从终端读入字符串B.getchar函数用于从磁盘文件读入字符C.fputs函数用于把字符串输出到文件D.fwrite函数用于以二进制形式输出数据到文件40.有以下程序:#includestdio.h#includestring.h#includevoid f(char*s,char*t)char k;k=*s;
15、*s=*t; *t=k;s+;t-;if(*s)f(s,t):main()char str10=“abcdefg“,*P;P=str+strlen(str)/2+1:f(p,p-2);printf(“%s/n“,str);程序运行后的输出结果是_。(分数:2.00)A.abcdefgB.gfedcbaC.gbcdefaD.abedcfg二、填空题(总题数:15,分数:30.00)41.某二叉树中度为 2的节点有 18个,则该二叉树中有 1 个叶子节点。(分数:2.00)填空项 1:_42.按“先进后出”原则组织数据的数据结构是 1。(分数:2.00)填空项 1:_43.软件需求规格说明书应具有
16、完整性、无歧义性、正确性、可验证性、可修复性等特性,其中最重要的是 1。(分数:2.00)填空项 1:_44.程序测试分为静态分析和动态测试。其中 1 是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。(分数:2.00)填空项 1:_45.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。(分数:2.00)填空项 1:_46.已有定义:char c= ;int a=1,b;(此处 c的初值为空格字符),执行 b=!c a;后 b的值为 1。(分数:2.00)填空项 1:_47.若变量 a,b已定义为 int类型并赋值 21和 55,要求用 printf函
17、数以 a=21,b=55的形式输出,请写出完整的的输出语句 1。(分数:2.00)填空项 1:_48.以下程序运行后的输出结果是_。main()int a,b,c;a=10;b=20;c=(a%b1)|(a/b1);printf(“% d % d % % d/n“,a,b,c);(分数:2.00)填空项 1:_49.以下程序的输出结果是_。#includestdio.hmain()int n=12345,d;while(n!=0)d=n %10;printf(“%d“,d);n/=10;(分数:2.00)填空项 1:_50.以下程序的输出结果是_。#includestdio.hvoid fun
18、(int x)if(x/20)fun(x/2);printf(“%d“,x);main()fun(3);printf(“/n“);(分数:2.00)填空项 1:_51.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。main()int t=0,s=0,i;for(i=1;i=5;i+)t=i+_;s=s+t;printf(“s=%d/n“,s);(分数:2.00)填空项 1:_52.设有定义语句:int a3=0,1,2;,则数组元素 a12的值为 1。(分数:2.00)填空项 1:_53.以下程序的输出结果是_。#includestring.hmain()char
19、a=/1,/2,/3,/4,/0;printf(“% d % d/n“,sizeof(a),strlen(a);(分数:2.00)填空项 1:_54.以下程序的输出结果是_。#includestdio.h#includestring.hchar*fun(char*t)char*P=t;return(p+strlen(t)/2);main()char*str=“abcdefgh“;str=fun(str);puts(str);(分数:2.00)填空项 1:_55.以下程序中函数 fun的功能是:构成一个如图所示的带头节点的单向链表,在节点的数据域中放入了具有两个字符的字符串。函数 disp的功能
20、是显示输出该单链表中所有节点中的字符串。请填空完成函数disp。(分数:2.00)填空项 1:_二级 C语言笔试-85 答案解析(总分:109.00,做题时间:90 分钟)一、选择题(总题数:40,分数:79.00)1.以下选项中不合法的标识符是_。(分数:2.00)A.printB.FORC.a D._00解析:解析 C 语言中标识符的命名必须遵守一定的规则:标识符由字母、数字和下划线组成,并且第一个字符必须是字母或下划线。同时,在 C语言的标识符中是区分大小写字母的。C 选项中的标识符以开头,不符合 C语言中标识符的命名规则。2.有以下程序 A:int f1(int x,int y) re
21、turn xy?x:y; int f2(int x,int y) return xy?y:x; )main()int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d);g=a+b+c+d-e-f;printf(“%d,%d,%d/n“,e,f,g);程序运行后的输出结果是_。(分数:2.00)A.4,3,7 B.3,4,7C.5,2,7D.2,5,7解析:解析 本题的函数 f1是求两个数中的最大数,而函数 f2是求两个数中的最小数。因此,“e=f2(f1(a,b),f1(c,d);”是先调用函数 f1分别求出 a、b
22、 中的最大数 4,c、d 中的最大数 5,再调用函数 f2求出 4和 5中的最小数 4,e的值为 4。而“f=f1(f2(a,b),f2(c,d);”是先调用函数 f2,分别求出 a、b 中的最小数 3,c、d 中的最小数 2,再调用函数 f1求出 3和 2中的最大数 3,f的值为3。g=a+b+c+d-e-f 结果是 4+3+5+2-4-3=7。输出结果应该是:4,3,7。3.有以下语句:int b;char c10;,则正确的输入语句是_。(分数:2.00)A.scanf(“%d%s“,b,c);B.scanf(“%d%s“,b,c); C.scanf(“%d%s“,b,c);D.scan
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 85 答案 解析 DOC
