【计算机类职业资格】二级C语言笔试-373及答案解析.doc
《【计算机类职业资格】二级C语言笔试-373及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-373及答案解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-373 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.算法是指A) 计算机程序 B) 解决问题的计算方法C) 排序算法 D) 解决问题的有限运算序列(分数:2.00)A.B.C.D.2.下列叙述中正确的是A) 循环链表是非线性结构B) 双向链表是非线性结构C) 只有一个根结点的数据结构不一定是线性结构D) 有一个以上根结点的数据结构不一定是非线性结构(分数:2.00)A.B.C.D.3.下列对于线性链表的描述中正确的是A) 存储空间不一定连续,且各元素的存储顺序是任意的B) 存储空间不一定连续,且前件元素一定存储在后件元
2、素的前面C) 存储空间必须连续,且前件元素一定存储在后件元素的前面D) 存储空间必须连续,且各元素的存储顺序是任意的(分数:2.00)A.B.C.D.4.面向对象方法中,不属于对象基本特点的是A) 标识唯一性 B) 分类性 C) 封装性 D) 一致性(分数:2.00)A.B.C.D.5.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是A) 概要设计 B) 详细设计 C) 可行性分析 D) 需求分析(分数:2.00)A.B.C.D.6.数据流图中方框表示的是A) 数据流 B) 存储文件 C) 控制流 D) 源,潭(分数:2.00)A.B.C.D.7.下列对于软件测试的描
3、述中正确的是A) 软件测试的主要目的是发现程序中的错误 B) 软件测试的目的是证明程序是否正确C) 软件测试的目的是使程序运行结果正确 D) 软件测试是为了证明软件中没有错误(分数:2.00)A.B.C.D.8.数据库、数据库系统和数据库管理系统之间的关系是A) 数据库包括数据库系统和数据库管理系统 B) 数据库系统包括数据库和数据库管理系统C) 数据库管理系统包括数据库和数据库系统 D) 三者没有明显的包含关系(分数:2.00)A.B.C.D.9.设有图书(图书编号,书名,第一作者,出版社)、读者(借书证号,姓名,单位,职称)和借阅(借书证号,图书编号,借书日期,还书日期)三张表,则表借阅的
4、关键字(键或码)为A) 借书证号,图书编号 B) 图书编号,借书日期C) 借书日期,还书日期 D) 借书证号,借书日期(分数:2.00)A.B.C.D.10.有三个关系 R、S 和 T如下:(分数:2.00)A.B.C.D.11.下列叙述中正确的是A) 每个 C语言程序文件中都必须要有一个 main()函数B) 在 C语言程序中 main()函数的位置是固定的C) C语言程序中所有函数之间都可以相互调用,与函数所在位置无关D) 在 C语言程序的函数中不能定义另一个函数(分数:1.00)A.B.C.D.12.以下合法的十六进制数是A) 0x B) 0x4de C) 0x1h D) 0x77(分数
5、:1.00)A.B.C.D.13.已知大写字母 A的 ASCII码的值是 65,小写字母 a的 ASCII码的值是 97,以下不能将变量 c中的大写字母转换为对应小写字母的语句是A) c=(c-A)%26+a B) c=c+32C) c=c-A+a D) c=(A+c)%26-a(分数:1.00)A.B.C.D.14.若变量已正确定义并赋值,以下符合 C语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b(分数:1.00)A.B.C.D.15.设变量 a是 int型,f 是 float型,i 是 double型,则表达式 10+a+i
6、*f值的数据类型为A) int B) float C) double D) 不确定(分数:1.00)A.B.C.D.16.有以下程序:#include stdio.hmain()chal c1=1,c2=2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); 当运行时输入:a回车后,以下叙述正确的是A) 变量 c1被赋予字符 a,c2 被赋予回车符 B) 程序将等待用户输入第 2个字符C) 变量 c1被赋予字符 a,c2 中仍是原有字符 2 D) 变量 c1被赋予字符 a,c2 中将无确定值(分数:1.00)A.B.C.D.17.下列程
7、序的输出结果是#include “stdio.h“main()int i, a=0, b=0; for(i=1; i10; i+)if(i % 2=0)a+; continue; b+; printf(“a=%d, b=%d“, a, b); A) a=4, b=4 B) a=4, b=5 C) a=5, b=4 D) a=5, b=5(分数:1.00)A.B.C.D.18.设变量 a、b、c、d 和 y都已正确定义并赋值。若有以下 if语句:if(ab)if(c=d)y=0; else y=1; 该语句所表示的含义是(分数:1.00)A.B.C.D.19.若 a是数值类型,则逻辑表达式(a=
8、1)|(a!=1)的值是A) 0 B) 1 C) 2 D) 不知道 a的值,不能确定(分数:1.00)A.B.C.D.20.有以下程序:#includestdio.hmain()int s; scaIlf(“%d“, s); while(s0)switch(s)case 1:printf(“%d“, s+5); case 2:printf(“%d“, s+4).break; case 3:printf(“%d“, s+3); default:printf(“%d“, s+1)Ibreak; scanf(“%d“,s); 运行时,若输入 123450回车,则输出结果是A) 6566456 B)
9、66656 C) 66666 D) 6666656(分数:1.00)A.B.C.D.21.有如下程序:int a10=11, 12, 13, 14, 15, 16, 17, 18, 19, 20; int*p=a3, b; b=p5; 则 b的值是A) 15 B) 16 C) 18 D) 19(分数:2.00)A.B.C.D.22.以下程序的输出结果是Fun(int x, int y)return(x+y); main()int a=1, b=2, c=3, sum; sum=Fun(a+, b+, a+b), c+); printf(“%d“, sum); A) 9 B) 8 C) 7 D)
10、 6(分数:2.00)A.B.C.D.23.有以下程序:#includestdio.hmain()int i=5; doif(i%3=1)if(i%5=2)printf(“%d“, i); break; i+; while(i!=0); printf(“/n“); 程序的运行结果是A) *7 B) *3*5 C) *5 D) *2*6(分数:2.00)A.B.C.D.24.以下函数按每行 8个输出数组中的数据:void fun(int*w, int n)int i; for(i=0; in; i+)_printf(“%d“, wi); printf(“/n“); 下划线处应填入的语句是A) i
11、f(i/8=0)printf(“/n“); B) if(i/8=0)continue; C) if(i%8=O)printf(“/n“); D) if(i%8=0)continue;(分数:2.00)A.B.C.D.25.以下数组定义中错误的是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;(分数:2.00)A.B.C.D.26.有以下程序:#includestring.hmain()char p=a, b, c, q10=a, b, c; pri
12、ntf(“%d%d/n“, strlen(p), strlen(q); 以下叙述中正确的是A) 在给 p和 q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3B) 由于 p数组中没有字符串结束符,长度不能确定;但 q数组中字符长度为 3C) 由于 q数组中没有字符串结束符,长度不能确定;但 p数组中字符长度为 3D) 由于 p和 q数组中没有字符串结束符,故长度都不能确定(分数:2.00)A.B.C.D.27.若有以下程序:#includestdio.hint a=1, 3, 5, 7; main()int i; int *p=a; for(i=0; i4; i+)ai=*p;
13、printf(“%d/n“, a2); 上面程序的输出结果是A) 5 B) 7 C) l D) 3(分数:2.00)A.B.C.D.28.若有定义语句:int m=5, 4, 3, 2, 1, i=4;, 则下面对 m数组元素的引用中错误的是A) m-i B) m2*2 C) mm0 D) mmi(分数:2.00)A.B.C.D.29.设有以下说明语句:typedef structint n; char ch8; PER; 则下面叙述中正确的是A) PER是结构体变量名 B) PER 是结构体类型名C) typedef struct是结构体类型 D) struct 是结构体类型名(分数:2.0
14、0)A.B.C.D.30.有以下程序:int fun(int n)if(n=1)return 1; elsereturn(n+fun(n-1); main()int x; scanf(“%d“, x); x=fun(x); printf(“%d/n“, x)执行程序时,给变量 x输入 10,程序的输出结果是A) 54 B) 55 C) 65 D) 45(分数:2.00)A.B.C.D.31.以下程序的输出结果是#includestdio.hsub(int*s, int y)static int t=3; y=st; t-; main()int a=1, 2, 3, 4, i, x=0; for
15、(i=0;i4;i+)sub(a, x); printf(“%d“, x); printf(“/n“); A) 1234 B) 4321 C) OOOO D) 4444(分数:2.00)A.B.C.D.32.有以下程序:#includestdio.h#define F(x, y) (x)*(y)main()int a=3, b=4; printf(“%d/n“, F(a+, b+); 程序运行后的输出结果是A) 12 B) 15 C) 16 D) 20(分数:2.00)A.B.C.D.33.以下程序运行时,若从键盘输入 10 20 30回车,输出的结果是main()int i=0, j=0,
16、k=0; scanf(“ %d% * d%d“, i, j, k); printf(“ % d% d% d/n“, i, j, k); A) 10200 B) 102030 C) 10300 D) 10030(分数:2.00)A.B.C.D.34.有以下程序:#includestdio.hmain()char *a=“abcd“, “ef“, “gh“, “ijk“; int i; for(i=0; i4; i+)printf(“%c“,*ai); 程序运行后的输出结果是A) aegi B) dfhk C) abcd D) abcdefghijk(分数:2.00)A.B.C.D.35.以下程序
17、执行后的输出结果是fun(int x, int y)static int m=0, i=2; i+=m+1; m=i+x+y; return m; main()intj=1, m=1, k; k=fun(j, m); printf(“%d, “, k); k=fun(j, m); printf(“%d/n“, k); A) 5, 5 B) 5, 11 C) 11, 11 D) 11, 5(分数:2.00)A.B.C.D.36.阅读下面程序,则执行后的结果是#include “stdio, h“main()char str=“tomeetme“, *p; for(p=str; pstr+7; p
18、+=2)putchar(*p); printf(“/n“); A) tomeetme B) tmem C) oete D) tome(分数:2.00)A.B.C.D.37.有以下程序:main()char ch=“uvwxyz“, *pc; pc=ch; printf(“% c/n“,*(pc+5); 程序运行后的输出结果是A) z B) 0 C) 元素 ch5的地址 D) 字符 y的地址(分数:2.00)A.B.C.D.38.设有定义:struct complexint real, unreal; data1=1, 8, data2; 则以下赋值语句中错误的是A) data2=data1;
19、B) data2=(2, 6); C) data2. real=data1. real; D) data2. real=data1. unreal;(分数:2.00)A.B.C.D.39.有以下程序:#includestdio.hmain()FILE*fp; int k, n, a6=1, 2, 3, 4, 5, 6; fp=fopen(“d2. dat“, “w“); fprintf(fp, “%d% d% d/n“, a0, a1, a2); fprintf(fp, “% d% d% d/n“, a3, a4, a5); fclose(fp); fp=fopen(“d2. dat“, “r
20、“); fscanf(fp, “% d%d“, k, n); printf(“%d% d/n“, k, n); close(fp); 程序运行后的输出结果是A) 12 B) 14 C) 1234 D) 123456(分数:2.00)A.B.C.D.40.变量 a中的数据用二进制表示的形式是 01011101,变量 b中的数据用二进制表示的形式是 11110000。若要求将 a的高 4位取反,低 4位不变,所要执行的运算是A) ab B) a|b C) ab D) a4(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:30.00)41.一个队列的初始状态为空。现将元素 1、2、3
21、、4、5、A、B、C、D、E 依次入队,然后再依次退队,则元素退队的顺序为 1。(分数:2.00)填空项 1:_42.对长度为 20的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。(分数:2.00)填空项 1:_43.按照软件测试的一般步骤, 1 测试应在集成测试之前进行。(分数:2.00)填空项 1:_44.在二维表中,元组的 1 不可再分成更小的数据项。(分数:2.00)填空项 1:_45.数据库应用系统中的核心问题是 1。(分数:2.00)填空项 1:_46.有以下程序(说明:字符 0的 ASCII码值为 48):#includestdio.hmain()char c1, c2;
22、scanf(“%d“, c1); c2=c1+9; printf(“%c%c/n“, c1, c2); 若程序运行时从键盘输入 48回车,则输出结果为_。(分数:2.00)填空项 1:_47.设变量已正确定义为整型,则表达式 n=i=2,+i, i+的值为 1。(分数:2.00)填空项 1:_48.以下程序运行后的输出结果是_。#includestdio.hmain()int x=10, y=20, t=0; if(x=y)t=x; x=y; y=t; printf(“%d%d/n“, x, y); (分数:2.00)填空项 1:_49.以下程序的功能是:借助指针变量找出数组元素中最大值所在的
23、位置并输出该最大值。请在输出语句中填写代表最大值的输出项。#includestdio.hmain()int a10, *p,*s; for(p=a; p-a10; p+) scanf(“%d“, p); for(p=a, s=a; p-a10; p+)if(*p*s)s=p; printf(“max=%d/n“,_); (分数:2.00)填空项 1:_50.以下程序运行后的输出结果是_。main()int a=3, b=2, c=1; if(c=a)printf(“%d/n“, c); elseprintf(“%d/n“, b); (分数:2.00)填空项 1:_51.有以下程序:int fl
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 373 答案 解析 DOC
