【计算机类职业资格】二级C语言笔试-62及答案解析.doc
《【计算机类职业资格】二级C语言笔试-62及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-62及答案解析.doc(24页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-62 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.以下程序运行后的输出结果是#includestdio.hmain( )FILE * fp;int a10=1,2,3,i,n;fp=fopen(“d1.dat“,“w“);for(i=0;i3;i+) fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d“, (分数:2.00)A.1 2 3 4B.2 3 4 4C.4 3 3 2D.1 1 2 35.设有
2、表示学生选课的 3张表:学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC的关键字(键或码)为(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩6.设有定义语句 int( * f)(int);,则下列叙述中正确的是(分数:2.00)A.f是基类型为 int的指针变量B.f是指向函数的指针变量,该函数具有一个 int类型的形参C.f是指向 int类型一维数组的指针变量D.f是函数名,该函数的返回值是基类型为 int类型的地址7.以下定义语句中正确的是(分数:2.00)A.int a=b=0;B.char
3、A=65+1,b=b;C.float a=1,*b= i=n2;while(ij)t=si;si=sj;sj=t;i+;j-;main( )in c a10=1,2,3,4,5,6,7,8,9,0,k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k10;k+)printf(“%d“,ak);printf(“/n“);(分数:1.00)_12.以下程序运行后的输出结果是#includestdio.hint f(int x)int y;if(x=0 x=1) return(3);y=x*x-f(x-2);return y;main( )int z;z=f(3)
4、;printf(“%d/n“,z);(分数:1.00)A.0B.9C.6D.813.算法的有穷性是指(分数:1.00)A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用14.变量 a中的数据用二进制表示的形式是 01011101,变量 b中的数据用二进制表示的形式是 11110000。若要求将 a的高 4位取反,低 4位不变,所要执行的运算是(分数:1.00)A.abB.a | bC.a (分数:2.00)A.1 2 3 4B.2 3 4 4C.4 3 3 2 D.1 1 2 3解析:解析 在 for(i=0;i12;i+)c
5、si+;中,数组元素 si的值作为数组 c的下标。当退出循环时,数组 c的 4个元素的值分别为 4、3、3、2。5.设有表示学生选课的 3张表:学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC的关键字(键或码)为(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号 D.学号,姓名,成绩解析:解析 “选课表”SC 是“学生表”S 和“课程表”C 的映射表,其主键是两个表的主键的组合。6.设有定义语句 int( * f)(int);,则下列叙述中正确的是(分数:2.00)A.f是基类型为 int的指针变量B.f是指向函数的指针
6、变量,该函数具有一个 int类型的形参 C.f是指向 int类型一维数组的指针变量D.f是函数名,该函数的返回值是基类型为 int类型的地址解析:解析 f 是指向函数的指针变量,该函数有一个整型参数,函数返回值类型为整型。7.以下定义语句中正确的是(分数:2.00)A.int a=b=0;B.char A=65+1,b=b; C.float a=1,*b= i=n2;while(ij)t=si;si=sj;sj=t;i+;j-;main( )in c a10=1,2,3,4,5,6,7,8,9,0,k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k10;k
7、+)printf(“%d“,ak);printf(“/n“);(分数:1.00)_解析:解析 fun 函数的功能是对数组中下标在 n1n2 之间的元素进行首尾互换。所以在 main函数中,当 fun(a,0,3)调用执行完后,数组 a12=4,3,2,1,5,6,7,8,9,0;当 fun(a,4,9)调用执行后,数组 a12=4,3,2,1,0,9,8,7,6,5;当 fun(a,0,9)调用执行后,数组 a12=5,6,7,8,9,0,1,2,3,412.以下程序运行后的输出结果是#includestdio.hint f(int x)int y;if(x=0 x=1) return(3);
8、y=x*x-f(x-2);return y;main( )int z;z=f(3);printf(“%d/n“,z);(分数:1.00)A.0B.9C.6 D.8解析:解析 本题是一个递归函数调用程序,当 x的值等于 0或 1时,函数值等于 3;其他情况下 y=x2-f(x-2)。在 main函数中,执行语句 z=f(3)时,y=3*3-f(3-2)=9-f(1)=9-3=6。13.算法的有穷性是指(分数:1.00)A.算法程序的运行时间是有限的 B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用解析:解析 算法具有:有穷性。一个算法必须总是(对任何合法的
9、输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的。确定性。算法中每一条指令必须有确切的含义,读者理解时不会产生歧义。可行性。一个算法是可行的,即算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。输入。一个算法有 0个或多个输入,这些输入取自于某个特定的对象的集合。输出。一个算法有一个或多个输出。14.变量 a中的数据用二进制表示的形式是 01011101,变量 b中的数据用二进制表示的形式是 11110000。若要求将 a的高 4位取反,低 4位不变,所要执行的运算是(分数:1.00)A.ab B.a | bC.a&bD.a4解析:解析 对于任何二进制
10、数,和 1进行异或运算都会对其取反,而和 0进行异或运算不会产生任何变化。15.下列叙述中错误的是(分数:1.00)A.在程序中凡是以“#”开始的语句行都是预处理命令行B.预处理命令行的最后不能以分号表示结束C.#define MAX是合法的宏定义命令行D.C程序对预处理命令行的处理是在程序执行的过程中进行的 解析:解析 C 语言中的预处理命令以符号#开头,这些命令是在程序执行前,即编译时进行处理的。16.在数据库设计中,将 E-R图转换成关系数据模型的过程属于(分数:1.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段 D.物理设计阶段解析:解析 数据库的逻辑设计分为:将概念模型转换成
11、一般的数据模型;将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。把概念模型转换成关系数据模型就是把 E-R图转换成一组关系模式。17.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序 解析:解析 在最坏的情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是 n(n-1)/2,堆排序需要比较的次数为 nlog2n。18.以下程序运行后的输出结果是#includestdio.h#includestring.htypedef struetchar name9;char sex;fl
12、oat score2; STU;void f(STU(分数:1.00)A.STU b=“Zhao“,m,85.0,9 解析:解析 在调用函数 f时,实参结构变量 c传递给形参 a。在 f函数中,a 的值改变不会影响实参c。因此,main 函数中输出 c的内容不变。19.若变量已正确定义,则以下程序段的输出结果是int a=3,b=5,c=7;if(ab)a=b;c=a;if(c!=(分数:1.00)A.c=b:printf(“%解析:解析 第一条 if语句的条件不满足,顺序执行语句 c=a;,第二条 if语句的条件不满足,退出if结构。变量 c的值等于 3,变量 b的值没有被改变,程序输出的结
13、果为 3,5,3。20.设有如下程序段,则执行 p=s;语句后,以下叙述中正确的是char s20=“Bejing“,*p;p=s:(分数:1.00)A.可以用*p 表示 s0 B.s数组中元素的个数和 p所指字符串长度相等C.s和 p都是指针变量D.数组 s中的内容和指针变量 p中的内容相同解析:解析 语句 p=s的作用是把字符数组 s的首地址作为初值赋给了指针变量 p,并且使 p指向了字符数组 s的第一个字符 s0,因此,*p 与 s0等价。21.以下结构体类型说明和变量定义中正确的是(分数:2.00)A.typedef structint n;char c;REC;REC t1,t2;
14、B.struct REC;int n;char c;REC t1,t2;C.typedef struct REC;int n=0;char c=A;t1,t2;D.structint n;char c;REC;REC t1,t2;解析:解析 对于选项 B、C,在进行结构体类型声明时,REC 后不应该有分号;对于选项 D,REC 是结构体变量而不是结构体类型名,不能用来定义变量 t1和 t2。22.在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是(分数:2.00)A.auto和 register B.extern和 registerC.auto和 staticD.static和 re
15、gister解析:解析 C 语言中只有自动变量 auto和寄存器变量 register,在使用时才开辟内存空间。23.当变量 e的值不为 2、4、6 时,值也为“真”的表达式是(分数:2.00)A.(c=2)(c=4)(c=6)B.(c=2&c=6)(c!=3)(c!=5) C.(c=2&c=6)&!(c%2)D.(c=2&c=6)&(c%2!=1)解析:解析 对于选项 A、C、D,变量 e的值为 2、4、6 时,值为“真”,不符合题意;对于选项 B,满足表达式(c=2&c=6)的整型变量 c的值是 2、3、4、5、6。当变量 c的值不为 2、4、6 时,其值只能为 3或 5,所以表达式 c!
16、=3和 c!=5中至少有一个为真。24.程序流程图中带有箭头的线段表示的是(分数:2.00)A.图元关系B.数据流C.控制流 D.调用关系解析:解析 在程序流程图中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。在题目给出的选项中,图元之间用带有箭头的线段表示图元关系。模块之间用带有箭头的线段表示调用关系。25.以下程序运行后的输出结果是#includestdio.hmain( )int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)ease 0
17、:a+;break;ease 1:b+;break;ease 2:a+;b+;break;case 3:a+:b+:printf(“a=%d,b=%d/n“,a,b);(分数:2.00)A.a=1,b=0B.a=2,b=2C.a=l,b=1D.a=2,b=1 解析:解析 由于 x=1,从外层 switch的 case 1入口,到达内层的 switch;由于 y=0,从内层 switch的 case 0入口,执行 a+;,执行 break语句,跳出内层 sw:itch 结构;“case 常量表达式”只能起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内层 switch结构后,继续执行了
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 62 答案 解析 DOC
