【计算机类职业资格】全国计算机等级考试二级C语言真题2014年9月及答案解析.doc
《【计算机类职业资格】全国计算机等级考试二级C语言真题2014年9月及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】全国计算机等级考试二级C语言真题2014年9月及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、全国计算机等级考试二级 C 语言真题 2014 年 9 月及答案解析(总分:43.00,做题时间:120 分钟)一、选择题(总题数:40,分数:40.00)1.下列关于算法复杂度叙述正确的是( )。(分数:1.00)A.最坏情况下的时间复杂度一定高于平均情况的时间复杂度B.时间复杂度与所用的计算工具无关C.对同一个问题,采用不同的算法,则它们的时间复杂度是相同的D.时间复杂度与采用的算法描述语言有关2.设有栈 S 和队列 Q,初始状态均为空。首先依次将 A,B,C,D,E,F 入栈,然后从栈中退出三个元素依次入队,再将 X,Y,Z 入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出
2、,则退队元素的顺序为( )。(分数:1.00)A.DEFXYZABCB.FEDZYXCBAC.FEDXYZCBAD.DEFZYXABC3.下列叙述中正确的是( )。(分数:1.00)A.有两个指针域的链表称为二叉链表B.循环链表是循环队列的链式存储结构C.带链的栈有栈顶指针和栈底指针,因此又称为双重链表D.结点中具有多个指针域的链表称为多重链表4.某二叉树共有 845 个结点,其中叶子结点有 45 个,则度为 1 的结点数为( )。(分数:1.00)A.400B.754C.756D.不确定5.软件需求分析阶段的主要任务是( )。(分数:1.00)A.确定软件开发方法B.确定软件开发工具C.确定
3、软件开发计划D.确定软件系统的功能6.下面对软件测试描述错误的是( )。(分数:1.00)A.严格执行测试计划,排除测试的随意性B.随机地选取测试数据C.软件测试的目的是发现错误D.软件测试是保证软件质量的重要手段7.结构化程序的三种基本控制结构是( )。(分数:1.00)A.顺序、选择和重复(循环)B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移8.数据库中对概念模式内容进行说明的语言是( )。(分数:1.00)A.数据定义语言B.数据操纵语言C.数据控制语言D.数据宿主型语言9.某个工厂有若干个仓库,每个仓库存放有不同的零件,相同零件可能放在不同的仓库中,则实体仓库和零件间
4、的联系是( )。(分数:1.00)A.多对多B.一对多C.多对一D.一对一10.有三个关系 R、S 和 T 如下: (分数:1.00)A.交B.差C.并D.选择11.以下叙述正确的是( )。(分数:1.00)A.计算机只接收由 0 和 1 代码组成的二进制指令或数据B.计算机只接收由 0 和 1 代码组成的十进制指令或数据C.计算机可直接接收并运行 C 源程序D.计算机可直接接收并运行任意高级语言编写的源程序12.若有 C 语言表达式 2+3*4+73,以下选项中叙述正确的执行顺序是( )。(分数:1.00)A.先执行 3*4 得 12,再执行 73 得 25,最后执行 2+12+25 得 1
5、65B.先执行 3*4 得 12,再执行 2+12 得 14,再执行 73 得 2,最后执行 14+2 得 16C.先执行 73 得 2,再执行 3*4 得 12,再执行 12+2 得 14,最后执行 2+14 得 16D.先执行 2+3 得 5,再执行 5*4 得 20再执行 20+7 得 27,最后执行 273 得 913.若有定义:char c;int d;,程序运行时输入:c=1,d=2,能把字符 1 输入给变量 c、整数 2 输入给变量 d 的输入语句是( )。(分数:1.00)A.scanf(“c=d d=d“,&c,&d);B.scanf(“c=c d=d“,&c,&d);C.s
6、canf(“c=d,d=d“,&c,&d);D.scanf(“c=c,d=d“,&c,&d);14.以下选项中,与 n=i+完全等价的表达式是( )。(分数:1.00)A.n=i,i=i+1B.n+=i+1C.i=i+1,n=iD.n=+i15.设有定义: int n=1234;double x=31415: 则语句 printf(“3d,13fn“,n,x); 的输出结果是( )。(分数:1.00)A.1234,3142B.123,3142C.1234,3141D.123,314116.有以下程序: #include main() int a,b; for(a=0;a3;a+) scanf(
7、“d“,&b); switch(B)default:printf(“d,“,+b); case 1:printf(“d,“,+b); case 2:printf(“d,“,+b); 执行时输入:1 2 3,则输出结果是( )。(分数:1.00)A.2,2,3,4,4,4,B.2,3,4,C.2,3,3,4,5,6,D.2,3,4,3,4,4,17.设变量 m 为 float 类型,变量 n 为 int 类型,则以下能实现将 m 中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )。(分数:1.00)A.m=(m*100+05)1000B.n=m*100+05,m=n1000C.n=
8、m100+05,m=n*1000D.m=m*100+05100018.有以下程序: #include main() int a=1,b=1; for(;a-;) b-; printf(“d,dn“,a,b); 程序运行后的输出结果是( )。(分数:1.00)A.-10B.0,0C.-1,-1D.1,119.若有定义: char s30=0; 运行时输入: This is a string 则以下不能正确读入整个字符串:This is a string 到字符数组 s 中的语句组是( )。(分数:1.00)A.i=0;while(c=getchar()!=n)si+=c;B.gets(s);C.
9、for(i=0;(c=getchar()!=n;i+)si=c;D.scanf(“s“,s);20.有如下程序: #include main() int a=0,b=1; if(a+&b+) printf(“TRUE“); else printf(“FALSE“); printf(“-OUT:a=d,b=dn“,a,b); 程序运行后的输出结果是( )。(分数:1.00)A.FALSE _OUT:a=1,b=1B.FALSE_OUT:a=0,b=2C.TRUE_OUT:a=1,b=2D.TRUE_OUT:a=0,b=121.有如下程序: #include main() int i,data;
10、scanf(“d“,&data); for(i=0;i5;i+) if(idata)continue; printf(“d-“,i); 程序运行时,从键盘输入:3 后,程序的输出结果为( )。(分数:1.00)A.3-4-B.1-2-3-C.0-1-2-D.0-1-2-3-22.有以下程序: #include main() int a=0,b=1; if(+a=b+) printf(“1“); else printf(“0“);printf(“a=d,b=dn“,a,b); 程序运行后的输出结果是( )。(分数:1.00)A.1a=0,b=1B.0a=1,b=2C.1a=1,b=2D.0a=0
11、,b=223.有如下程序段: for(i=0;i10;i+) if(i=5)break; 则循环结束后 i 的值为( )。(分数:1.00)A.1B.0C.5D.1024.设有定义:int a=0,b=1;,以下表达式中,会产生“短路”现象,致使变量 b 的值不变的是( )。(分数:1.00)A.a+&b+B.a+bC.+a&b+D.+a +b25.有如下程序段: for(i=0;i10;i+) if(i5)break; 则循环结束后 i 的值为( )。(分数:1.00)A.10B.5C.9D.626.有以下程序段: int x,i; for(i=l;i=100;i+) scanf(“d“,&
12、x); if(x0)continue; printf(“4dn“,x); 下面针对上述程序段的描述正确的是( )。(分数:1.00)A.最多可以输出 100 个非负整数B.当 x0 时结束整个循环C.当 x=0 时没有任何输出D.pfintf 函数调用语句总是被跳过27.关于地址和指针,以下说法正确的是( )。(分数:1.00)A.通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量B.可以取一个常数的地址赋值给同类型的指针变量C.可以取一个表达式的地址赋值给同类型的指针变量D.可以取一个指针变量的地址赋值给基类型相同的指针变量28.有以下程序: #include #define
13、 N 4 void fun(int aN) int i; for(i=0;iN;i+) a0i+=aN-1N-1-i; main() int xNN=1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16,i; fun(x); for(i=0;iN;i+)printf(“d,“,xii); pfintf(“n“); 程序运行后的输出结果是( )。(分数:1.00)A.4,7,10,13,B.1,6,11,16,C.17,6,11,16,D.5,13,21,29,29.关于 C 语言函数说明的位置,以下叙述正确的是( )。(分数:1.00)A.在函数说明之后对该函数进
14、行调用,编译时不会出现错误信息B.函数说明可以出现在源程序的任意位置,在程序的所有位置对该函数的调用,编译时都不会出现错误信息C.函数说明只能出现在源程序的开头位置,否则编译时会出现错误信息D.函数说明只是为了美观和编译时检查参数类型是否一致,可以写也可以不写30.以下叙述正确的是( )。(分数:1.00)A.不能在数组说明符的一对方括号中使用表达式B.char cl,*c2,*c3,c42;是 C 语言的合法语句C.数组下标的最小值可以是负值D.若有数组定义 int array5;,则语句 printf(“d“,array123);是合法的31.有以下程序: #include main()
15、int a=2,*ptr; ptr=&a; *ptr=8; a=(*ptr)+; printf(“d,dn“,a,*ptr); 程序运行后的输出结果是( )。(分数:1.00)A.9,9B.8,9C.2,4D.0,432.有以下程序: #include main() int i,*ptr; int array4= 0,1; for(ptr=array,i=0;i3;i+,ptr+) if(*ptr=0) putchar(#); else putchar(M+*ptr); printf(“n“); 程序运行后的输出结果是( )。(分数:1.00)A.MO#B.#F#C.MMMD.#N#33.有以
16、下程序段: int m23,(*p)3; p=m; 则以下对 m 数组元素的引用正确的是( )。(分数:1.00)A.(P+1)0B.*(*(p+2)+1)C.*(P1+1)D.P1+234.有以下程序: #inelude char*a=“you“; char*b=“Welcome you to Beijing!“; main() char*p; p=b; while(*P!=*a)P+; printf(“sn“,P); 程序运行后的输出结果是( )。(分数:1.00)A.you to Beijing!B.to Beijing!C.Welcome you to Beijing!D.Beijin
17、g!35.有以下程序: #include void f(int x,int n) if(n1) printf(“d,“,xn-1); f(x,n-1); printf(“d,“,xn-1); else printf(“d,“,x0); main() int z3=1,2,3; f(z,3); printf(“n“); 程序运行后的输出结果是( )。(分数:1.00)A.3,1,3,B.3,2,1,2,3,C.1,2,3,1,2,3,D.1,2,3,2,1,36.有以下程序: #include int a=2; int f(int k) static int n; int m; m=n=0; n
18、+;a+;m+;k+; return n+m+a+k; main() int k; for(k=0;k2;k+)printf(“d,“,f(k); printf(“n“); 程序运行后的输出结果是( )。(分数:1.00)A.6,8,B.6,9,C.6,6,D.6,7,37.有以下程序: #include int sum(int*array,int len) if(len=1) return array1; else return array1+sum(array+1,len-1); main() int arrayE 5=0,9,1,2,res; res=sum array,3); prin
19、tf(“dn“,res); 程序运行后的输出结果是( )。(分数:1.00)A.27B.11C.8D.1238.有以下程序: #include main() char s10=“verygood“,*ps=s; ps=“too“; s4=0; puts(ps); 程序的运行结果是( )。(分数:1.00)A.tooB.verygoodC.veryD.good39.以下叙述中错误的是( )。(分数:1.00)A.函数中的形参属于局部变量B.在函数内部定义的变量只能在本函数范围内使用C.在函数外部定义的变量在所有函数中都有效D.在不同的函数中可以使用相同名字的变量40.有以下程序: #includ
20、e main() FILE*fp; int i,a6=1,2,3,4,5,6,k; fp=fopen(“dat (A)dat“,“w+“); fprintf(fp,“dn“,a0); for(i=1;i6;i+) rewind(fp); fprintf(fp,“dn“,ai); rewind(fp); fscanf(fp,“d“,&k); fclose(fp); printf(“dn“,k); 程序运行后的输出结果是( )。(分数:1.00)A.6B.21C.123456D.654321二、程序填空题(总题数:1,分数:1.00)41.给定程序中,函数 fun 的功能是:调用随机函数产生 20
21、 个互不相同的整数放在形参 a 所指数组中(此数组在主函数中已置 0)。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序在文件 BLANKlC 中。不得增行或删行,也不得更改程序的结构! 试题程序: #include #include #define N 20 void fun(int*a) int i,x,n=0; x=rand()20; *found* while(n【1】) for(i=0;in;i+) *found* if(X=ai) 【2】; *found* if(i=【3】) an=x;n+; x=rand()20; main() int x
22、N=0,i; fun(x); printf(“The result:n“); for(i=0;iN;i+) printf(“4d“,xi); if(i+1)5=0)printf(“n“); printf(“nn“); (分数:1.00)_三、程序修改题(总题数:1,分数:1.00)42.下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数 fun 的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数 fun 中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1C 中,不要改动 main 函数,不得增行或删行,也不得
23、更改程序的结构! 试题程序: #include #include #include typedef struct 且 aa int data; struct aa*next; NODE; int fun(NODE*h) int sum=0; NODE*p; p=h-next; *found* while(P-next) if(P-data2=0) sum+=P-data; *found* P=h-next; return sum; NODE*creatlink(int n) NODE*h,*p,*s; int i; h=P=(NODE*)malloc(sizeof(NODE); for(i=1
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 全国 计算机等级考试 二级 语言 2014 答案 解析 DOC
