【计算机类职业资格】二级C语言笔试-446及答案解析.doc
《【计算机类职业资格】二级C语言笔试-446及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-446及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-446 及答案解析(总分:97.00,做题时间:90 分钟)一、选择题(总题数:40,分数:67.00)1.下列选项中,不符合良好程序设计风格的是A) 源程序要文档化 B) 数据说明的次序要规范化C) 避免滥用 goto语句 D) 模块没计要保证高耦合、高内聚(分数:2.00)A.B.C.D.2.个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈则元素出栈的顺序_。A) 12345ABCDE B) EDCBA54321C) ABCDE12345 D) 54321EDCBA(分数:2.00)A.B.C.D.3.软件是指A) 程序 B)
2、 程序和文档C) 算法加数据结构 D) 程序、数据与相关文档的完整集合(分数:2.00)A.B.C.D.4.下列叙述中正确的是A) 软件测试应该由程序开发者来完成 B) 程序经调试后一般不需要再测试C) 软件维护只包括对程序代码的维护 D) 以上 3种说法都不对(分数:2.00)A.B.C.D.5.在设计程序时,应采纳的原则之一是A) 不限制 goto语句的使用 B) 减少或取消注解行C) 程序越短越好 D) 程序结构应有助于读者理解(分数:2.00)A.B.C.D.6.下列叙述中正确的是 _。A) 程序设计就是编制程序 B) 程序测试必须由程序员自己去做C) 程序经调试改错后还应进行再测试
3、D) 程序经调度改错后不必进行再测试(分数:2.00)A.B.C.D.7.下列叙述中正确的是( )。A) 在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息B) 在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节C) 在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D) 在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法(分数:2.00)A.B.C.D.8.栈底至栈顶依次存放元素 A、B、C、D,在第五个元素 E入栈前,栈中元素可以出栈,则出栈序列可能是A) ABCED B) DCBEA C) DBCEA D) CDABE(分数:2.0
4、0)A.B.C.D.9.在面向对象方法中, ( )描述的是具有相似属性与操作的一组对象。A) 属性 B) 事件 C) 方法 D) 类(分数:2.00)A.B.C.D.10.在数据库设计中,将 E-R图转换成关系数据模型的过程属于( )。A需求分析阶段 B概念没计阶段C逻辑设计阶段 D物理设计阶段(分数:1.00)A.B.C.D.11.下列叙述中,正确的是A) 用 E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B) 用 E-R图只能表示实体集之间一对一的联系C) 用 E-R图只能表示实体集之间一对多的联系D) 用 E-R图表示的概念数据模型只能转换为关系数据模型(分数:2.00
5、)A.B.C.D.12.有三个关系 R、S 和 T如下:(分数:2.00)A.B.C.D.13.用树形结构表示实体之间联系的模型是_。A) 关系模型 B) 网状模型 C) 层次模型 D) 以上三个都是(分数:1.00)A.B.C.D.14.C语言的基本单位是( )。A) 函数 B) 过程 C) 子程序 D) 子函数(分数:1.00)A.B.C.D.15.以下选项中不属于字符常量的是_。A) C B) “C“ C) /xCC D) /072(分数:2.00)A.B.C.D.16.若有运算符:、=、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为( )。A) %、sizeof、= B)
6、 sizeof、%、=、C) sizeof、%、= D) sizeof、%、=(分数:1.00)A.B.C.D.17.下列程序的输出结果是main()double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(“%d/n“,d*y);A) 3 B) 3.2 C) 0 D) 3.07(分数:1.00)A.B.C.D.18.若有说明:int *p,m=5,n;,则以下程序段中正确的是A) p=printf(“ % d/n“, (x, y);则以下叙述中正确的是_。A) 输出语句中格式说明符的个数少于输出项的个数,不能正确输出B) 运行时产生出错信息C) 输出值为
7、 2002D) 输出值为 2003(分数:1.00)A.B.C.D.20.当把以下 4个表达式用作 if语句的控制表达式时,有一个选项与其他 3个选项含义不同,这个选项是 _。A) k%2 B) k%2=1 C) (k%2)!=0 D) !k2=1(分数:2.00)A.B.C.D.21.下列程序的运行结果是#include“stdio.h“main()intx=-9,y=5,z=8;if(xy)if(y0)z=0;else z+=1;printf(“%d/n“,z);A) 6 B) 7 C) 8 D) 9(分数:1.00)A.B.C.D.22.下列 4个关于 C语言的结论中错误的是( )。A)
8、 可以用 dowhile语句实现的循环一定可以用 while语句实现B) 可以用 for语句实现的循环一定可以用 while语句实现C) 可以用 while语句实现的循环一定可以用 for语句实现D) dowhile语句与 while语句的区别仅是关键字“while”出现的位置不同(分数:1.00)A.B.C.D.23.在 C语言中,while 和 dowhile循环的主要区别是( )。A)dowhile的循环体不能是复合语句 B)dowhile 允许从循环体外转到循环体内C)whil8的循环体至少被执行一次 D)dowhile 的循环体至少被执行一次(分数:2.00)A.B.C.D.24.判
9、断 char型变量 c1是否为小写字母的正确表达式为( )A) a=c 1=zB) (c1=a)|(c1=z)C) (a=c1|(z=c1)D) (c1=a) main()int a10=1,2,3,4,5,6,7,8,9,10;sum(a2);printf(“%d/n“, a2);程序运行后的输出结果是_。(A) 6(B) 7(C) 5(D) 8(分数:2.00)A.B.C.D.28.以下程序的输出结果是_。int f()static int i=0;int s=1;s+=i; i+;return s;main()int i, a=0;for(i=0; i5; i+)a+=f();print
10、f(“% d/n“, a);A) 20 B) 24 C) 25 D) 15(分数:2.00)A.B.C.D.29.以下叙述正确的是( )。 A) 只能在循环体内和 switch语句体内使用 break语句 B) contiune语句的作用是结束整个循环的执行 C) 在循环体内使用 break语句或 continue语句的作用相同 D) 从多层循环嵌套中退出时,只能使用 goto语句(分数:2.00)A.B.C.D.30.以下程序调用 scanf函数给变量 a输入数值的方法是错误的,其错误原因是( )。#include stdio.hmain()int *p,*q,a,b;p=printf(“i
11、nput a:“);scanf(“%d“,*p);A) *p表示的是指针变量 p的地址B) *p表示的是变量 a的值,而不是变量 a的地址C) *p表示的是指针变量 p的值D) *p只能用来说明 p是一个指针变量(分数:1.00)A.B.C.D.31.有下列程序:#includestdio.hmain()char*a=“abcd“,“ef“,“gh“,“ijk“;int i;for(i=0;i4;i+)printf(“%c“,*ai);程序运行后的输出结果是( )。Aaegi Bdfhk Cabcd Dabcdefghijk(分数:1.00)A.B.C.D.32.以下合法的字符型常量是A) /
12、x13 B) /081 C) 65 D) “/n/(分数:2.00)A.B.C.D.33.以下程序运行后的输出结果是#include stdio.hint fun(int(*s)4,int n,int k)int m,i;m=s0k;for(i=1;in;i+) if(sikm)m=sik;return m;main( )int a44=1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34 ;prinff(“%d/n“,fun(a,4,0);A) 4 B) 34 C) 31 D) 32(分数:2.00)A.B.C.D.34.下面结构体的定义语句中,错误的是A)
13、 struct ord int x;int y;int z;struct ord a;B) struct ord int x;int y;int z;struct ord a;C) struct ord int x;int y;int z;a;D) struct int x;int y;int z;)a;(分数:2.00)A.B.C.D.35.定义结构体数组:struct stuint num;char name20;x5=1,“LI“,2,“ZHAO“,3,“WANG“,4,“ZHANG“,5,“LIU“;for(i=1;i5;i+)printf(“%d%c“,xi.num,xi.name2
14、;以上程序段的输出结果为( )。A) 2A3N4A5U B) 112A3H41 C) 1A2N3A4U D) 2H3A4H51(分数:1.00)A.B.C.D.36.若有以下程序段int r=8;printf(“%d/n“,r1);输出结果是A) 16 B) 8 C) 4 D) 2(分数:2.00)A.B.C.D.37.有以下程序int fun(int x,int n)static int sum=0,i;for(i=0;in;i+)sum+=xi;return sum;main()int a=1,2,3,4,5,b=6,7,8,9,s=0;s=fun(a,5)+fun(b,4);printf
15、(“%d/n“,s);程序执行后的输出结果是A) 45 B) 50 C) 60 D) 55(分数:2.00)A.B.C.D.38.以下程序的运行结果是( )。#include stdiohmain()st,uct dateint year,month,day;today;printf(“%d/n“,sizeof(struct date);A) 6 B) 8 C) 10 D) 12(分数:1.00)A.B.C.D.39.有如下程序:#include stdiohlong fib(int n)if(n2)return(fib(n-1)+fib(n-2);else return(2);main()p
16、rintf(“%d/n“,fib(3);该程序的输出结果是( )。A) 2 B) 4 C) 6 D) 8(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:30.00)40.对下列二叉树进行中序遍历的结果为 1。(分数:2.00)填空项 1:_41.二叉树的遍历可以分为三种:前序遍历、_遍历和后序遍历。(分数:2.00)填空项 1:_42.在面向对象方法中,类的实例称为 1。(分数:2.00)填空项 1:_43.某二叉树中度为 2的结点有 18个,则该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_44.在链表的运算过程中,能够使空表与非空表的运算统一的结构是 1。(
17、分数:2.00)填空项 1:_45.在链表的运算过程中,能够使空表与非空表的运算统一的结构是 1。(分数:2.00)填空项 1:_46.设变量 a和 b已正确定义并赋初值,请写出与 a-=a+b等价的赋值表达式 1。(分数:2.00)填空项 1:_47.已定义 char ch=“$“;int i=1,j;执行 j=! chi+以后,i 的值为 1。(分数:2.00)填空项 1:_48.以下程序的输出结果是U /U。#includestdio.hmain()int i,j,sum;for(i=3;i=-1;i-)(sum=0;for(j=1;j=i;j+) sum+=i*j;printf(“%d
18、/n,sum);(分数:2.00)填空项 1:_49.以下程序运行后的输出结果是 1。main2int a=1,b=2,c=3;if(c=a) printf(“%d/n“,c);else printf(“%d/n“,b);(分数:2.00)填空项 1:_50.以下程序的输出结果为_。#define JFT(x) x*xmain( )int a,k=3;a=+JFT(k+1);printf(“%d“,a);(分数:2.00)填空项 1:_51.下面程序的功能是输出数组 s中最大元素的下标,请填空。main( )int k,p,s =1,-9,7,2,-10,3;for(p=0,k=p;p6;p+
19、)if(spsk)_printf(“%d/n“,k);(分数:2.00)填空项 1:_52.以下 fun函数的功能是在 N行 M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设 M,N 已定义) int fun(int aNM) int i,j,row=0,co1=0; for(i=0;iN;i+) for(i=0;jM;j+) if(aijarowco1)row=i;co1=j; returnU /U; (分数:2.00)填空项 1:_53.以下程序中函数 fun的功能是:构成一个如图所示的带头节点的单向链表,在节点的数据域中放入了具有两个字符的字符串。函数 disp的功能是显
20、示输出该单链表中所有节点中的字符串。请填空完成函数disp。(分数:2.00)填空项 1:_54.以下程序运行后的输出结果是U /U。#include stdio.hfun(int x)if(x/20) fun(x/2);printf(“%d“,x);main()fun(6); (分数:2.00)填空项 1:_二级 C语言笔试-446 答案解析(总分:97.00,做题时间:90 分钟)一、选择题(总题数:40,分数:67.00)1.下列选项中,不符合良好程序设计风格的是A) 源程序要文档化 B) 数据说明的次序要规范化C) 避免滥用 goto语句 D) 模块没计要保证高耦合、高内聚(分数:2.
21、00)A.B.C.D. 解析:解析 编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。更直接地说,风格意味着要按照规则进行编程。这些规则包括:程序文档化。就是程序文档包含恰当的标识符、适当的注解和程序的视觉组织等。数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。注意 goto语句的使用。合理使用goto语句可以提高代码的运行效率,但 goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用 got
22、o语句。2.个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈则元素出栈的顺序_。A) 12345ABCDE B) EDCBA54321C) ABCDE12345 D) 54321EDCBA(分数:2.00)A.B. C.D.解析:知识点 栈结构的存储方式评析 栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。这表明栈的运算规则是“先进后出”(或称“后进先出”)。在栈顶进行插入运算,称为进栈(或入栈),在栈顶进
23、行删除运算,称为退栈(或出栈)。本题中,依次进栈,即依次插入元素1、2,3、4、5、A、B、C、D、E,依次出栈,即依次删除元素,根据栈“先进后出”的规则,应该以倒序出栈。即元素出栈顺序为 EDCBA54321。3.软件是指A) 程序 B) 程序和文档C) 算法加数据结构 D) 程序、数据与相关文档的完整集合(分数:2.00)A.B.C.D. 解析:解析 软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。4.下列叙述中正确的是A) 软件测试应该由程序开发者来完成 B) 程序经调试后一般不需要再测试C) 软件维护只包括对程序代码的维护 D)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 446 答案 解析 DOC
