【计算机类职业资格】二级C语言笔试-218及答案解析.doc
《【计算机类职业资格】二级C语言笔试-218及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-218及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-218 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.以下叙述中错误的是( )。(分数:2.00)A.对于 double类型数组,不可以直接用数组名对数组进行整体输入或输出B.数组名代表的是数组所占存储区的首地址,其值不可改变C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D.可以通过赋初值的方式确定数组元素的个数2.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。main()float a, b, c, t;scanf(“%f, %f, %f“, a, b, c
2、);if(ab)t=a; a=b.b=t; )if(ac)t=a; a=c; c=t; )it(bc)t=b; b=c; c=t; printf(“%f/n%f/n%f/n“, a, b, c);(分数:2.00)A.1.002.003.00B.1.003.002.00C.132D.3.000002.000001.000003.有以下程序:main()int i, j;for(j=10; j11; j+)for(i=9; ij; i+)if(!(j%i)break;if(i=j-1)printf(“gd“, j);输出结果是( )。(分数:2.00)A.11B.10C.9D.10 114.下列
3、程序的运行结果是( )。#includestdio.hvoid main()int s=0, k;for(k=7; k1; k-)switch(k)case 1:case 4:case 7:s+;break;case 2:case 3:case 6: break;case 0:case 5:s+=2:break;printf(“s=%d“, s);(分数:2.00)A.s=3B.s=4C.s=5D.无输出结果5.以下只有在使用时才为该类型变量分配内存的存储类型说明是( )。(分数:2.00)A.auto和 staticB.auto和 registerC.register和 staticD.ex
4、tern和 register6.表示关系 X=Y=Z 的 C语言表达式为(_)。(分数:2.00)A.(X=Y)(Y=Z)B.(X=Y)AND(Y=Z)C.(X=Y=Z)D.(X=Y)(Y=Z)7.下列可作为 C语言赋值的语句的是( )。(分数:2.00)A.x=3, y=5B.a=b=6C.i-;D.a, c8.若变量 a,b 已正确定义,且 b已正确赋值,则合法的语句是( )。(分数:2.00)A.b=double(b);B.(int)a=(int)b;C.a=a+=5;D.a=double(b);9.有下列程序段:int n, t=1, s=0;scanf(“%d“, n);dos=s+
5、t; t=t-2; while(t!=n);为使此程序段不陷入循环,从键盘输入的数据应该是( )。(分数:2.00)A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数10.下列叙述中正确的是( )。(分数:2.00)A.用 E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系B.用 E-R图只能表示实体集之间一对一的联系C.用 E-R图只能表示实体集之间一对多的联系D.用 E-R图表示的概念数据模型只能转换为关系数据模型11.有下列函数定义:fun(float h)printf(“%f, %fkn“, h, h*h); 该函数的类型是( )。(分数:1.00)A.int类型
6、B.float类型C.void类型D.函数无类型说明,定义有错12.设变量 a、b、c、d 和 Y都已正确定义并赋值。若有以下 if语句if(ab)if(C=d) y=0;else y=1;该语句所表示的含义是( )。(分数:1.00)A.y=0,ab 且 c=dy=1,abB.y=0,ab 且 c=dy=1,ab 且 cdC.y=0,ab 且 c=dy=1,ab 且 cdD.y=0,ab 且 c=dy=1,cd13.有以下程序:#includestdio.hvoid WriteStr(char *fn, char *str)FILE *fp;fp=fopen(fn, “w“); fputs(
7、str, fp); fclose(fp); main()WriteStr(“t1.dat“, “start“);WriteStr(“t1.dat“, “end“); 程序运行后,文件 t1. dat中的内容是( )。(分数:1.00)A.startB.endC.startendD.endrt14.若有运算符:、=、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为( )。(分数:1.00)A.%、sizeof、=B.sizeof、%、=、C.sizeof、%、=D.sizeof、%、=15.若整型变量 a、b、c、d 中的值依次为 2、2、3、4,则条件表达式 ab?a: cd?c:
8、d 的值是( )。(分数:1.00)A.1B.2C.3D.416.在执行完下列的 C语句段之后,则 B的值是( )。char a=A;int b;B=(3456)(ab);(分数:1.00)A.0B.1C.TRUED.FALSE17.设有如下定义:int (*ptr)();则以下叙述中正确的是( )。(分数:1.00)A.ptr是指向一维组数的指针变量B.ptr是指向 int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个 int型数据D.ptr是一个函数名,该函数的返回值是指 int型数据的指针18.执行下列程序中的输出语句后,a 的值是( )。main()int a;printf
9、(“%d/n“, (a=2*3, a*5, a+7);(分数:1.00)A.17B.37C.6D.1319.执行下面的程序后,a 的值为( )。main()int a, b;for(a=1, b=1; a=10; a+)if(b%3=1)b+=3;continue; b-=5; )(分数:1.00)A.7B.8C.9D.1020.有以下程序:#includestdio.hmain()char c1, c2, c3, c4, c5, c6;scanf(“%c%c%c%C“, c1, c2, c3, c4);c5=getchar(); c6=getchar();putchar(c1); puteh
10、ar(c2);printf(“%c%c/n“, c5, c6);程序运行后,若从键盘输入(从第 1列开始)123回车45678回车则输出结果是( )。(分数:1.00)A.1267B.1256C.1278D.124521.设有如下定义:int arrp=6, 7, 8, 9, 10;int *ptr;ptr=arr;*(ptr2)=2;printf(“%d, %d/n“, *ptr, *(ptr2);则下列程序段的输出结果为( )。(分数:2.00)A.8,10B.6,8C.7,9D.6,222.下列叙述中正确的是( )。(分数:2.00)A.只能在循环体内和 switch语句体内使用 bre
11、ak语句B.cotinue语句的作用是结束整个循环的执行C.在循环体内使用 break语句或 continue语句的作用相同D.从多层循环嵌套中退出时,只能使用 goto语句23.设 x=015,则 x=x017的值是( )。(分数:2.00)A.00001111B.11111101C.00000010D.1100000024.数字字符 0的 ASCII值为 48,运行以下程序的输出结果是( )。main()char a=1, b=2;printf(“%c, “, b+); printf(“%d/n“, b-a); (分数:2.00)A.3,2B.50,2C.2,2D.2,5025.下列叙述中
12、错误的是( )。(分数:2.00)A.线性表是由 n个元素组成的一个有限序列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件D.线性表可以是空表26.以下程序执行后 sum的值是( )。main()int i, sum;for(i=1; i6; i+)sum+=i;printf(“%d/n“, sum);(分数:2.00)A.15B.14C.不确定D.027.设有定义的语句:“char c1=92, c2=92;”,则以下表达式中的值为零的是( )。(分数:2.00)A.c1c2B.c1c2C.c2D.c1|c228.若 i、j 已定义成 int型,则下列程序段中内循环体的总
13、执行次数是( )。for(i=6; i0; i-)for(j=0; j4; j+)(分数:2.00)A.20B.24C.25D.3029.软件生命周期中,花费最多的阶段是( )。(分数:2.00)A.详细设计B.软件编码C.软件测试D.软件维护30.设有定义语句:int x6=2, 4, 6, 8, 5, 7), *p=x, i;要求依次输出 X数组 6个元素中的值,不能完成此操作的语句是( )。(分数:2.00)A.for(i=0; i6; i+)printf(“%2d“, *(p+);B.for(i=0; i6; i+)printf(“%2d“, *(p+i);C.for(i=0; i6;
14、 i+)printf(“%2d“, *p+);D.for(i=0; i6; i+)printf(“%2d“, *(p)+);31.执行下列程序后,输出的结果是( )。#includestdio.h#define S(X)X*Xvoid main()int a=9, k=3, m=2;a/=S(k+m)/S(k+m);printf(“%d“, a);(分数:2.00)A.1B.4C.9D.032.下列数据结构中,能用二分法进行查找的是( )。(分数:2.00)A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表33.设有程序段:int k=12;while(k=1) k=k=1;则下
15、列描述中正确的是( )。(分数:2.00)A.while循环执行 10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次34.以下程序的输出结果是( )。void fun(int *a, int i, int j)int t;if(ij)t=ai; ai; aj; aj=t;i+; j-;fun(a, i, j);main()int x3=2, 6, 1, 8), i;fun(x, 0, 3);for(i=0; i4; i+)printf(“%2d“, xi);printf(“/n“);(分数:2.00)A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,2
16、35.视图设计一般有 3种设计次序,下列不属于视图设计次序的是( )。(分数:2.00)A.自顶而下B.由内向外C.由外向内D.自底向上36.若有说明语句:double*p, a;则通过 scan语句正确给输入项读入数据的程序段是( )。(分数:2.00)A.*p=a; scanf(“%1f“, p);B.*p=a; scanf(“%f“, p);C.p=a; scanf(“%1f“, *p);D.p=a; scanf(“%1f“, p);37.若 fp是指向某文件的指针,且尚未读到文件末尾,则函数 feof(fp)的返回值是( )。(分数:2.00)A.EOFB.-1C.非零值D.038.设
17、 j为 int型变量,则下面 for循环语句的执行结果是( )。for(j=10; j3; j-)if(j%3)j-;-j; -j;printf(“%d“, j);(分数:2.00)A.6 3B.7 4C.6 2D.7 339.在深度为 5的满二又树叶中,叶子结点的个数为( )。(分数:2.00)A.32B.31C.16D.1540.下列程序的输出结果是( )。#includestdio.hmain()int a23=1, 2, 3, 4, 5, 6, (*p)3, i;p=a;for(i=0; i3; i+)if(i2)p1i=p1i=1;elsep1i=1;printf(“%d/n“, a
18、01+a11+a12);(分数:2.00)A.8B.7C.12D.9二、填空题(总题数:14,分数:30.00)41.在面向对象方法中,类之间共享属性和操作的机制称为 1。(分数:2.00)填空项 1:_42.数据的基本单位是 1。(分数:2.00)填空项 1:_43.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示 1,用带空心圆的箭头表示传递的是数据。(分数:2.00)填空项 1:_44.函数 pi的功能是根据以下近似公式求 值:(*)/6=1+1/(2*2)+1/(3*3)+1/(n*n)现在请你在下面的函数中填空,完成求丌的功能。#includemath.hdo
19、uble pi(10ng n)double s=0.0; long i;for(i=1; i=n; i+)s=s+_; return(sqrt(6*s);(分数:2.00)填空项 1:_45.x和 y都是 double型变量,x 的初值为 4.0,Y 的初值为 2.0,则表达式 pow(y, labs(x)的值为 1。(分数:2.00)填空项 1:_46.若要使指针 P指向一个 double类型的动态存储单元,请填空。p=_malloc(sizeof(double);(分数:2.00)填空项 1:_47.结构化分析方法是面向 1 进行分析的方法。(分数:2.00)填空项 1:_48.以下程序的
20、功能是打印以下杨辉三角形(如下),请填空。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1main()static int m, n, k, b1010=10;b01=1;for(m=1; m10; m+);for(n=1; n=m; n+)bmn=_;printf(“%-5d“, bmn);printf(“n“);(分数:2.00)填空项 1:_49.下面函数的功能是将一个字符串的内容颠倒过来,请填空。void fun(char str)int i, j, k;for(i=0, j=_; ij; i+, j=)k=stri;stri=stri;strj=k; (分
21、数:2.00)填空项 1:_50.若 x为 int类型,请写出与!x 等价的 C语言表达式 1。(分数:2.00)填空项 1:_51.下列程序的运行结果是_。main()int a=1, b=10;dob-=a; a+while(b-0);printf(“%d, %d/n“, a, b);(分数:2.00)填空项 1:_52.下列程序的运行结果是_。main()int i, a10;a0=a1=1;for(i=2; i5; i+)ai=ai-2+ai-1;for(i=0; i5; i+)if(i%2=0)printf(“/n“);printf(“%d“, ai);(分数:2.00)_53.下列
22、程序的输出结果是_。#includestdio.hint fun(int x)int p;if(x=0x=1)return 3;elsep=x-fun(x-2);return p;void main()printf(“/n%d“, fun(11);(分数:2.00)填空项 1:_以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。main()int i, a 20, sum, count;sum=count=0;for(i=0; i20; i+)scanf(“%d“, _);for(i=0; i20; i+)if(ai0)count+;sum+=_;printf(“su
23、m=%d, count=%d/n“, sum, count);(分数:4.00)填空项 1:_填空项 1:_二级 C语言笔试-218 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.以下叙述中错误的是( )。(分数:2.00)A.对于 double类型数组,不可以直接用数组名对数组进行整体输入或输出B.数组名代表的是数组所占存储区的首地址,其值不可改变C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 D.可以通过赋初值的方式确定数组元素的个数解析:解析 数组下标从 0开始,当数组元素的下标超出了定义的范
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 218 答案 解析 DOC
