【计算机类职业资格】二级C语言笔试-386及答案解析.doc
《【计算机类职业资格】二级C语言笔试-386及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-386及答案解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-386 及答案解析(总分: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.如果进栈序列为 e1,e2,e3,e4,则可能的出栈序列是( )。A) e3,e1,e4,e2 B) e2,e4,e3,e1 C) e3,e4,e1,e2
2、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.Visual FoxPro 关系数据库管理系统能够实现的三种基本关系运算是( )。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)
4、 物理设计(分数:1.00)A.B.C.D.11.以下叙述中错误的是( )。A) C 语言是一种结构化程序设计语言B) 结构化程序由顺序、分支、循环三种基本结构组成C) 使用三种基本结构构成的程序只能解决简单问题D) 结构化程序设计提倡模块化的设计方法(分数:1.00)A.B.C.D.12.下列叙述中正确的是( )。A) 每个 C 程序文件中都必须要有一个 main()函数B) 在 C 程序中 main()函数的位置是固定的C) C 程序中所有函数之间都可以相互调用,与函数所在位置无关D) 在 C 程序的函数中不能定义另一个函数(分数:1.00)A.B.C.D.13.有以下程序段:char c
5、h; int k; ch=a; k=12; printf(“%c, %d, “, ch, ch, k); printf(“k=%d/n“, k); 已知字符 a 的 ASCII 十进制代码为 97,则执行上述程序段后输出结果是( )。A) 因变量类型与格式描述符的类型不匹配输出无定值B) 输出项与格式描述符个数不符,输出为零值或不定值C) a, 97, 12k=12D) a, 97, k=12(分数:1.00)A.B.C.D.14.设有定义:int a; float b; ,执行 scanf(“%2d%f“, a, b); 语句时,若从键盘输入 876 543.0回车,a 和 b 的值分别是(
6、 )。A) 876 和 543.000000 B) 87 和 6.000000C) 87 和 543.000000 D) 76 和 543.000000(分数:1.00)A.B.C.D.15.在执行下述程序日寸,若从键盘输入 6 和 8,则结果为( )。main() int a, b, s; scanf(“%d%d“, a, b); s=a; if(ab) s=b; s*-=s; printf(“%d“, s); A) 36 B) 64 C) 48 D) 以上都不对(分数:1.00)A.B.C.D.16.下列条件语句中,功能与其他语句不同的是( )。A) if(a) printf(“%d/n“
7、, x); else printf(“%d/n“, y); B) if(a=0) printf(“%d/n“, y); else printf(“%d/n“, x); C) if(a!=0) printf(“%d/n“, x); else printf(“%d/n“, y); D) if(a=0) printf(“%d/n“, x); else printf(“%d/n“, y);(分数:1.00)A.B.C.D.17.有以下程序:main() int k=5, n=0; doswitch (k) case 1:case 3:n+=1; k-; break; default: n=0; k-;
8、 case 2:case 4:n+=2; k-; break; printf(“%d“, n); while (k0 n5); 程序运行后的输出结果是( )。A) 235 B) 0235 C) 02356 D) 2356(分数:1.00)A.B.C.D.18.下面的 for 语句:for(int x=0, y=10; (y0)(x4); x+, y-) ; 则下面叙述中正确的是( )。A) 是无限循环 B) 循环次数不定C) 循环执行 4 次 D) 循环执行三次(分数:1.00)A.B.C.D.19.下列选项中 C 语言中不合法的字符串常量的是( )。A) “/1“ B) 2y1 C) “/n
9、/n“ D) “ABCD/x6d/(分数:1.00)A.B.C.D.20.已知字符A的 ASCII 码值是 65,字符变量 c1 的值是A,c2 的值是D。执行语句 printf(“%d, %d“, c1, c2-2); 后,输出结果是( )。A) A, B B) A 68 C) 65, 66 D) 65, 68(分数:1.00)A.B.C.D.21.以下程序中函数 f 的功能是:当 flag 为 1 时,进行由小到大排序;当 flag 为 0 时,进行由大到小排序。#include stdio.hvoid f(int b, int n, int flag) inti, j, t; for (
10、i=0; in-1; i+) for (j=i+1; jn; j+) if(flag?bibj:bibj) t=bi; bi=bj; bj=t; main() (int a10=5, 4, 3, 2, 1, 6, 7, 8, 9, 10, i; f(a2, 5, 0); f(a, 5, 1); for (i=0; i10; i+) printf(“%d, “, ai); ) 程序运行后的输出结果是()。A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, B) 3, 4, 5, 6, 7, 2, 1, 8, 9, 10, C) 5, 4, 3, 2, 1, 6, 7, 8, 9,
11、 10, D) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,(分数:1.00)A.B.C.D.22.若有以下函数首部:int fun(double x10, int *n) 则下面针对此函数的函数声明语句中正确的是( )。A) int fun(double x, int *n); B) int fun(double, int); C) int fun(double *x, int n); D) int fun(double *, int*);(分数:1.00)A.B.C.D.23.以下程序中调用 scanf 函数给变量 a 输入数值的方法是错误的,其错误原因是( )。main(
12、) int*p, *q, a, b; p=a; printf(“input a:“); scanf(“%d“, *p); A) *p 表示的是指针变量 p 的地址B) *p 表示的是变量 a 的值,而不是变量 a 的地址c) *表示的是指针变量 p 的值D) *p 只能用来说明 p 是一个指针变量(分数:1.00)A.B.C.D.24.有以下程序:main() int a32=0), (*ptr)2, i, j; for(i=0; i2; i+) pta+i; scanf(“%d“, ptr); ptr+; for(i=0; i3; i+) for(j=0; j2; j+)printf(“%2
13、d“, aij); printf(“/n“); 若运行时输入:1 2 3回车,则输出结果为( )。A) 产生错误信息B) 1 02 00 0C) 1 23 00 0D) 1 02 03 0(分数:1.00)A.B.C.D.25.有以下程序:#include stdio.hvoid sum(int a) a0=a-1+a1; 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(分数:1.00)A.B.C.D.26.有以下程序:#i
14、nclude stdio.hmain() int i, s=0, t=1, 2, 3, 4, 5, 6, 7, 8, 9; for(i=0; i9; i+=2)s+=*(t+i); printf(“%d/n“, s); 程序执行后的输出结果是( )。A) 45 B) 20 C) 25 D) 36(分数:1.00)A.B.C.D.27.有以下程序:#include stdio.hmain() int a44=1, 4, 3, 2, (8, 6, 5, 7), 3, 7, 2, 5, 4, 8, 6, 1, i, j, k, t; for(i=0; i4; i+) for (j=0; j3; j+
15、) for(k-j+1; k4; k+) if (ajiaki) t=aji; aji=aki; aki=t; /* 按列排序 */for (i=0; i4; i+) printf(“%d, “, aii); 程序运行后的输出结果是()。A) 1, 6, 5, 7, B) 8, 7, 3, 1, C) 4, 7, 5, 2, D) 1, 6, 2, 1,(分数:1.00)A.B.C.D.28.若有定义:int a23; ,以下选项中对 a 数组元素正确引用的是( )。A) a2!1 B) a23 C) a03 D) a11!1(分数:1.00)A.B.C.D.29.以下数组定义中错误的是( )
16、。A) int x3=0; B) int x23=1, 2, 3, 4, 5, 6; C) int x3=1, 2, 3, 4, 5, 6; D) int x23=1, 2, 3, 4, 5, 6;(分数:1.00)A.B.C.D.30.若要求从键盘读入含有空格字符的字符串,应使用函数( )。A) getc() B) gets() C) getchar() D) scanf()(分数:1.00)A.B.C.D.31.有以下程序:#include stdio.hmain() char *p10=“123 “, “aabdfg“, “dcdbe“, “abbd“, “cd“; printf(“%d
17、/n“, strlen(p4) ); 执行后的输出结果是( )。A) 2 B) 3 C) 4 D) 5(分数:1.00)A.B.C.D.32.有以下程序段:#include stdio.h#include string.hmain() char a320=“china“), “isa“, “bigcountry!“; char k100=0, *p=k; int i; for(i=0; i3; i+) p=strcat(p, ai); i=strlen(p); printf(“%d/n“, i); 则程序段的输出结果是( )。A) 18 B) 19 C) 20 D) 21(分数:1.00)A.
18、B.C.D.33.有以下程序:#include stdio.hfun(int x) int p; if(x=0|x=1) return(3); p=x-fun(x-2); return p; main() printf(“%d/n“, fun(7) ); 执行后的输出结果是( )。A) 7 B) 3 C) 2 D) 0(分数:1.00)A.B.C.D.34.有以下程序:#include stdio.hfun(int x, int y) static int m=0, i=2; i+=m+1, m=i+x+y; return m; main() int j=1, m=1, k; k=fun(j,
19、 m); printf(“%d, “, k); k=fun(j, m); printf(“%d/n“, k); 执行后的输出结果是( )。A) 5, 5 B) 5, 11 C) 11, 11 D) 11, 5(分数:1.00)A.B.C.D.35.有以下程序:#define f(x) x*x#include stdio.hmain() int i; i=f(4+4) /f(2+2); printf(“%d/n“, i); 执行后的输出结果是( )。A) 28 B) 22 C) 16 D) 4(分数:1.00)A.B.C.D.36.设有如下定义:struct skint n; float x;
20、data, *p; 若要使 p 指向 data 中的 n 域,正确的赋值语句是( )。A) p=data.n; B) *p=data.n; C) p=(struct sk*) data.n; D) p=(struct sk*)data.n;(分数:1.00)A.B.C.D.37.有以下程序:#include stdio.hmain() struct STUchar name9; char sex; double score2; ; struct STU a= “Zhao“, m, 85.0, 90.0, b=“Qian“, f, 95.0, 92.0; b=a; printf(“%s, %c,
21、 %2.0f, %2.0f/n“, b.name, b.sex, b.score0, b.score1); 程序的运行结果是( )。A) Qian, f, 95, 92 B) Qian, m, 85, 90 C) Zhao, f, 95, 92 D) Zhao, m, 85, 90(分数:1.00)A.B.C.D.38.有以下程序:#include stdio.htypedef structint b, p; ) A; void f(A c) /*c 是结构变量名*/int j; c.b+=1; c.p+=2; main() int i; A a=1, 2; f(a); printf(“%d,
22、 %d/n“, a.b, a.p); 程序运行后的输出结果是()。A) 2, 3 B) 2, 4 C) 1, 4 D) 1, 2(分数:1.00)A.B.C.D.39.以下程序的输出结果是( )。main() int c=35; printf(“%d/n“, cc); A) 0 B) 70 C) 35 D) 1(分数:1.00)A.B.C.D.40.有以下程序:#include stdio.hvoid WriteStr(char *fn, char *str) FILE *fp; fp=fopen(fn, “w“); fputs(str, fp); fclose(fp); main() Wri
23、teStr(“t1.dat“, “start“); WriteStr(“t1.dat“, “end“); 程序运行后,文件 t1.dat 中的内容是( )。A) start B) end C) startend D) endrt(分数:1.00)A.B.C.D.二、程序填空题(总题数:1,分数:18.00)下列给定程序中,函数 fun 的功能是:把形参 a 所指数组中的偶数按原顺序依次存放到 a0、a1、a2中,把奇数从数组中删除,偶数的个数通过函数值返回。请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 386 答案 解析 DOC
