【计算机类职业资格】二级C语言笔试-421及答案解析.doc
《【计算机类职业资格】二级C语言笔试-421及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-421及答案解析.doc(31页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-421 及答案解析(总分:97.00,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.下面不属于软件设计原则的是A) 抽象 B) 模块化 C) 自底向上 D) 信息隐蔽(分数:2.00)A.B.C.D.2.对于循环队列,下列叙述中正确的是A) 队头指针是固定不变的B) 队头指针一定大于队尾指针C) 队头指针一定小于队尾指针D) 队头指针可以大于队尾指针,也可以小于队尾指针(分数:2.00)A.B.C.D.3.软件(程序)调试的任务是( )。A诊断和改正程序中的错误 B尽可能多地发现程序中的错误C发现并改正程序中的所有错误 D确定程序中错误的性质(分数:
2、1.00)A.B.C.D.4.下面描述中,不属于软件危机表现的是 A) 软件过程不规范 B) 软件开发生产率低 C) 软件质量难以控制 D) 软件成本不断提高(分数:2.00)A.B.C.D.5.对长度为 n 的线性表进行顺序查找,在最坏的情况下所需要的比较次数为_。A) log2n B) n/2 C) n D) n+1(分数:1.00)A.B.C.D.6.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.B.C.D.7.下面关于对象概念的描述中,错误的是A) 对象就是 C 语言中的结构体变量 B)对象代表着正在创建的系统中的一个实体C) 对象是一个状态和操作(或方法)的封
3、装体 D) 对象之间的信息传递是通过消息进行的(分数:2.00)A.B.C.D.8.关于结构化程序设计原则和方法的描述错误的是( )。A) 选用的结构只准许有一个入口和一个出口B) 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C) 不允许使用 GOTO 语句D) 语言中所没有的控制结构,应该采用前后一致的方法来模拟(分数:1.00)A.B.C.D.9.在一棵二叉树上第 5 层的结点数最多是( )。A) 8 B) 16 C) 32 D) 15(分数:1.00)A.B.C.D.10.数据的完整性是指数的正确性、有效性和_。A) 可维护性 B) 独立性 C) 安全性 D) 相容性(分数:2.0
4、0)A.B.C.D.11.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.B.C.D.12.下列说法正确的是( )。A) 一个 C 程序可以有多个主函数B) 一个 C 语言的函数中只允许有一对花括号C) C 程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内D) 在对 C 程序进行编译时,可以发现注释行中的拼写错误(分数:2.00)A.B.C.D.13.下列标识符不是关键字的是( )。A) break B) char C) Switch D) return(分数:2.00)A.B.C.D.14.下列程序的输出结果是( )。#includestdio.hmai
5、n()int a=4;print f(“%d/n“,(a+=a-=a*a);A) -8 B) 14 C) 0 D) -24(分数:1.00)A.B.C.D.15.可在 C 程序中用作用户标识符的一组标识符是( )。 A) void define WORD B) as_b3 _123 If C) For -abc case D) 2c DO SIG(分数:1.00)A.B.C.D.16.下面 4 个选项中,均是不合法的用户标识符的选项是A) A P _0 d0 B) float la0 _A C) b-a goto in D) 123 temp int(分数:1.00)A.B.C.D.17.下列
6、叙述中正确的是( )。A) 在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B) 实型变量中允许存放整型数C) 若 a 和 b 类型相同,在执行了赋值 a=b 后,b 中的值将放入 a 中,但 b 中的值不变D) 在 C 程序中,求余运算符“%”两边的类型相同时才能进行运算(分数:2.00)A.B.C.D.18.有以下程序,其中%u 表示按无符号整数输出main()unsigned int x=0xFFFF; /* x 的初值为十六进制数 */printf(“%u/n“,x);程序运行后的输出结果是_。(A) -1(B) 65535(C) 32767(D) 0XFFFF(分数:1.
7、00)A.B.C.D.19.有以下程序:#include stdio.hmain( )int m =12,n=34;printf( “% d% d“ ,m+ , +n);printf(“% d% d /n“ ,n + , +m); 程序运行后的输出结果是( )。A) 12353514 B) 12353513 C) 12343514 D) 12343513(分数:1.00)A.B.C.D.20.有以下程序:#includestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1: b+;bre
8、ak;case 2:a+;b+;break;case 3:a+;b+;printf(“a=%d,b=%d/n“,a,b);程序的运行结果是_。A) a=1,b=0 B) a=2,b=2 C) a=1,b=1 D) a=2,b=1(分数:2.00)A.B.C.D.21.若有“double a;“,则正确的输入语句是( )。A) scanf(“%1f“,a); B) scanf(“%f“,C) scanf(“%1f“,(分数:1.00)A.B.C.D.22.下列程序的运行结果是( )。main()int a=-5,b=1,c=1;int x=0,y=2,z=0;if(c0) x=x+y;if(a=
9、0) if(b0) if(c=0) y=x-y;else if(c0) y=x-y;else z=y;printf(“%d,%d,%d/n“,x,y,z);A) 2,2,0 B) 2,2,2 C) 0,2,0 D) 2,0,2(分数:2.00)A.B.C.D.23.以下程序执行后 x 的值是main()int x,y=252,i=386,*m=y0;y-)f(y%3=0)printf(“%d“,-y);程序的运行结果是_。A) 741 B) 963 C) 852 D) 875421(分数:2.00)A.B.C.D.25.有下列程序:main()inti;for(i=1;i=40;i+)if(i
10、+ +%5=0)if(+i%8=0) printf(“%d“,i);printf(“/n“);执行后的输出结果是( )A) 5 B) 24 C) 32 D) 40(分数:2.00)A.B.C.D.26.有以下程序#include main()int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i;for(i=0;i12;i+) csi+;for(i=1;i5;i+) printf(“%d“,ci);printf(“/n“);程序的运行结果是_。(A) 1 2 3 4(B) 2 3 4 4(C) 4 3 3 2(D) 1 1 2 3(分数:2.00)A.B.C.D.27.下
11、列字符数组初始化语句中,不正确的是( )。A) charcgoodmorning; B) char,c20“goodmoming“;C) charca,b,c,d; D) charc“goodmoming“;(分数:2.00)A.B.C.D.28.若有定义:int a233;,下列选项中对 a 数组元素正确引用的是( )。A) a2!1 B) a23 C) a03 D) a12!1(分数:2.00)A.B.C.D.29.下列程序的运行结果为( )。#includestdio.hvoidabc(char*str) int a,b,i,j;for(ij0;stri!/0;i+)if(stri!a)
12、strj+strj;strj/0;void main()char Str“abcdef;abc(str);printf(“str%s“,str);A) strbcdef B) strabcdef C) stra D) strab(分数:2.00)A.B.C.D.30.下列选项中 C 语言中不合法的字符串常量的是A) “/121“ B) y C) “/n/n“ D) “ABCD/x6d/(分数:2.00)A.B.C.D.31.以下叙述中错误的是_。A) 对于 double 类型数组,不可以直接用数组名对数组进行整体输入或输出B) 数组名代表的是数组所占存储区的首地址,其值不可改变C) 当程序执行
13、时,若数组元素的下标超出所定义的下标范围,系统将给出“下标越界”的出错信息D) 可以通过赋初值的方式确定数组元素的个数(分数:1.00)A.B.C.D.32.设变量已正确定义,则下列能正确计算 f=n!的程序段是( )。A) f=0;for(i=1;i=n;i+)f*=i;B) f=1;for(i=1;in;i+)f*=i;C) f=1;for(i=n;i1;i+)f*=i;D) f=1;for(i=n;i =2;i-)f*=i;(分数:2.00)A.B.C.D.33.对以下说明语句的正确理解是int a10=6,7,8,9,10;A) 将 5 个初值依次赋给 a1至 a5B) 将 5 个初值
14、依次赋给 a0至 a4C) 将 5 个初值依次赋给 a6至 a10D) 因为数组长度与初值的个数不相同,所以此语句不正确(分数:2.00)A.B.C.D.34.有以下程序: #includestdio.h int fun(int x,int y) if(x=y)return(x); else return(x+y)/2); main() int a=1,b=2,c=3; printf(“%d/n“,fun(2*a,fun(b,c); 程序运行后的输出结果是( )。 A) 2 B) 3 C) 4 D) 5(分数:2.00)A.B.C.D.35.下列程序的输出结果是( )。#includestdi
15、o.h#includedstring.hvoid fun(int b)static int i=0;dobi+=bi+1;while(+i2);main()int k,a5=1,3,5,4,9;fun(a);for(k=0;k5;k+)printf(“%d“,ak);A13579 B48579 C48549 D48999(分数:1.00)A.B.C.D.36.下面程序的输出是_。main()int k=11;printf(“k=%d,k=%o,k=%x/n“,kkk);A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,
16、k=13,k=B(分数:2.00)A.B.C.D.37.C 语言库函数 fgets(str,n,fp)的功能是 _。A) 从 fp 指向的文件中读取长度 n 的字符串存入 str 旨向的内存B) 从 fp 指向的文件中读取长度不超过 n-1 的字符串存入 str 指向的内存C) 从 fb 指向的文件中读取 n 个字符串存入 str 指向的内存D) 从 str 读取至多 n 个字符到文 fp(分数:2.00)A.B.C.D.38.已知有结构体:struct skiht a;float b;)data,*p;若有 p= C) p-data.a D) p.data.a(分数:1.00)A.B.C.D
17、.39.以下程序的输出结果是#includestdio.hstruct sti int x;int *y;*p;int dt4=10,20,30,40;struct st aa4=50,printf(%s/n“,p1);(分数:2.00)填空项 1:_45.以下程序的输出结果是U /U。fun(int x,int y,int z)z=x*x+y*y;main()int a=31fun(6,3,a)printf(“%d“,a)(分数:2.00)填空项 1:_46.设有下列的程序段:char str=“Hello“;char *ptr;ptr=str;执行上面的程序段后,*(ptr+5)的值为(分
18、数:2.00)填空项 1:_47.函数 fun 的功能是计算 xn。double fun(double x,int n)int i; double y=1;for(i=1;i=n;i+) y=y*x;return y;主函数中已经正确定义变量 m,a,b 并赋值,要调用函数 fun 计算:m=a 4+b4-(a+b)3。实现这一计算的函数调用语句为U /U。(分数:2.00)填空项 1:_48.以下程序的输出结果是_。void reverse(int a,int n)int i,t;for(i=0;in/2;i+)t=ai; ai=an+1+i;an-1-i=t;main()int b10=1
19、,2,3,4,5,6,7,8,9,10;int i,s=0;reverse(b,8);for(i=6;i10;i+)s+=bi;printf(“%d/n“,s);(分数:2.00)填空项 1:_49.mystrlen 函数的功能是计算 str 所指字符串的长度,并作为函数值返回。请填空。int mystrlen(char *str)int i;for(i=0;U /U!/0;i+);return(i);(分数:2.00)填空项 1:_50.设 x 和 y 均为 int 型变量,且 x=1,y=2,则表达式 double(1+x/y)的值为U /U。(分数:2.00)填空项 1:_51.执行以下
20、程序后,输出“#”的个数是U /U。#include stdio.hmain()int i,j;for(i=1;i5;i+)for(j=2;j=i;j+) putchar(#);(分数:2.00)填空项 1:_52.以下程序的输出结果是_。 main() char *p=“ABC“,“DEF“,“GHI“,“JKL“; int i; for(i=3;i=0;i-,i-) printf(“%c“,*pi);(分数:2.00)填空项 1:_53.有以下程序 #includestdio.h typedef struct int num;double s; REC; void funl(REC *x)
21、 x-num=23;x-s=88.5; void main() REC a=16,90.0; fun1(sum = count = 0 ;for(i=0;i20;i+)scanf(“%d“,U /U);for(i=0;i20;i +)if(ai 0)count + +;sum+ =U /U;prinff( “sum = % d, count = % d / n“, sum, count );(分数:2.00)填空项 1:_二级 C 语言笔试-421 答案解析(总分:97.00,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.下面不属于软件设计原则的是A) 抽象 B) 模块
22、化 C) 自底向上 D) 信息隐蔽(分数:2.00)A.B.C. D.解析:解析 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念,它们具有抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试的一种。2.对于循环队列,下列叙述中正确的是A) 队头指针是固定不变的B) 队头指针一定大于队尾指针C) 队头指针一定小于队尾指针D) 队头指针可以大于队尾指针,也可以小于队尾指针(分数:2.00)A.B.C.D. 解析:解析 循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出
23、现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针。3.软件(程序)调试的任务是( )。A诊断和改正程序中的错误 B尽可能多地发现程序中的错误C发现并改正程序中的所有错误 D确定程序中错误的性质(分数:1.00)A. B.C.D.解析:解析 调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的活动。4.下面描述中,不属于软件危机表现的是 A) 软件过程不规范 B) 软件开发生产率低 C) 软件质量难以控制 D) 软件成本不断提高(分数:2.00)A. B.C.D.解析:解析 本题考查软件危机的表现形式。软件危机表现在软件需求的增长得不到满足,软件开发的成
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 421 答案 解析 DOC
