1、二级 C 语言笔试 41 及答案解析(总分:104.00,做题时间:90 分钟)一、B选择题/B(总题数:30,分数:60.00)1.下列程序的输出结果是_。 int i=010, j=10; printf (“%d, %d/n“, +i, j-);(分数:2.00)A.11, 10B.9, 10C.010, 9D.10, 92.下列程序的输出结果是_。 #define SQR(X) X*X main ( ) int a=16, k=2, m=1; a/=SQR (k+m)/SQR (k+m); printf (“d/n“, a); (分数:2.00)A.16B.2C.9D.13.若有以下定义
2、和语句,则输出的结果是_。 char c1=b,c2=e; printf(“%d,%c/n“,c2-c1,c2-a+“A“);(分数:2.00)A.2,MB.3,EC.2,ED.输出结果不确定4.当调用函数时,实参是一个数组名,则向函数传送的是_。(分数:2.00)A.数组的长度B.数组的首地址C.数组中每一个元素的地址D.数组每个元素中的值5.下面程序的输出结果是_。 main() double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf(“%d/n“,d*y); (分数:2.00)A.3B.3.2C.0D.3.076.下列程序的输出结果是_。 ma
3、in() unsigned short a=65536;int b; printf(“%d/n“,b:a);(分数:2.00)A.0B.1C.2D.37.下列程序的输出结果是_。 #include stdio. h main ( ) int a,b,c=246; a=c/100%9; b=(-1) printf (“%d, %d/n“, a,b); (分数:2.00)A.2,1B.3,2C.4,3D.2,-18.在 C 程序中,可将整型数以二进制形式存放到文件中的函数是_。(分数:2.00)A.fprint 函数B.fread 函数C.fwrite 函数D.fputc 函数9.若定义 stat
4、ic int a22=1,2,3,4,则 a 数组的各数组元素分别为_。(分数:2.00)A.a00=1、a01=2、at10=3、a11=4B.a00=1、a01=3、a10=2、a11=4C.a00=4、a01=3、a10=2、s11=1D.a00=4、a01=2、a10=3、a11=110.在 C 语言中提供的合法的关键字是_。(分数:2.00)A.swicthB.cherC.CaseD.default11.在瀑布模型中,将软件开发划分为若干时期,而软件的可行性研究一般被属于_。(分数:2.00)A.计划时期B.维护时期C.运行时期D.开发时期12.软件测试是软件开发过程中重要且不可缺少
5、的阶段,测试过程中的_是基础测试。(分数:2.00)A.系统测试B.有效性测试C.单元测试D.集成测试13.下列程序的输出结果为_。 main ( ) unsigned int a=65535; int b=-2; printf ( “/na=%d, %u;b=%d, %u, a, a,b,b); (分数:2.00)A.-1,65535;-2,65534B.65535,65535;-2,65534C.65535,65535;65534,65534D.-1,65535;65534,6553414.给出发下定义: char x=“abcdefg“; char y=a, b, c, d, e, f,
6、 g ;则正确的叙述为_。(分数:2.00)A.数组 x 和数组 y 等价B.数组 x 和数组 y 的长度相同C.数组 x 的长度大于数组 y 的长度D.数组 x 的长度小于数组 y 的长度15.设有以下程序: struct stint n;struct st *next; static struct st a3=5, p= 下面选项中,表达式值为 6 的是_。(分数:2.00)A.p+-nB.p-n+C.(*.n+D.+p-n16.已知 8 个数据元素为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树后,最后 2 层上的结点总数为_。(分数:2.0
7、0)A.1B.2C.3D.417.下列语句中,不正确的是_。(分数:2.00)A.static char a=“China“;B.static char a=“China“;C.printf(“%s“,a0);D.scanf(“%s“,;18.下列程序的输出结果是_。 main ( ) char a 10 = 9, 8,7,6, 5, 4,3, 2, 1,0,*p=a+5; printf (“%d“, *-p); (分数:2.00)A.非法B.a4的地址C.5D.319.下列变量说明语句中,正确的是(分数:2.00)A.char:a b c;B.chara;b;c;C.intx;z;D.int
8、x,z;20.下列程序的运行结果是_。 main ( ) int x,*p,*q; x=10; p= q= printf (“%d/n“, *q); (分数:2.00)A.10B.9C.8D.1121.标有/* * /的语句的执行次数是_。 int y,i; for(i=0 ; i20 ; i+) if (i%2=0) continue; y+=i; /*/ (分数:2.00)A.20B.19C.10D.922.在数据库技术中,面向对象数据模型是一种_。(分数:2.00)A.概念模型B.结构模型C.物理模型D.形象模型23.已知 p、p1 为指针变量,a 为数组名,i 为整型变量,下列语句中,
9、不正确的是_。(分数:2.00)A.p= if (m+5) printf (“%d/n“,m); else printf (“%d/n“,m-); (分数:2.00)A.7B.6C.5D.427.一个栈的输入序列为 1,2,3,4,下列选项中的_序列不可能是这个栈的输出序列。(分数:2.00)A.1,3,2,4B.2,3,4,1C.4,3,1,2D.3,4,2,128.设 a、b、c 都是 int 型变量,且 a=3,b=4,c=5,则下面的表达式中,值为 0 的表达式是_。(分数:2.00)A.a printf(“%d /n“,x-); (分数:2.00)A.-32767B.FFFEC.-1
10、D.-32768二、B填空题/B(总题数:11,分数:44.00)31.若采用直接插入法对字母序列(W,S,E,L,X,G,I)进行排序,使字母按升序排列,那 么第一次排序的结果为U 【1】 /U。(分数:4.00)填空项 1:_32.对于一棵具有 n 个结点的树,则该树中所有结点的度之和为U 【2】 /U。(分数:4.00)填空项 1:_33.单独测试一个模块时,有时需要一个U 【3】 /U程序驱动被测试的模块。(分数:4.00)填空项 1:_34.仅依据规格说明书描述的程序功能来设计测试实例的方法称为U 【4】 /U。(分数:4.00)填空项 1:_35.在进行软件结构设计时,应遵循的最主
11、要原理是U 【5】 /U。(分数:4.00)填空项 1:_36.若输入 3、4、5,程序的输出结果为U 【6】 /U。 #include “math.h“ main ( ) float a, b, c, s, area; scanf(“%f,%f,%f“, s=1.0/2*(a+b+c); area=sqrt (s* (s-a) * (s-b) * (s-c); printf (“a=%7.2f,b=%7.2f, c=%7.2f, s=%7.2f“, a,b, c, s); printf (“area=%7.2f/n“, area); (分数:4.00)填空项 1:_37.下列程序的输出结果是
12、 16.00,请填空。 main ( ) int a=9, b=2; float x=U 【7】 /U, y=1.1,z; z=a/2+b*x/y+1/2; printf(“%5.2f/n“, z ); (分数:4.00)填空项 1:_38.下列程序的运行结果为U 【8】 /U。 main() int a3C4=1,3,5,7,2,4,6,8,15,17,34,12; printf(“max value is %d/n“,max value(3,4,a); max value(m,n,array) int m,n,array4; int i,j,max; max=array00; for(i=
13、0;im;i+) for(i=0;in;j+) if(maxarrayij)max=arrayij; return(max); (分数:4.00)填空项 1:_39.下列程序可以将从键盘上输入的十进制数(10ng 型)以二到十六进制形式输出。 #includestdioh main() char b16=0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F; int c64,d,i=0,base; long n; printf(“enter a number:/n“);scanf(“%1d“, printf (“%d, %d/n“, +i, j-);(分数:2.00)A.11, 10
14、B.9, 10 C.010, 9D.10, 9解析:2.下列程序的输出结果是_。 #define SQR(X) X*X main ( ) int a=16, k=2, m=1; a/=SQR (k+m)/SQR (k+m); printf (“d/n“, a); (分数:2.00)A.16B.2 C.9D.1解析:3.若有以下定义和语句,则输出的结果是_。 char c1=b,c2=e; printf(“%d,%c/n“,c2-c1,c2-a+“A“);(分数:2.00)A.2,MB.3,E C.2,ED.输出结果不确定解析:4.当调用函数时,实参是一个数组名,则向函数传送的是_。(分数:2.
15、00)A.数组的长度B.数组的首地址 C.数组中每一个元素的地址D.数组每个元素中的值解析:5.下面程序的输出结果是_。 main() double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf(“%d/n“,d*y); (分数:2.00)A.3B.3.2C.0 D.3.07解析:6.下列程序的输出结果是_。 main() unsigned short a=65536;int b; printf(“%d/n“,b:a);(分数:2.00)A.0 B.1C.2D.3解析:7.下列程序的输出结果是_。 #include stdio. h main ( ) i
16、nt a,b,c=246; a=c/100%9; b=(-1) printf (“%d, %d/n“, a,b); (分数:2.00)A.2,1 B.3,2C.4,3D.2,-1解析:8.在 C 程序中,可将整型数以二进制形式存放到文件中的函数是_。(分数:2.00)A.fprint 函数B.fread 函数C.fwrite 函数 D.fputc 函数解析:9.若定义 static int a22=1,2,3,4,则 a 数组的各数组元素分别为_。(分数:2.00)A.a00=1、a01=2、at10=3、a11=4 B.a00=1、a01=3、a10=2、a11=4C.a00=4、a01=3
17、、a10=2、s11=1D.a00=4、a01=2、a10=3、a11=1解析:10.在 C 语言中提供的合法的关键字是_。(分数:2.00)A.swicthB.cherC.CaseD.default 解析:11.在瀑布模型中,将软件开发划分为若干时期,而软件的可行性研究一般被属于_。(分数:2.00)A.计划时期 B.维护时期C.运行时期D.开发时期解析:12.软件测试是软件开发过程中重要且不可缺少的阶段,测试过程中的_是基础测试。(分数:2.00)A.系统测试B.有效性测试C.单元测试 D.集成测试解析:13.下列程序的输出结果为_。 main ( ) unsigned int a=655
18、35; int b=-2; printf ( “/na=%d, %u;b=%d, %u, a, a,b,b); (分数:2.00)A.-1,65535;-2,65534 B.65535,65535;-2,65534C.65535,65535;65534,65534D.-1,65535;65534,65534解析:14.给出发下定义: char x=“abcdefg“; char y=a, b, c, d, e, f, g ;则正确的叙述为_。(分数:2.00)A.数组 x 和数组 y 等价B.数组 x 和数组 y 的长度相同C.数组 x 的长度大于数组 y 的长度 D.数组 x 的长度小于数组
19、 y 的长度解析:15.设有以下程序: struct stint n;struct st *next; static struct st a3=5, p= 下面选项中,表达式值为 6 的是_。(分数:2.00)A.p+-nB.p-n+C.(*.n+D.+p-n 解析:16.已知 8 个数据元素为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树后,最后 2 层上的结点总数为_。(分数:2.00)A.1B.2 C.3D.4解析:17.下列语句中,不正确的是_。(分数:2.00)A.static char a=“China“;B.static char a
20、=“China“;C.printf(“%s“,a0); D.scanf(“%s“,;解析:18.下列程序的输出结果是_。 main ( ) char a 10 = 9, 8,7,6, 5, 4,3, 2, 1,0,*p=a+5; printf (“%d“, *-p); (分数:2.00)A.非法B.a4的地址C.5 D.3解析:19.下列变量说明语句中,正确的是(分数:2.00)A.char:a b c;B.chara;b;c;C.intx;z;D.intx,z; 解析:20.下列程序的运行结果是_。 main ( ) int x,*p,*q; x=10; p= q= printf (“%d/
21、n“, *q); (分数:2.00)A.10 B.9C.8D.11解析:21.标有/* * /的语句的执行次数是_。 int y,i; for(i=0 ; i20 ; i+) if (i%2=0) continue; y+=i; /*/ (分数:2.00)A.20B.19C.10 D.9解析:22.在数据库技术中,面向对象数据模型是一种_。(分数:2.00)A.概念模型B.结构模型 C.物理模型D.形象模型解析:23.已知 p、p1 为指针变量,a 为数组名,i 为整型变量,下列语句中,不正确的是_。(分数:2.00)A.p= if (m+5) printf (“%d/n“,m); else
22、printf (“%d/n“,m-); (分数:2.00)A.7B.6 C.5D.4解析:27.一个栈的输入序列为 1,2,3,4,下列选项中的_序列不可能是这个栈的输出序列。(分数:2.00)A.1,3,2,4B.2,3,4,1C.4,3,1,2 D.3,4,2,1解析:28.设 a、b、c 都是 int 型变量,且 a=3,b=4,c=5,则下面的表达式中,值为 0 的表达式是_。(分数:2.00)A.a printf(“%d /n“,x-); (分数:2.00)A.-32767B.FFFEC.-1 D.-32768解析:二、B填空题/B(总题数:11,分数:44.00)31.若采用直接插
23、入法对字母序列(W,S,E,L,X,G,I)进行排序,使字母按升序排列,那 么第一次排序的结果为U 【1】 /U。(分数:4.00)填空项 1:_ (正确答案:S,W,E,L, X,G,I)解析:32.对于一棵具有 n 个结点的树,则该树中所有结点的度之和为U 【2】 /U。(分数:4.00)填空项 1:_ (正确答案:n-1)解析:33.单独测试一个模块时,有时需要一个U 【3】 /U程序驱动被测试的模块。(分数:4.00)填空项 1:_ (正确答案:驱动)解析:34.仅依据规格说明书描述的程序功能来设计测试实例的方法称为U 【4】 /U。(分数:4.00)填空项 1:_ (正确答案:黑箱法
24、)解析:35.在进行软件结构设计时,应遵循的最主要原理是U 【5】 /U。(分数:4.00)填空项 1:_ (正确答案:模块独立原理)解析:36.若输入 3、4、5,程序的输出结果为U 【6】 /U。 #include “math.h“ main ( ) float a, b, c, s, area; scanf(“%f,%f,%f“, s=1.0/2*(a+b+c); area=sqrt (s* (s-a) * (s-b) * (s-c); printf (“a=%7.2f,b=%7.2f, c=%7.2f, s=%7.2f“, a,b, c, s); printf (“area=%7.2f
25、/n“, area); (分数:4.00)填空项 1:_ (正确答案:a=3.00,b=4.00,c=5.00,s=6.00,area=6.00)解析:37.下列程序的输出结果是 16.00,请填空。 main ( ) int a=9, b=2; float x=U 【7】 /U, y=1.1,z; z=a/2+b*x/y+1/2; printf(“%5.2f/n“, z ); (分数:4.00)填空项 1:_ (正确答案:6.6)解析:38.下列程序的运行结果为U 【8】 /U。 main() int a3C4=1,3,5,7,2,4,6,8,15,17,34,12; printf(“max
26、 value is %d/n“,max value(3,4,a); max value(m,n,array) int m,n,array4; int i,j,max; max=array00; for(i=0;im;i+) for(i=0;in;j+) if(maxarrayij)max=arrayij; return(max); (分数:4.00)填空项 1:_ (正确答案:max value is 34)解析:39.下列程序可以将从键盘上输入的十进制数(10ng 型)以二到十六进制形式输出。 #includestdioh main() char b16=0,1,2,3,4,5,6,7,8,
27、9,A,B,C,D,E,F; int c64,d,i=0,base; long n; printf(“enter a number:/n“);scanf(“%1d“,&n); printf(“enter new base:/n“);scanf(“%d“,&baBe); do ci=U 【9】 /U; i+;n=n/base; while(n!=0);printf(“transmite new babe:/n“); for-i;i=0;-i) d=ci; printf(“%c“,bU 【10】 /U); (分数:4.00)填空项 1:_ (正确答案:(9) n%base (10)d)解析:40.
28、funl 函数的调用语句为:fun1(&a,&b,&c);它将 3 个整数按由大到小的顺序调整后依次放入 a、b、c 这 3 个变量中,a 中放最大数。 void fun2 (int*x,int*y) int t; t=*x; *X=*y;*y=t; void funl (int *pa,int *pb,int *pc) if(*pc*pb)fun2(U 【11】 /U); if(*pa*pc)fun2(U 【12】 /U); if(*pa*pb)fun2(U 【13】 /U); (分数:4.00)填空项 1:_ (正确答案:(11) pc,pb 或 pb,pc (12)pc,pa 或 pa,pc (13)pb,pa 或pa,pb)解析:41.以下函数将 b 字符串连接到 a 字符串的后面,并返回 a 中新字符串的长度。 strcen(char aC), char b) int num=0,n=0; while(*(a+num)!=U 【14】 /U) num+; while(bn)*(a+num)=bn; num+;U 【15】 /U;) return(num); (分数:4.00)填空项 1:_ (正确答案:(14)/0, (15)n+)解析: