【计算机类职业资格】二级C语言笔试-136及答案解析.doc
《【计算机类职业资格】二级C语言笔试-136及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-136及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-136 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.有以下程序fun(int x)int p;if(x=0|x=1)return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7);程序执行后的输出结果是( )。(分数:1.00)A.7B.3C.2D.02.下面程序的输出是( )。main()int t=1;fun(fun(t);fun(int h)static int a3=1,2,3;int k;for(k=0;k3;k+)ak+=ak-h;for(k=0;k3;
2、k+)printf(“%d“,ak);printf(“/n“);return(ah);(分数:1.00)A.1,2,3,1,5,9,B.1,3,5,1,3,5,C.1,3,5,0,4,8,D.1,3,5,-1,3,7,3.下列说法正确的是( )。(分数:1.00)A.在 C语言中,可以使用动态内存分配技术,定义元素个数可变的数组B.在 C语言中,数组元素的个数可以不确定,允许随机变动C.在 C语言中,数组元素的数据类型可以不一致D.在 C语言中,定义一个数组后,就确定了它所容纳的元素的个数4.下列函数的类型是( )。fun(double x)float y;y=3*x-4;return y;(
3、分数:1.00)A.intB.不确定C.voidD.float5.一些重要的程序设计语言(如 C语言和 Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用( )。(分数:1.00)A.栈B.堆C.数组D.链表6.下列叙述正确的是( )。(分数:1.00)A.C语言中的文件是流式文件,因此只能顺序存取数据B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失7.表达式5-1的值是( )。(分数:1.00)
4、A.整数 4B.字符 4C.表达式不合法D.字符 68.下列程序执行后的输出结果是( )。void rune(int*a,int b)b0=*a+b;main()int a,b5;a=0;b0=3;func( char*s2=“ABdUG“:int t;t=strcmp(s1,s2);printf(“%d“,t);(分数:1.00)A.正数B.负数C.零D.不确定的值16.下列叙述中正确的是( )。(分数:1.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对17.有以下程序:void swap(char*x,char
5、*y)char t;t=*x;*x=*y;*y=t;main()char*s1=“abe“,*s2=“123“;swap(s1,s2);printf(“%s,%s/n“,s1,s2);程序执行后的输出结果是( )。(分数:1.00)A.123,abcB.abe,123C.1bc,a23D.321,cba18.下列程序执行后的输出结果是( )。main()char x=0xFFFF;printf(“%d/n“,x-);(分数:1.00)A.-32767B.FFFEC.-1D.-3276819.设有以下语句:int a=1,b=2,c;c=a(b2);执行后,c 的值为( )。(分数:1.00)A
6、.6B.7C.8D.920.下列程序的输出结果是( )。#includestdio.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);(分数:1.00)A.13579B.48579C.48549D.4899921.下列程序的输出结果是( )。main()int p8=11,12,13,14,15,16,17,18),i=0,j=0;while(i+7)if(pi%2)j+=pi;pr
7、intf(“%d/n“,j);(分数:1.00)A.42B.45C.56D.6022.下面的函数调用语句中 func函数的实参个数是( )。func(f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)(分数:1.00)A.3B.4C.5D.823.表达式0x11 的值是( )。(分数:1.00)A.0xFFEEB.0x71C.0x0071D.0xFFE124.下列程序中 C的二进制值是( )。char a=2,b=4,c;c=ab2;(分数:1.00)A.00000011B.00010100C.00011100D.000i100025.为了避免在嵌套的条件语句 if else
8、中产生二义性,C 语言规定,else 子句总是与( )配对。(分数:1.00)A.缩排位置相同 ifB.其前面最近的 ifC.其后面最近的 ifD.同一行上的 if26.按照“先进后出”原则组织数据的结构是( )。(分数:1.00)A.队列B.栈C.双向链表D.二叉树27.下列程序的运行结果为( )。#define MAX(x,y)(x)(y)?(x):(y)main()int a=2,b=3, c=1,d=3,t;printf(“%d/n“,(MAX(a+b,c+d)*100);(分数:1.00)A.500B.5C.4D.40028.以三级模式为框架形式所组成的 3种数据库中,真实存在于计算
9、机外存的数据库是( )。(分数:1.00)A.概念数据库B.用户数据库C.物理数据库D.逻辑数据库29.有以下程序:main()int i,j,x=0;for(i=0;i2;i+)x+;for(j=0;j=3;j+)if(j=0;j=3;j+)x+; x+; printf(“x=%d/n“,x);程序执行后的输出结果是( )。(分数:1.00)A.x=4B.x=8C.x=6D.x=1230.数据库管理系统(DBMS)中用来定义模式、内模式和外模式的语言为( )。(分数:1.00)A.CB.BasicC.DDLD.DML31.以下叙述中正确的是( )。(分数:1.00)A.预处理命令行必须位于
10、C源程序的起始位置B.在 C语言中,预处理命令行都以“#”开头C.每个 C程序必须在开头包含预处理命令行:#includestdio.hD.C语言的预处理不能实现宏定义和条件编译的功能32.下列程序的运行结果是( )。int y=5,x=14;y=(x=3*y,x+1),x-1);printf(“x=%d,y=%d”,x,y);(分数:1.00)A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y-2733.若有以下程序段,w 和 k都是整型变量:|w=k:LB:if(w=0)go to LE;w-:printf(“*“)goto LB:LE;|则不能与上面程序段等价的
11、循环语句是( )。(分数:1.00)A.for(w=k;w!=0;w-)printf(“*“);B.for(w=k;w;-w)printf(“*“);C.w=k:while(w-!=0)printf(“*“);D.w=k;w+;dow-;printf(“*“);while(w!=0);34.下列程序输出的结果是( )。main()double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(“%d/n“,d*y);(分数:1.00)A.3B.3.2C.0D.3.0735.设在 C语言中,float 类型数据占 4字节,则 double类型数据占( )字节。(分
12、数:1.00)A.1B.2C.8D.436.有下列程序:main()int y=10;doy-;while(-y);printf(“%d/n“,-y);当执行程序时,输出的结果是( )。(分数:1.00)A.-1B.1C.4D.037.若有下列定义(设 int类型变量占 2字节):int i=8,j=9;则下列语句:printf(“i=%d,j=%d/n“,i,j);输出的结果是( )。(分数:1.00)A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,938.有以下程序:main()int a=1,b=3,c=5,*p;int *p1= switch(n+)default
13、:printf(“error“);break;casea:easeA:caseb:caseB:printf(“good“);break;casec:caseC:printf(“pass“);cased:caseD:printf(“warn“);(分数:4.00)填空项 1:_50.以下程序的输出结果是_。main()int a=1,b=2;a=a+b;b=a-b;a=a-b;printf(“%d,%d/n“,a,b);(分数:4.00)填空项 1:_51.要求使下列程序输出 5个整数,请填空。for(i=0;i=_;printf(“%d/n“,i+=2););(分数:4.00)填空项 1:_5
14、2.在宏定义#define P13.14159 中,用宏名 PI代替一个_。(分数:4.00)填空项 1:_53.下列程序的输出结果是_。#includestdio.hsb(int s,int b)static int n=3;b=sn:n-; return(b);main()int s=1,5,6,8;int i,x=0;for(i=0;i4;i+)x=sb(s,x);printf(“%d“,x);printf(“/n“);(分数:4.00)填空项 1:_54.下面 rotate函数的功能是:将 n行 n列的矩阵 A转置 A,例如(分数:8.00)填空项 1:_二级 C语言笔试-136 答案
15、解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.有以下程序fun(int x)int p;if(x=0|x=1)return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7);程序执行后的输出结果是( )。(分数:1.00)A.7B.3C.2 D.0解析:解析 在函数 fun(int x)中,有个 if语句判断,如果参数 x等于 0或 1时,返回值。否则进入下面的 p=x-fun(x-2)递归函数,当在主函数中调用 fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5-fun(
16、3)=7-(5-(3-fun(1)=7-(5-(3-3)-7-5=2”,所以最后的输出结果为 2。2.下面程序的输出是( )。main()int t=1;fun(fun(t);fun(int h)static int a3=1,2,3;int k;for(k=0;k3;k+)ak+=ak-h;for(k=0;k3;k+)printf(“%d“,ak);printf(“/n“);return(ah);(分数:1.00)A.1,2,3,1,5,9,B.1,3,5,1,3,5,C.1,3,5,0,4,8,D.1,3,5,-1,3,7, 解析:解析 本题考查双重函数调用及 for循环使用,fun 函数
17、中第一个 for循环语句的作用是给数组a赋值。当第一次调用 fun函数时,把实参 1传给形参,输出 a数组的元素为 1,3,5;第二次调用 fun函数时,由于数组 a为静态局部变量,故输出 a数组的元素为-1,3,7。3.下列说法正确的是( )。(分数:1.00)A.在 C语言中,可以使用动态内存分配技术,定义元素个数可变的数组B.在 C语言中,数组元素的个数可以不确定,允许随机变动C.在 C语言中,数组元素的数据类型可以不一致D.在 C语言中,定义一个数组后,就确定了它所容纳的元素的个数 解析:解析 在 C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也
18、就确定了,并且同一个数组中所有元素都是同一类型。4.下列函数的类型是( )。fun(double x)float y;y=3*x-4;return y;(分数:1.00)A.int B.不确定C.voidD.float解析:解析 本题考查函数值的类型。在函数调用时,尽管 y的类型是 float,x 的类型是 double,但是因为函数定义时没有指定类型说明,系统默认函数值的类型为 int型,所以计算后的 y的类型是 int型。5.一些重要的程序设计语言(如 C语言和 Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用( )。(分数:1.00)A.栈 B.堆C.数组D.链表解
19、析:解析 在允许过程的递归调用的程序设计语言中,由于 C语言中栈的特性为先进后出,因此用栈来实现递归调用中的存储分配。6.下列叙述正确的是( )。(分数:1.00)A.C语言中的文件是流式文件,因此只能顺序存取数据B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 解析:解析 在 C语言中,有两种对文件的存取方式:顺序存取和直接存取。如果以“a”的方式对已打开的文件进行写操作后,则原文件中内容将保存,新的数据写在原有内
20、容之后。如果以“a+”的方式为读和写操作而打开文件,则可以对文件进行读/写,而且在读和写操作之间不必关闭文件。可以从头开始读。当对文件的读(写)操作完成之后,必须将它关闭。7.表达式5-1的值是( )。(分数:1.00)A.整数 4 B.字符 4C.表达式不合法D.字符 6解析:解析 在 C语言中,字符都是变为其对应的 ASCII码值来参加算术运算的,但字符间的相对位置关系还是不变的,字符 5和字符 1的 ASCII码值相差仍是 4。8.下列程序执行后的输出结果是( )。void rune(int*a,int b)b0=*a+b;main()int a,b5;a=0;b0=3;func( ch
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 136 答案 解析 DOC
