【计算机类职业资格】二级C语言笔试-391及答案解析.doc
《【计算机类职业资格】二级C语言笔试-391及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-391及答案解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-391 及答案解析(总分: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) 都是先进先出 B) 都是先进后出C) 只允许在端点处插入和删除元素 D) 没有共
2、同点(分数: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.下列不属于软件工程的 3 个要素的是( )。A) 工具 B) 过程 C) 方法 D) 环境(分数:1.00)A.B.
3、C.D.7.软件调试的目的是( )。A) 发现错误 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) 打开相关的数据表(
4、分数:1.00)A.B.C.D.11.以下叙述中错误的是( )。A) 计算机不能直接执行用 C 语言编写的源程序B) C 程序经 C 编译程序编译后,生成后缀为.obj 的文件是一个二进制文件C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:1.00)A.B.C.D.12.以下叙述中正确的是( )。A) 用 C 程序实现的算法必须要有输入和输出操作B) 用 C 程序实现的算法可以没有输出但必须要有输入C) 用 C 程序实现的算法可以没有输入但必须要有输出D) 用 C 程序实现的算法可以既没有输入
5、也没有输出(分数:1.00)A.B.C.D.13.有以下程序:main() int a=666, b=888; printf(“%d/n“, a, b); 程序运行后的输出结果是( )。A) 错误信息 B) 666 C) 888 D) 666, 888(分数:1.00)A.B.C.D.14.若在定义语句:int a, b, c, *p=c;之后,接着执行以下选项中的语句,则能正确执行的语句是( )。A) scanf(“%d“, a, b, c); B) scanf(“%d%d%d“, a, b, c); C) scanf(“%d“, p); D) scarff(“%d“, p);(分数:1.0
6、0)A.B.C.D.15.以下关于逻辑运算符两侧运算对象的叙述中正确的是( )。A) 只能是整数 0 或 1 B) 只能是整数 0 或非 0 整数C) 可以是结构体类型的数据 D) 可以是任意合法的表达式(分数:1.00)A.B.C.D.16.若有定义 float x=1.5; int a=1, b=3, c=2; ,则正确的 switch 语句是( )。A) switch(x) case 1.0: printf(“*/n“); case 2.0:printf(“*/n“); B) switch(int) x); case 1:printf(“*/n“); case 2:printf(“*/n
7、“); C) switch(a+b) case 1:printf(“*/n“); case 2+1:printf(“*/n “); D) switch(a+b) case 1:printf(“*/n“); case 2:printf(“*/n“);(分数:1.00)A.B.C.D.17.下列叙述中正确的是( )。A) break 语句只能用于 switch 语句B) 在 switch 语句中必须使用 defaultC) break 语句必须与 switch 语句中的 case 配对使用D) 在 switch 语句中,不一定使用 break 语句(分数:1.00)A.B.C.D.18.请阅读以下
8、程序:#includestdio.hmain() int x=1, y=0, a=0, b=0; switch(x) case 1; switch(y) case 0:a+; break; case 2:a+, b+; break; printf(“a=%d, b=%d/n“, a, b); 上面程序的输出结果是( )。A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2(分数:1.00)A.B.C.D.19.以下选项中不能作为 C 语言合法常量的是( )。A) cd B) 0.1e+6 C) “/a“ D) /011(分数:1.00)A.B.C.D.
9、20.运行下面程序时,从键盘输入字母 H,则输出结果是( )。#includestdio.h main() char ch; ch=getchar(); switch(ch) case H:printf(“Hello!/n“); case G:printf(“Good morning!/n“); default:printf(“Bye_Bye!/n“); A) Hello!B) Hello!Cood Moring!C) Hello!Good morning!Bye_Bye!D) Hello!Bye_Bye!(分数:1.00)A.B.C.D.21.设函数 fun 的定义形式为:void fun(
10、char ch, float x) 则以下对函数 fun 的调用语句中,正确的是( )。A) fun(“123“, 3.0); B) t=fun(D16.5); C) fun(65, 2.8); D) fun(32, 32);(分数:1.00)A.B.C.D.22.有以下程序:#includestdio.hchar fun(char x, char y) if(xy) return x; return y; main() int a=9, b=8, c=7; printf(“%c/n“, fun(fun(a, b), fun(b, c) ) ); 程序的执行结果是( )。A) 函数调用出错 B
11、) 8 C) 9 D) 7(分数:1.00)A.B.C.D.23.以下叙述中错误的是( )。A) 改变函数形参的值,不会改变对应实参的值B) 函数可以返回地址值C) 可以给指针变量赋一个整数作为地址值D) 当在程序的开头包含头文件 stdio.h 时,可以给指针变量赋 NULL(分数:1.00)A.B.C.D.24.有以下程序:#includestdio.hmain() int a=7, b=8, *p, *q, *r; p=a; q=b; r=p; p=q; q=r; printf(“%d, %d, %d, %d/n, *p, *q, a, b); 程序运行后的输出结果是( )。A) 8,
12、7, 8, 7 B) 7, 8, 7, 8 C) 8, 7, 7, 8 D) 7, 8, 8, 7(分数:1.00)A.B.C.D.25.有以下程序:#include stdio.hmain() int s12=1, 2, 3, 4, 4, 3, 2, 1, 1, 1, 2, 3, c5=(0), i; for(i=0; i12; i+) csi+; for(i=1; i5; i+) printf(“%d“, ci); printf(“/n“); 程序的运行结果是( )。A) 1232 B) 4344 C) 4332 D) 1123(分数:1.00)A.B.C.D.26.以下能正确定义一维数组
13、的选项是( )。A) int a5=0, 1, 2, 3, 4, 5; B) int a=0, 1, 2, 3, 4, 5; C) char a=A, B, C; D) int a5=“0123“;(分数:1.00)A.B.C.D.27.有定义语句:int b; char c10; ,则正确的输入语句是( )。A) scanf(“%d%s“, b, c); B) scanf(“%d%s“, b, c); C) scanf(“%d%s“, b, c); D) scanf(“%d%s“, b, c);(分数:1.00)A.B.C.D.28.有以下程序:#include stdio.hvoid fu
14、n(int *a, int n) /*fun 函数的功能是将 a 所指数组元素从大到小排序*/int t, i, j; for(i=0; in-1; i+) for(j=i+1; jn; j+) if(aiaj) (t=aj; ai=aj; aj=t; main() int c10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i; fun(c+4, 6); for(i=0; i10; i+) printf(“%d, “, ci); printf(“/n“); 程序的运行结果是()。A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, B) 0, 9, 8, 7, 6
15、, 5, 1, 2, 3, 4, C) 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, D) 1, 2, 3, 4, 9, 8, 7, 6, 5, 0,(分数:1.00)A.B.C.D.29.若有定义语句:double x5=1.0, 2.0, 3.0, 4.0, 5.0, *p=x; ,则错误引用 x 数组元素的是( )。A) *p B) x5 C) *(p+1) D) *x(分数:1.00)A.B.C.D.30.若有定义:char *st=“how are you“; ,下列程序段中正确的是( )。A) char a11, *p; strcpy(p=a+1, st4); B)
16、char a11; strcpy(+a, st); C) char a11; strcpy(a, st); D) char a, *p; strcpy(p=a1, st+2);(分数:1.00)A.B.C.D.31.s1 和 s2 已正确定义并分别指向两个字符串。若要求:当 s1 所指串大于 s2 所指串时,执行语句 S,则以下选项中正确的是( )。A) if(s1s2) S; B) if(strcmp(s1, s2) ) S; C) if(strcmp(s2, s1) 0) S; D) if(strcmp(s1, s2) 0) S;(分数:1.00)A.B.C.D.32.有以下程序:#inc
17、ludestdio.h#includestring.hmain() char p=a, b, c, q10=a, b, c; printf(“%d%d/n “, strlen(p), strlen(q) ); 以下叙述中正确的是( )。A) 在给 p 和 q 数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3B) 由于 p 数组中没有字符串结束符,长度不能确定,但 q 数组中字符串长度为 3C) 由于 q 数组中没有字符串结束符,长度不能确定,但 p 数组中字符串长度为 3D) 由于 p 和 q 数组中都没有字符串结束符,故长度都不能确定(分数:1.00)A.B.C.D.33.有以
18、下程序:#include stdio.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); printf(“%d/n“, z); 程序的运行结果是( )。A) 0 B) 9 C) 6 D) 8(分数:1.00)A.B.C.D.34.有以下程序:#includestdio.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,
19、 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.有以下程序:#includestdio.h#define f(x) (x*x) main() int i1, i2; i1=f(8) /f(4); i2=f(4+4) /f(2+2); printf(“%d, %d/n“, i1, i2); 程序运行后的输出结果是( )。A) 64, 28 B) 4, 4 C) 4, 3 D) 64, 64
20、(分数:1.00)A.B.C.D.36.有以下程序:#include stdio.h#include string.htypedef struct char name9; char sex; float score2; STU; void f(STU A) STU b=“Zhao“, m, 85.0, 90.0; int i; strcpy(a.name, b.name); a.sex=b.sex; for (i=0; i2; i+) a.scorei=b.scorei; main() STU c=“Qian“, f, 95, 92; f(C); printf(“%s, %c, %f, %f“
21、, c.name, c.sex, c.score0, c.score1); 程序运行后的输出结果是( )。A) Qian, f, 95.000000, 92.000000 B) Qian, m, 85.000000, 90.000000C) Zhao, f, 95.000000, 92.000000 D) Zhao, m, 85.000000, 90.000000(分数:1.00)A.B.C.D.37.现有以下结构体说明和变量定义,如下图所示,指针 p、q、r 分别指向一个链表中连续的三个结点。struct nodechar data; struct node *next, *p, *q, *
22、r; (分数:1.00)A.B.C.D.38.下列程序的输出结果为( )。#include stdio.hmain() union uchar *name; int age; int income; s; s.name=“WANGLIONG“:s.age=28; s.income=1000; printf(“% d/n“, s.age); A) 28 B) 1000 C) 0 D) 不确定(分数:1.00)A.B.C.D.39.设有以下语句:int a=1, b=2, c; c=a(b2); 执行后,c 的值为( )。A) 6 B) 7 C) 8 D) 9(分数:1.00)A.B.C.D.40
23、.对于下述程序,在方式串分别采用“wt”和“wb”运行时,两次生成的文件 TEST 的长度分别是( )。#includestdio.hvoid main() FILE *fp=fopen(“TEST“, ); fputc(A, fp); fputc(/n, fp); fpute(b, fp); fputc(/n, fp); fpute(C, fp); fclose(fp); A) 7 字节、7 字节 B) 7 字节、5 字节 C) 5 字节、7 字节 D) 5 字节、5 字节(分数:1.00)A.B.C.D.二、程序填空题(总题数:1,分数:18.00)下列给定程序中,函数 fun 的功能是:
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 391 答案 解析 DOC
