【计算机类职业资格】二级C语言笔试-380及答案解析.doc

上传人:tireattitude366 文档编号:1326188 上传时间:2019-10-17 格式:DOC 页数:15 大小:85.50KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-380及答案解析.doc_第1页
第1页 / 共15页
【计算机类职业资格】二级C语言笔试-380及答案解析.doc_第2页
第2页 / 共15页
【计算机类职业资格】二级C语言笔试-380及答案解析.doc_第3页
第3页 / 共15页
【计算机类职业资格】二级C语言笔试-380及答案解析.doc_第4页
第4页 / 共15页
【计算机类职业资格】二级C语言笔试-380及答案解析.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、二级 C 语言笔试-380 及答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.已有定义:char c;,程序前面已在命令行中包含 ctype.h 文件,不能用于判断 c 中的字符是否为大写字母的表达式是(分数:2.00)A.isupper(B.A=c=ZC.A=c6;+)printf(“%d,“,ai); 程序运行后的输出结果是(分数:2.00)A.4,5,6,4,5,6,B.1,2,3,4,5,6,C.4,5,6,1,2,3,D.6,5,4,3,2,1,24.下面说明不正确的是(分数:2.00)A.char a10=“china“;B.

2、char a10,*p=a;p=“china“C.char*a;a=“china“;D.chara10,*P;P=a=“china“25.若变量已正确定义,有以下程序段 int a=3,b=5,c=7; if(ab) a=b; c=a; if(c! =a)c=b; printf(“%d,%d,%d/n“,a,b,c); 其输出结果是(分数:2.00)A.程序段有语法错B.3,5,3C.3,5,5D.3,5,726.已知 int a=1,b=3 则 ab 的值为(分数:2.00)A.3B.1C.2D.427.以下 4 个选项中,不能看成一条语句的是(分数:2.00)A.;B.a=5,b=2.5,

3、c=3.6;C.if(a5);D.if(b!=5)x=2;y=6;28.软件是指(分数:2.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合29.有以 F 程序 #include stdio.h main() int y=9; for( ;y0;y-) if(y%3=0) printf(“%d“,-y); 程序的运行结果是(分数:2.00)A.741B.963C.852D.87542130.以下选项中不属于字符常量的是(分数:2.00)A.CB.CC./xCCD./07231.数据库、数据库系统和数据库管理系统之间的关系是(分数:2.00)A.数据库包括数据库系

4、统和数据库管理系统B.数据库系统包括数据库和数据库管理系统C.数据库管理系统包括数据库和数据库系统D.三者没有明显的包含关系32.有以下程序 #include stdio.h void fun(int *a,int n)/*fun 函数的功能是将 a 所指数组元素从大到小排序*/ int t,i,j; for(i=0;in-1;j+) for(j=i+1;jn;j+) if(aiaj) t=ai;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;+) printf(“%d,“,ci); printf

5、(“/n“); 程序的运行结果是(分数:2.00)A.1,2,3,4,5,6,7,8,9,0,B.0,9,8,7,6,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,33.若有定义:int a23;,以下选项中对 a 数组元素正确引用的是(分数:2.00)A.a2!1B.a23C.a03D.a12!134.下列程序的运行结果为 #includestdio.h void abc(char*str) int a,b; for(a=b=0;stra!=/0;a+) if(stra!=c) strb+=stra; strb=/0; void

6、main() char str=“abcdef“; abc(str); printf(“str)=%s“,str);(分数:2.00)A.str=abdefB.str=abcdefC.str=aD.str=ab35.设变量已正确定义并赋值,以下正确的表达式是(分数:2.00)A.x=y*5=x+ZB.int(15.8%5)C.x=y+z+5,+yD.x=25%5.036.有以下程序 #include stdio.h main() FILE *fp; int a10=1,2,3,i,n; fp=fopen(“d1.daf“,“w“); for(i=0;i3;i+) fprintf(fp,“%d“

7、,ai); fprintf(fp,“/n“); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d“,6;+)printf(“%d,“,ai); 程序运行后的输出结果是(分数:2.00)A.4,5,6,4,5,6, B.1,2,3,4,5,6,C.4,5,6,1,2,3,D.6,5,4,3,2,1,解析:解析 首先利用 fwrite 函数将数组 a 中的数据写到文件中,接着 fseek 函数的功能是读文件的位置,指针从文件头向后移动 3 个 int 型数据,这时文件位置指针指向的是文件中的第 4 个 int 数据“4”,然后 fread 函数将文

8、件 fp 中的后 3 个数据 4,5,6 读到数组 a 中,这样就覆盖了数组中原来的前 3 项数据。最后数组中的数据就成了4,5,6,4,5,6。24.下面说明不正确的是(分数:2.00)A.char a10=“china“;B.char a10,*p=a;p=“china“C.char*a;a=“china“;D.chara10,*P;P=a=“china“ 解析:解析 C 语言中操作一个字符串常量的方法有:将字符串常量存放在一个字符数组之中;用字符指针指向字符串,然后通过字符指针来防问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。 本题 D)项中

9、错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。25.若变量已正确定义,有以下程序段 int a=3,b=5,c=7; if(ab) a=b; c=a; if(c! =a)c=b; printf(“%d,%d,%d/n“,a,b,c); 其输出结果是(分数:2.00)A.程序段有语法错B.3,5,3 C.3,5,5D.3,5,7解析:解析 两个 if 语句的判断条件都不满足,程序只执行了 c=a 这条语句,所以变量 c 的值等于 3,变量 b 的值没有变化,程序输出的结果为 3,5,3。26.已知 int a=1,b=3 则 ab 的值为(分数:2.00)A

10、.3B.1C.2 D.4解析:解析 是按位异或运算,如果对应位不同则结果为 1,相同则为 0。27.以下 4 个选项中,不能看成一条语句的是(分数:2.00)A.;B.a=5,b=2.5,c=3.6;C.if(a5);D.if(b!=5)x=2;y=6; 解析:解析 选项 D)为两条语句。28.软件是指(分数:2.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合 解析:解析 软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。29.有以 F 程序 #include stdio.h main() int y=9

11、; for( ;y0;y-) if(y%3=0) printf(“%d“,-y); 程序的运行结果是(分数:2.00)A.741B.963C.852 D.875421解析:解析 本题考查变量的自加“+”和自减“-”问题。当 y 的值为 9、6 或 3 时,if 语句的条件成立,执行输出语句,输出表达式-y 的值,y 的自减要先于输出语句执行,故输出结果为 8 5 2。30.以下选项中不属于字符常量的是(分数:2.00)A.CB.C C./xCCD./072解析:解析 在 C 语言程序中,用单引号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常量。选项 A)、C)和 D)为正确的字符常量

12、,而选项 B)是用双引号括起来的字符,表示一个字符串常量。31.数据库、数据库系统和数据库管理系统之间的关系是(分数:2.00)A.数据库包括数据库系统和数据库管理系统B.数据库系统包括数据库和数据库管理系统 C.数据库管理系统包括数据库和数据库系统D.三者没有明显的包含关系解析:解析 数据库系统(Database System,简称 DBS),包括数据库(Database,简称 DB)和数据库管理系统(Da-tabase Management System,简称 DBMS)。32.有以下程序 #include stdio.h void fun(int *a,int n)/*fun 函数的功能

13、是将 a 所指数组元素从大到小排序*/ int t,i,j; for(i=0;in-1;j+) for(j=i+1;jn;j+) if(aiaj) t=ai;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;+) printf(“%d,“,ci); printf(“/n“); 程序的运行结果是(分数:2.00)A.1,2,3,4,5,6,7,8,9,0,B.0,9,8,7,6,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, 解析:解析 在

14、本题中,主函数在调用 fun()函数进行排序时,传递的参数是 c+4 和 6,fun()函数实现的功能是将数组 c 的第 5 个元素开始的 6 个元素依次进行从大到小的顺序排列。排序之后,数组 c 的内容变为1,2,3,4,9,8,7,6,5, 0。33.若有定义:int a23;,以下选项中对 a 数组元素正确引用的是(分数:2.00)A.a2!1B.a23C.a03D.a12!1 解析:解析 C 语言中数组下标是从 0 开始的,所以二维数组 a23的第一维下标取值为 0、1;第二维的下标取值为 0、1、2,因而选项 A)、B)、C)都是错误的,选项 D)表示数组元素 a00。34.下列程序

15、的运行结果为 #includestdio.h void abc(char*str) int a,b; for(a=b=0;stra!=/0;a+) if(stra!=c) strb+=stra; strb=/0; void main() char str=“abcdef“; abc(str); printf(“str)=%s“,str);(分数:2.00)A.str=abdef B.str=abcdefC.str=aD.str=ab解析:解析 本题考查了用字符指针引用字符数组中的字符及对字符的操作。函数 abc()的 for 语句执行过程是:从字符指针 str 所指向的字符数组的第一个元素开始

16、,逐一判断字符是否为c,若不是就执行一次数组元素的赋值过程,若字符为c就不执行。35.设变量已正确定义并赋值,以下正确的表达式是(分数:2.00)A.x=y*5=x+ZB.int(15.8%5)C.x=y+z+5,+y D.x=25%5.0解析:解析 求余运算符“%“两边的运算对象必须是整型,而选项 B)和 D)中“%“两边的运算对象有浮点整数据,所以选项 B)和 D)是错误的表达式。在选项 A)中赋值表达式的两边出现相同的变量 x,也是错误的。选项 C)是一个逗号表达式,所以正确答案为 C)。36.有以下程序 #include stdio.h main() FILE *fp; int a10

17、=1,2,3,i,n; fp=fopen(“d1.daf“,“w“); for(i=0;i3;i+) fprintf(fp,“%d“,ai); fprintf(fp,“/n“); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d“,&n); fclose(fp); printf(“%d/n“,n); 程序的运行结果是(分数:2.00)A.12300B.123 C.1D.321解析:解析 在函数中首先把整型数组 a10中的每个元素写入文件 d1.dat 中,然后再次打开这个文件,把文件 d1.dat 中的内容读入到整型变量 n 中,最后输出变量

18、n 的值。37.线性表的顺序存储结构和线性表的链式存储结构分别是(分数:2.00)A.顺序存取的存储结构、顺序存取的存储结构B.随机存取的存储结构、顺序存取的存储结构 C.随机存取的存储结构、随机存取的存储结构D.任意存取的存储结构、任意存取的存储结构解析:解析 顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式 LOC(ai)=LOC(a1)+(i-1)L 计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。38.数据结构中,与所使用的计算机无关的是数据的(分数:2.00)A.存储结构

19、B.物理结构C.逻辑结构 D.物理和存储结构解析:解析 数据结构概念一般包括数据的逻辑结构、存储结构及数据上的运算集合等。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,而不管它在计算机中的存储形式。39.在 16 位 IBM-PC 机上使用 C 语言,若有如下定义 stmct data inti; char ch; double f b; 则结构变量 b 占用内存的字节数是(分数:2.00)A.1B.2C.7D.11 解析:解析 结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量 i所占用的内存是 2 字节,字符型变量 ch 所占用的内存是 1 字节,双精度型变量

20、 f 所占用的内存是 8 字节,三者相加即可。40.以下数组定义中错误的是(分数:2.00)A.intx3=0;B.intx23=1,2,3,4,5,6; C.intx3=1,2,3,4,5,6;D.intx23=1,2,3,4,5,6;解析:解析 二维数组的初始化有以下几种形式:分行进行初始化;不分行进行初始化;部分数组元素进行初始化;省略第一维的定义,不省略第二维的定义。选顷 B)等号右边分了 3 行,大于等号左边数组的行数 2。二、B填空题/B(总题数:14,分数:28.00)41.需求分析的最终结果是产生 1。(分数:2.00)填空项 1:_ (正确答案:需求规格说明书)解析:解析 软

21、件需求规格说明书是需求分析阶段的最后成果,是软件开发小的重要文档之一。需求规格说明书包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。42.为了便于对照检查,测试用例应由输入数据和预期的 1 两部分组成。(分数:2.00)填空项 1:_ (正确答案:输出结果)解析:解析 测试用例(Text Case)是为测试设计的数据。测试用例由测试输入数据和与之对应的预期输出结果两部分组成。43.数据结构分为逻辑结构与存储结构,线性链表属于 1。(分数:2.00)填空项 1:_ (正确答案:存储结构)解析:解析 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结

22、构是指数据的逻辑结构在计算机存睹空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。44.某二叉树中度为 2 的结点有 18 个,则该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_ (正确答案:19)解析:解析 在任意一棵二叉树中,度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个。45. 1 是数据库设计的核心。(分数:2.00)填空项 1:_ (正确答案:数据模型)解析:解析 数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。46.已有定义:char

23、 c= ;int a=1,b;(此处 c 的初值为空格字符),执行 b=!c&a;后 b 的值为_。(分数:2.00)填空项 1:_ (正确答案:1)解析:解析 字符空格的 ASCII 码不为 0,所以本题中表达式!c 的值为 0,b=0&1 的结果显然为 0。47.设变量已正确定义为整型,则表达式 n=i=2,+i,i+的值为 1。(分数:2.00)填空项 1:_ (正确答案:3)解析:解析 本题考查的是 C 语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先 i 被赋值为2,再自加 1,最后 i+

24、的值计算为 3。48.下面程序的功能是:计算 110 之间的奇数之和与偶数之和,请填空。 #includestdio.h main() int a,b,c,i; a=C=0; for(i=0;i=10;i+=2) a+=i; _; c+=b; printf(“偶数之和=%d/n“,a); printf(“奇数之和=%d/n“,c-11);(分数:2.00)填空项 1:_ (正确答案:b=i+1)解析:解析 本题考查了 for 循环语句的执行过程。i+=2 是修正表达式,执行一次循环体后 i 的值就增加 2,i 的初始值为 0,每次加 2 后的和累加至 a,所以 a 的值就是 110 之间的偶数

25、之和;b 的值是111 之间的奇数和,但在输出 b 值时,c 去掉多加的 11,即为 110 之间的奇数之和。49.以下函数 rotate 的功能是:将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二维数组的第 0 列中,把 a 所指二维数组中的第 0 行放到 b 所指二维数组的最后一列中,b 所指二维数组中其他数据不变。 #define N 4 void rotade(int aN,int bN) int i,j; for(i=0;iN;i+) biN-1=U 9 /U;U 10 /U:aN-1i;(分数:2.00)填空项 1:_ (正确答案:9 a0)i)解析:10 bi0

26、 解析 biN-1;s0i实现把 a 所指二维数组中的第 0 行放到 b 所指二维数组的最后一列中,bi0= aN-1i门实现将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二维数组中的第 0 列。50.以下程序的输出结果是_。 #include stdio.h void swap(int *a, int *b) int *t t=a; a=b; b=t main() int i=3,j=5,*p=&i,*q=&j; swap(p,q); printf(“%d %d/n“,*p,*q);(分数:2.00)填空项 1:_ (正确答案:3 5)解析:解析 函数 swap(int*a

27、,int*b)的功能是实现*a 和*b,中两个数据的交换,在主函数中调用swap(p,q)后,参形指针变量 a 和 b 分别指向 i 和 j,在 swap(int*a,int*b)执行完后,指针变量 a 和 b分别指向 j 和 i,而指针变量 p,q 所指向变量的值没有发生变化,所以输出结果为 3 5。51.下面程序的运行结果是_。 #includestdio.h #define SIZE 12 main() char sSIZE;int i; for(i=0;iSIZE;i+) si=A+i+321; sub(s,7,SLZE-1); for(i=0;iSIZE;i+) printf(“%c

28、“,si); printf(“/n“); sub(char*a,int tl,int t2) char Ch; while (t1t2) ch=*(a+t1); *(a+t1)=*(a+t2); *(a+t2)=ch; t1+;t2-;(分数:2.00)填空项 1:_ (正确答案:a b c d e f g l k j i h)解析:解析 本题主要考查了字符变量可参与的运算。因为字符在计算机中是以 ASCII 码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的 ASCII 码值比它对应的小写字母 ASCII 码值小 32。52.以下程序的输出结果是_。 #i

29、nclude stdio.h main() int a5=2,4,6,8,10,*p; p=a; p+; printf(“%d“,*p); (分数:2.00)填空项 1:_ (正确答案:4)解析:解析 在主函数中,语句 p=a;p+使用指针 p 指向数组 a1,所以输出结果为 4。53.设有定义“stmctint a;float b;char cabc,*p_abc=&abc;”,则对结构体成员 a 的引用方法可以是 abc.a 和 p_abc 1。(分数:2.00)填空项 1:_ (正确答案:-)解析:解析 若结构体变量 abc 有成员 a,并有指针 p_abc 指向结构变量 abe,则引用

30、变量 abe 成员 s 的标记形式有 abe.a 和 p_abc-a。54.以下程序的运行结果是_。 #include stdio.h main() FILE *fp; int a10=1,2,3,0,0,i; fp=fopen(“d2dat“,“wbt“); fwtite(a,sizeof(int),5,fp); fwlite(a,sizeof(int),5,fp); fclose(fp); fp=fopen(“d2dat“,“rb“); fread(a,sizeof(int),10,fp); fclose(fp); for(i=0;i10;i+)printf(“%d“,ai); (分数:2.00)填空项 1:_ (正确答案:1,2,3,0,0,1,2,3,0,0,)解析:解析 本题考查文件读写函数 fread 和 fwrite 的用法。fwrite 函数将数组 a 的前 5 个元素输出到文件 fp 中两次,共 10 个字节,再调用 fread 函数从文件 fp 中读取这 10 个字节的数据到数组 a 中,此时数组 a 的内容就变为1,2,3,0,0,1,2,3,0, ),最后的输出结果为“1,2,3,0,0,1,2,3,0,0,”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1