ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:83KB ,
资源ID:1326027      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1326027.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】二级C语言笔试-218及答案解析.doc)为本站会员(吴艺期)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】二级C语言笔试-218及答案解析.doc

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开始,当数组元素的下标超出了定义的范

24、围时,系统不会出“下标越界”的信息,运行会出错,因此在编程时务必检查下标是否越界。2.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。main()float a, b, c, t;scanf(“%f, %f, %f“, a, b, c);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.00000 解析:解析 本题考查

25、 if语句。第 1个 if语句,如果 ab,则 a与 b交换;第 2个 if语句,如果ac,则 a与 c交换;第 3个 if语句,如果 bc,则 b与 c交换。3 个 if语句结合起来实现的功能就是将 a、b、c 按从大到小排序。3.有以下程序: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.10 C.9D.10 11解析:解析 本题考查循环的使用,当 j=10,i=9 时,循环成立,第一个 if条件为假,第二个 if

26、条件i=j-1成立,则输出 j的值为 10,接着执行 i+后,i 为 10;当 i为 10,for 循环不成立,退出内层循环,此时执行 j+后,j 为 11,循环不成立,退出循环。4.下列程序的运行结果是( )。#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=4 C.s=5D.无输出结

27、果解析:解析 运行程序,当 k=7时 switch(7)执行 case: 7,s+后 s=1,break 跳出。k-,k=7 继续循环 switch(6),执行 case 6: 直接跳出循环,k-变成 5继续循环 switch(5)执行 case 5后面的语句 s+=2也相当于 s=s+2,此时 s为 3,break 跳出,k 变为 4继续循环,执行 case 4为空,继续执行 case 7: s+为 4跳出循环 k-变为 3,继续循环执行 case 3,空语句往下执行 case 6跳出。k-为 2,继续循环执行 case 2:空语句往下执行 case 3,空语句再执行 case 7跳出循环

28、k-为 1不符合循环退出,此时s=4。5.以下只有在使用时才为该类型变量分配内存的存储类型说明是( )。(分数:2.00)A.auto和 staticB.auto和 register C.register和 staticD.extern和 register解析:解析 在用静态 static与外部 extern定义变量时,系统立刻给其分配内存,而定义自动类 auto与强制放入寄存器 register类型变量时,只有当使用时才分配内存。6.表示关系 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=

29、Z)解析:解析 题中 X=Y=Z 的意思为 X=Y 并且 Y=z,在 C语言中,要表示“且”的关系,应用“与”逻辑运算符,即“”,故选择 A选项。7.下列可作为 C语言赋值的语句的是( )。(分数:2.00)A.x=3, y=5B.a=b=6C.i-; D.a, c解析:解析 本题考查赋值语句,而选项 A、B 是表达式,不合题意,选项 D中强制类型转换,应把类型名用括号括起来,选项 C中 i-也可写成 i=i-1,故选择 C选项。8.若变量 a,b 已正确定义,且 b已正确赋值,则合法的语句是( )。(分数:2.00)A.b=double(b);B.(int)a=(int)b; C.a=a+=

30、5;D.a=double(b);解析:解析 在 C语言中规定进行强制类型转换的格式是:(类型名)变量名;并且给表达式赋值。9.有下列程序段:int n, t=1, s=0;scanf(“%d“, n);dos=s+t; t=t-2; while(t!=n);为使此程序段不陷入循环,从键盘输入的数据应该是( )。(分数:2.00)A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数 解析:解析 本题主要考查 do-while循环,因为变量 t的初始值等于 1,经过第一次 do-while循环后,执行 t=t-1这条语句一次,所以变量 t的值为-1,判断关系表达式 t!=n是否成立,如果关系表

31、达式成立,则执行第二次循环,如果关系表达式不成立,退出循环。由此可见,只要输入变量 n的值为负奇数,则一定会使 t=n成立,则退出 do-while循环。10.下列叙述中正确的是( )。(分数:2.00)A.用 E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系 B.用 E-R图只能表示实体集之间一对一的联系C.用 E-R图只能表示实体集之间一对多的联系D.用 E-R图表示的概念数据模型只能转换为关系数据模型解析:解析 用 E-R图可以描述实体及其相互之间的联系,还可以描述多个实体集之间的联系和一个实体集内部实体之间的联系。用 E-R图表示的概念数据模型不仅能转换为关系数据模型

32、,还可以转换为其他数据模型,如网状模型和层次模型等。所以 A的说法正确。11.有下列函数定义:fun(float h)printf(“%f, %fkn“, h, h*h); 该函数的类型是( )。(分数:1.00)A.int类型 B.float类型C.void类型D.函数无类型说明,定义有错解析:解析 本题考查函数值的类型,在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型(int)处理。12.设变量 a、b、c、d 和 Y都已正确定义并赋值。若有以下 if语句if(ab)if(C=d) y=0;else y=1;该语句所表示的含义是( )。(分数:1.00)A.y=0,ab 且 c

33、=dy=1,abB.y=0,ab 且 c=dy=1,ab 且 cdC.y=0,ab 且 c=dy=1,ab 且 cd D.y=0,ab 且 c=dy=1,cd解析:解析 语句“if(c=d)y=0;else y=1;”是 if(ab)语句的一个子句。所以整个语句表达式的意思是:在 ab 的情况下,如果 c=b则 y=0,否则 y=1。如果 ab 则执行第 2个 if语句如果 c等于 d那么 y=0,如果 c不等于 d,那么 y=1,所以,选项 C为正确答案。13.有以下程序:#includestdio.hvoid WriteStr(char *fn, char *str)FILE *fp;fp

34、=fopen(fn, “w“); fputs(str, fp); fclose(fp); main()WriteStr(“t1.dat“, “start“);WriteStr(“t1.dat“, “end“); 程序运行后,文件 t1. dat中的内容是( )。(分数:1.00)A.startB.end C.startendD.endrt解析:解析 用“w“方式打开文件,意思是如果文件名相同则覆盖原来的文件,所以当再次输入时覆盖了第一个次的内容 B选项正确。14.若有运算符:、=、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为( )。(分数:1.00)A.%、sizeof、=B.

35、sizeof、%、=、C.sizeof、%、=D.sizeof、%、= 解析:解析 主要考查运算符的优先级。sizeof 的优先级最高,其次的顺序是:%,优先级最低的是“=”。15.若整型变量 a、b、c、d 中的值依次为 2、2、3、4,则条件表达式 ab?a: cd?c:d 的值是( )。(分数:1.00)A.1B.2C.3 D.4解析:解析 本题考查三目运算符 ab?a: cd?c: d 也可写成 ab?a: (cd?c: d),所以根据优先级,先算括号内的 c小于 d为真取 c的值,再看 a小于 b为假,所以取 c的值。16.在执行完下列的 C语句段之后,则 B的值是( )。char

36、a=A;int b;B=(3456)(ab);(分数:1.00)A.0B.1 C.TRUED.FALSE解析:解析 本题考查 3个知识点:将一个字符赋给一个字符变量时,是将该字符对应的 ASCII码存储到内存单元中;常见 ASCII码的值如 A和 a;只要逻辑与运算符的两个运算对象都为真时,返回值就是 1。17.设有如下定义:int (*ptr)();则以下叙述中正确的是( )。(分数:1.00)A.ptr是指向一维组数的指针变量B.ptr是指向 int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个 int型数据 D.ptr是一个函数名,该函数的返回值是指 int型数据的指针解析:

37、解析 本题中 int(*ptr)()的含义是指向函数的指针变量,其为指向函数的指针变量,该函数返回一个 int型数据,故选择 C选项。18.执行下列程序中的输出语句后,a 的值是( )。main()int a;printf(“%d/n“, (a=2*3, a*5, a+7);(分数:1.00)A.17B.37C.6 D.13解析:解析 本题考查逗号表达式。程序输出时输出一个%d,所以输出第一个 a的值与后续无关。19.执行下面的程序后,a 的值为( )。main()int a, b;for(a=1, b=1; a=10; a+)if(b%3=1)b+=3;continue; b-=5; )(分

38、数:1.00)A.7B.8C.9D.10 解析:解析 本题考查 continue的用法,continue 语句的作用是结束本次循环,直接进行下次循环。所以在程序中,只有当 a=10时,才退出循环,故选择 D选项。20.有以下程序:#includestdio.hmain()char c1, c2, c3, c4, c5, c6;scanf(“%c%c%c%C“, c1, c2, c3, c4);c5=getchar(); c6=getchar();putchar(c1); putehar(c2);printf(“%c%c/n“, c5, c6);程序运行后,若从键盘输入(从第 1列开始)123回

39、车45678回车则输出结果是( )。(分数:1.00)A.1267B.1256C.1278D.1245 解析:解析 scanf 函数读取的是 char型数据,所以回车时输入的换行符也是有效字符。于是c1,c2,c3,c4 的内容分别是 1,2,3,/n。21.设有如下定义: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,2 解析:解析 程序中 ptr指针指向数组 arr的首地址,*ptr

40、=arr0=6, *(ptr2)=2,故选 D。22.下列叙述中正确的是( )。(分数:2.00)A.只能在循环体内和 switch语句体内使用 break语句 B.cotinue语句的作用是结束整个循环的执行C.在循环体内使用 break语句或 continue语句的作用相同D.从多层循环嵌套中退出时,只能使用 goto语句解析:解析 本题考查循环跳出的知识点:break 语句可以出现在 switch循环体内及语句体内,它的作用是跳出循环体,不能用于其他的语句;continue 语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着判定循环条件是否成立,确定下一次循环是否继续执行

41、,执行 contiune语句不会使整个循环终止;循环体内使用 break语句会使循环提前终止;从多层循环嵌套中退出时,可以使用 goto语句或者 break语句。23.设 x=015,则 x=x017的值是( )。(分数:2.00)A.00001111B.11111101C.00000010 D.11000000解析:解析 本题考查按位异或运算,异或就是相同为 0,不同为 1(化为二进制 00001101),017 的二进制为 000001111,两者异或结果为 00000010。24.数字字符 0的 ASCII值为 48,运行以下程序的输出结果是( )。main()char a=1, b=2

42、;printf(“%c, “, b+); printf(“%d/n“, b-a); (分数:2.00)A.3,2B.50,2C.2,2 D.2,50解析:解析 b+是先用表达式的值然后自增 1,因此表达式值为2,b 为3; b-a=3-1=2,因此最后输出的结果为 2,2,前一个为字符 2,后一个为数字 2。25.下列叙述中错误的是( )。(分数:2.00)A.线性表是由 n个元素组成的一个有限序列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件 D.线性表可以是空表解析:解析 线性表可以是空表,在线性表中,第一个结点没有前驱结点(前件),最后一个结点没有后继结点,其他结点有

43、且只有一个前驱点(后继点)。26.以下程序执行后 sum的值是( )。main()int i, sum;for(i=1; i6; i+)sum+=i;printf(“%d/n“, sum);(分数:2.00)A.15B.14C.不确定 D.0解析:解析 sum+=i 等价于 sun+i,在本题中 sum没有赋初值,而题中只输出 sum的值,因此整个结果为不确定值。27.设有定义的语句:“char c1=92, c2=92;”,则以下表达式中的值为零的是( )。(分数:2.00)A.c1c2 B.c1c2C.c2D.c1|c2解析:解析 当值相同时按位异或则为 0,按位或与按位与时仍不变,负数也

44、为非 0。28.若 i、j 已定义成 int型,则下列程序段中内循环体的总执行次数是( )。for(i=6; i0; i-)for(j=0; j4; j+)(分数:2.00)A.20B.24 C.25D.30解析:解析 本题考查 for循环的使用。对于第 1个 for循环,任何一个 i,内层 j的循环都要使 j0到 3,j=4 时不符合所以退出 j循环;然后 i减 1,j 仍然要从 03,j=4 时退出 j循环直到 i变成 0,退出 i循环。第一条 for语句执行 6次,第二条 for语句执行 4次,所以内循环体执行 6*4=24次。29.软件生命周期中,花费最多的阶段是( )。(分数:2.0

45、0)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+)

46、printf(“%2d“, *(p+i);C.for(i=0; i6; i+)printf(“%2d“, *p+);D.for(i=0; i6; i+)printf(“%2d“, *(p)+); 解析:解析 本题要求输出每个元素的值,D 选项中(*p)+等价于*p=*p+1,其仅仅是对*p 加 1,并没有达到输出其每个值的作用。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.0 解析:解析 本题主要考查带参数的宏定义,过程如下:由于定义为 define(x) x*x没有括号优先级所以:a=a/(S(k+m),/S(k+m)=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。32.下列数据结构中,能用二分法进行查找的是( )。(分数:2.00)A.顺序存储的有序线性表 B.结性链表C.二叉链表D.有序线性链表解析:解析 二分法查找只用于顺序存储的有序线性表,而顺序查找用在顺序存储的非有序线性表和线性链表。33.设有程序段:int k=12;while(

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1