【计算机类职业资格】二级C语言笔试-378及答案解析.doc
《【计算机类职业资格】二级C语言笔试-378及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-378及答案解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-378 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是( )。A) 算法的效率只与问题的规模有关,而与数据的存储结构无关B) 算法的时间复杂度是指执行算法所需要的计算工作量C) 数据的逻辑结构与存储结构是一一对应的D) 算法的时间复杂度与空间复杂度一定相关(分数:1.00)A.B.C.D.2.栈和队列的共同点是( )。A) 都是先进后出 B) 都是先进先出C) 只允许在端点处插入和删除元素 D) 没有共同点(分数:1.00)A.B.C.D.3.下列关于队列的叙述中正确的是( )。A) 在队列中只能插入
2、数据 B) 在队列中只能删除数据C) 队列是先进先出的线性表 D) 队列是先进后出的线性表(分数:1.00)A.B.C.D.4.下面概念中,不属于面向对象方法的是( )。A) 对象 B) 继承 C) 类 D) 过程调用(分数:1.00)A.B.C.D.5.软件是指( )。A) 程序 B) 程序和文档C) 算法加数据结构 D) 程序、数据与相关文档的完整集合(分数:1.00)A.B.C.D.6.信息隐蔽的概念与下述哪一种概念直接相关( )。A) 软件结构定义 B) 模块独立性 C) 模块类型划分 D) 模块耦合度(分数:1.00)A.B.C.D.7.下列选项中,不属于模块间耦合的是( )。A)
3、数据耦合 B) 标记耦合 C) 异构耦合 D) 公共耦合(分数:1.00)A.B.C.D.8.对于现实世界中事物的特征,在实体联系模型中使用( )。A) 属性描述 B) 关键字描述 C) 二维表格描述 D) 实体描述(分数:1.00)A.B.C.D.9.下列数据模型中,具有坚实理论基础的是( )。A) 层次模型 B) 网状模型 C) 关系模型 D) 以上三个都是(分数:1.00)A.B.C.D.10.关系表中的每一横行称为一个( )。A) 元组 B) 字段 C) 属性 D) 码(分数:1.00)A.B.C.D.11.用 C 语言编写的代码程序( )。A) 可立即执行 B) 是一个源程序C) 经
4、过编译即可执行 D) 经过编译解释即可执行(分数:1.00)A.B.C.D.12.以下叙述中正确的是( )。A) 构成 C 程序的基本单位是函数 B) 可以在一个函数中定义另一个函数C) main()函数必须放在其他函数之前 D) 函数定义的格式是 KR 格式(分数:1.00)A.B.C.D.13.以下叙述中正确的是( )。A) C 程序中的注释只能出现在程序的开始位置和语句的后面B) C 程序书写格式严格,要求一行内只能写一个语句C) C 程序书写格式自由,一个语句可以写在多行上D) 用 C 语言编写的程序只能放在一个程序文件中(分数:1.00)A.B.C.D.14.有以下程序:#inclu
5、de stdio.hmain() int x=1, y=2, z=3; if (xy) if (yz) printf(“%d“, +z); else printf(“%d“, +y); printf(“%d/n“, x+); 程序的运行结果是( )。A) 331 B) 41 C) 2 D) 1(分数:1.00)A.B.C.D.15.下列程序的运行结果是( )。#include stdio.hmain() int x=-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
6、)A.B.C.D.16.在嵌套使用 if 语句时,C 语言规定 else 总是( )。A) 和之前与其具有相同缩进位置的 if 配对B) 和之前与其最近的 if 配对C) 和之前与其最近的且不带 else 的 if 配对D) 和之前的第一个 if 配对(分数:1.00)A.B.C.D.17.有以下程序:#include stdio.hmain() char k; int i; for(i=1; i3; i+) scanf(“%c“,k); switch(k) case 0: printf(“another/n“); case 1: printf(“number/n“); 程序运行时,从键盘输入
7、:01回车,程序执行后的输出结果是( )。A) anothernumberB) anothernumberanotherC) anothernumbernumberD) numbernumber(分数:1.00)A.B.C.D.18.有以下程序:#include stdio.hmain() int i; for(i=0; i3; i+) switch(i) case 0: printf(“%d“, i); case 2:printf(“%d“, i); default: printf(“%d“, i); 程序运行后的输出结果是( )。A) 022111 B) 021021 C) 000122
8、D) 012(分数:1.00)A.B.C.D.19.以下选项中不属于字符常量的是( )。A) C B) “C“ C) /xCC D) /072(分数:1.00)A.B.C.D.20.有以下程序:#include stdio.hmain() char c1, c2, c3, c4, c5, c6; scanf(“%c%c%e%c“, c 1, c2, c3, c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c%c/n“, c5, c6); 程序运行后,若从键盘输入(从第 1 列开始) :123回车45678回
9、车则输出结果是( )。A) 1267 B) 1256 C) 1278 D) 1245(分数:1.00)A.B.C.D.21.在 C 语言中,函数返回值的类型最终取决于( )。A) 函数定义时在函数首部所说明的函数类型B) return 语句中表达式值的类型C) 调用函数时主调函数所传递的实参类型D) 函数定义时形参的类型(分数:1.00)A.B.C.D.22.下面的函数调用语句中 func 函数的实参个数是( )。func(f2(v1, v2), (v3, v4, v5), (v6, max(v7, v8) ) ); A) 3 B) 4 C) 5 D) 8(分数:1.00)A.B.C.D.23
10、.有以下程序:#include stdio.hvoid f(intv, intw) int t; t=v; v=w; w=t; main() int x=1, y=3, z=2; if(xy) f(x, y); else if(yz) f(y, z); else f(x, z); printf(“%d, %d, %d/n“, x, y, z); 执行后输出结果是( )。A) 1, 2, 3 B) 3, 1, 2 C) 1, 3, 2 D) 2, 3, 1(分数:1.00)A.B.C.D.24.设有以下定义和语句:int a32=1, 2, 3, 4, 5, 6, *p3; p0=a1; 则*(
11、p0+1) 所代表的数组元素是()。A) a01 B) a10 C) a11 D) a12(分数:1.00)A.B.C.D.25.若有定义:int a23; ,以下选项中对 a 数组元素正确引用的是( )。A) a21 B) a23 C) a03 D) a12!1(分数:1.00)A.B.C.D.26.下列程序的输出结果是( )。#includestdio. h#define N 3#define M 3void fun(int aMN) printf(“%d/n“, *(a1+2) ); main() int aMN; int i, j, for(i=0; iM; i+) for(j=0;
12、jN; j+) aij=i+j-(i-j); fun(a); A) 3 B) 4 C) 5 D) 6(分数:1.00)A.B.C.D.27.若有定义:int w35;,则以下不能正确表示该数组元素的表达式是( )。A) *(*w+3) B) *(w+1) 4 C) *(*(w+1) ) D) *(w00+1)(分数:1.00)A.B.C.D.28.下列程序执行后的输出结果是( )。#include stdio. hmain() int a33,*p, i; p=a00; for(i=1; i9; i+) pi=i+1; printf(“%d/n“, a12); A) 3 B) 6 C) 9 D
13、) 随机数(分数:1.00)A.B.C.D.29.有以下程序:#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; printf(“%d/n“, fun(a, 4, 0) ); 程序的运行结果是( )。A) 4 B) 34 C) 31 D) 32(分数:1.00)A.B.C.D.30.
14、下面程序段的运行结果是( )。char *p=“ 123defgh“; p+=3;printf(“%d/n“, strlen(strcpy(p, “ ABCD“) ) ); A) 8 B) 12 C) 4 D) 7(分数:1.00)A.B.C.D.31.对下述程序的判断中,正确的是( )。#includestdio.hvoid main() char*p, s128; p=s; while(strcmp(s, “End“) ) printf(“Input a string:“); gets(s); p=s; while(*p) putchar(*p+); A) 此程序循环接收字符串并输出,直到
15、接收字符串“End”为止B) 此程序循环接收字符串,接收到字符串“End”则输出,否则程序终止C) 此程序循环接收字符串并输出,直到接收字符串“End”为止,但因代码有错误,程序不能正常工作D) 此程序循环接收字符串并将其连接在一起,直到接收字符串“End”为止,输出连接在一起的字符串(分数:1.00)A.B.C.D.32.阅读下列程序,当运行函数时,输入 asd af aa z67,则输出为( )。#include stdio.h#include ctype.h#include string.hint fun (char *str) inti, j=0; for(i=0; stri!=/0;
16、 i+) if(stri!= ) strj+=stri; strj=/0; main() char str81; int n; printf(“Input a string:“); gets(str); puts(str); fun(str); printf(“%s/n“, str); A) asdafaaz67 B) asd af aa z67 C) asd D) z67(分数:1.00)A.B.C.D.33.在函数调用过程中,如果函数 funA 调用了函数 funB,函数 funB 又调用了函数 funA,则( )。A) 称为函数的直接递归调用 B) 称为函数的间接递归调用C) 称为函数的
17、循环调用 D) C 语言中不允许这样的递归调用(分数:1.00)A.B.C.D.34.有以下程序:#include stdio.hint 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(“%d/n“, s); 程序执行后的输出结果是( )。A) 45 B) 50 C) 60 D) 55(分数:1.00)A.B.C.D.35.以下程序的输
18、出结果是( )。#includestdio.hint a33=(1, 2, 3, 4, 5, 6, 7, 8, 9), *p; main() p=(int*) malloc(sizeof(int) ); f(p, A); printf(; % d/n“, *p); free(p); f(int *s, int p3) *s=p11; A) 1 B) 4 C) 7 D) 5(分数:1.00)A.B.C.D.36.有以下程序:struct STUchar name10; int num; ; void f1(struct STU c) struct STU b=“LiSiGuo“, 2042; c
19、=b; void f2(struct STU *c) structSTU b=“SunDan“, 2044; *c=b; main() struct STU a=“YangSan“, 2041, b=“WangYin“, 2043; f1(a); f2(b); printf(“%d, %d/n“, a.num, b.num); 程序执行后的输出结果是( )。A) 2041 2044 B) 2041 2043 C) 2042 2044 D) 2042 2043(分数:1.00)A.B.C.D.37.设有如下说明:typedef struct STlong a; int b; char c2; N
20、EW; 则下面叙述中正确的是( ) A) 以上的说明形式非法 B) ST 是一个结构体类型C) NEW 是一个结构体类型 D) NEW 是一个结构体变量(分数:1.00)A.B.C.D.38.设有以下语句:char x=3, y=6, z; z=xy2; 则 z 的二进制值是( )。A) 00010100 B) 00011011 C) 00011100 D) 00011000(分数:1.00)A.B.C.D.39.表达式 0x130x17 的值是( )。A) 0x17 B) 0x13 C) 0xf8 D) 0xec(分数:1.00)A.B.C.D.40.以下叙述中错误的是( )。A) gets
21、 函数用于从终端读入字符串B) getchar 函数用于从磁盘文件读入字符C) fputs 函数用于把字符串输出到文件D) fwrite 函数用于以二进制形式输出数据到文件(分数:1.00)A.B.C.D.二、程序填空题(总题数:1,分数:18.00)给定程序中,函数 fun 的功能是:将形参 s 所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include stdio.h#include string.
22、h#include stdlib.h#include ctype.hchar *fun(char *s)inti, j, k, n; char *p, *t; n=strlen(s)+1; t=(c har*)malloc (n*sizeof(char); p=(char*)malloc(n*sizeof(char); j=0; k=0; for(i=0; in; i+)if(isdigit(si)/*found*/p (1) =si; j+; elsetk=si; k+; /*found*/for(i=0; i (2) ; i+)pj+i=ti; pj+k=0; /*found*/retur
23、n (3) ; main()char s80; printf(“Please input:“); scanf(“%s“, s); printf(“/nThe result is: %s/n“, fun(s); (分数:18.00)填空项 1:_填空项 1:_填空项 1:_三、程序改错题(总题数:1,分数:18.00)41.给定程序中函数 fun 的功能是:首先把 b 所指字符串中的字符按逆序存放,然后将 a 所指字符串中的字符和 b 所指字符串中的字符,按排列的顺序交叉合并到 c 所指数组中,过长的剩余字符接在 c 所指的数组的尾部。例如,当 a 所指字符串中的内容为“abcdefg”,b 所
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 378 答案 解析 DOC
