1、国家二级( C语言)笔试模拟试卷 18及答案与解析 1 在计算面中,算法是指 _。 ( A)查询方法 ( B)加工方祛 ( C)解题方案的准确而完整的描述 ( D)排序方法 2 栈和队列的共同点是 _。 ( A)都是先进后出 ( B)都是先进先出 ( C)只允许在端点处插入和删除元素 ( D)没有共同点 3 已知二叉树 BT的后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是 _。 ( A) cedba ( B) acbed ( C) decab ( D) deabc 4 在下列几种排序方法中,要求内存量最大的是 _。 ( A)插入排序 ( B)选择排序 ( C)快速排
2、序 ( D)归并排序 5 在设计程序时,应采纳的原则之一是 _。 ( A)程序结构应有助于读者理解 ( B)不限制 goto语句的使用 ( C)减少或取消注解行 ( D)程序越短越好 6 下列不属于软件调试技术的是 _。 ( A)强行排错法 ( B)集成测试法 ( C)回溯法 ( D)原因排除法 7 下列叙述中,不属于软件需求规格说明书的作用的是 _。 ( A)便于用户、开发人员进行理解和交流 ( B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 ( C)作为确认测试和验收的依据 ( D)便于开发人员进行需求分析 8 在数据流图 (DFD)中,带有名字的箭头表示 _。 ( A)控制程
3、序的执行顺序 ( B)模块之间的调用关系 ( C)数据的流向 ( D)程序的组成成分 9 SQL语言又称为 _。 ( A)结构化定义语言 ( B)结构化控制语言 ( C)结构化查询语言 ( D)结构化操纵语言 10 视图设计一般有 3种设计次序,下 列不属于视图设计的是 _。 ( A)自顶向下 ( B)由外向内 ( C)由内向外 ( D)自底向上 11 用 C言编写的代码程序 ( )。 ( A)可立即执行 ( B)是个源程序 ( C)经过编译即可执行 ( D)经过编译解释即可执行 12 以下不合法的数值常量是 ( )。 ( A) 11 ( B) lel ( C) 8.0E0.5 ( D) 0x
4、abcd 13 以下选项中,合法的一组 C语言数值常量是 ( )。 ( A) 028 .5e-3 -0xf ( B) 12 0X023 4.5e0 ( C) .177 4e1.5 0abe ( D) 0x8A 10,000 3.e5 14 下列叙述中正确的是 ( )。 ( A) C语言中既有逻辑类型也有集合类型 ( B) C语言中没有逻辑类型但有集合类型 ( C) C语言中有逻辑类型但没有集合类型 ( D) C语言中既没有逻辑类型也没有集合类型 15 指出下面不了确的赋值语句 ( )。 ( A) a+; ( B) a=b; ( C) a+=b; ( D) a=1,b=1; 16 有以下程序段:
5、 typedef struct NODE int num; struct NODE * next; OLD; 以下叙述中正确的是 ( )。 ( A)以上的说明形式非法 ( B) NODE是一个结构体类型 ( C) OLD是一个结构体类犁 ( D) OLD是一个结构体变量 17 下列关于单目运算符 +、 -的叙述中正确的是 ( )。 ( A)它们的运算对象可以是任何变量和常量 ( B)它们的运算对象可以是 char型变量和 int型变量,但不能是 float型变量 ( C)它们的运算对象可以是 int型变量,但不能是 double型变量和 float型变量 ( D)它们的运算对象可以是 char
6、型变量、 int型变量和 float型变量 18 有以下程序段: int j; float y; char name50; scanf(“%2d%f%s“, 当执行上述程序段,从键盘上输入 55566 7777abc后, y的值为 ( )。 ( A) 55566 ( B) 566 ( C) 7777 ( D) 566777 19 若变量已正确定义,有以下程序段: i=0; do printf(“%d,“,i); while(i+); print f(“%dn“,i); 其输出结果是 ( )。 ( A) 0,0 ( B) 0,1 ( C) 1,1 ( D)程序进入无限循环 20 若有以下程序 :
7、 main() int k=2,i=2,m; m=(k+=i*=k); print f(“%d,%dn“,m,i); 执行后的输出结果 是 ( )。 ( A) 8,6 ( B) 8,3 ( C) 6,4 ( D) 7,4 21 有以下程序: #include stdio.h #include stdio.h main() char c6; int i=0; for(;j 6;ci=getchar(),i+); for(i=0;i 6;i+)putchar(ci); printf(“n“);如果从键盘上输入: ab回车 c回车 def回车则输出结果为 _。 ( A) a b c d e f (
8、B) a b c d ( C) ab c d ( D) abcdef 22 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。 ( A)地址传递 ( B)单向值传递 ( C)由实参传递给形参,再由形参传递给实参 ( D)传递方式由用户指定 23 以下程序 #include stdio.h #include string.h main() char*p1=“abc“,*p2=-“ABC“, str, 50=“xyz“; strcpy(str+2,strcat(p1,p2); printf(“%sn“, str); ( A) xyzabcABC ( B) zabcABC ( C
9、) yzabcABC ( D) xyabcABC 24 下面程序 main() int x=100, a=10, b=20, ok1=5, ok2=0;if(a b) if(b!=15) if(!ok1) x=1; else if(ok2) x=10;x=1;printf(“%dn“, x);的输出是 _。 ( A) -1 ( B) 0 ( C) 1 ( D)不确定的值 25 下面程序 main() int x=32; printf(“%dn“, x=x 1);的输出是 _。 ( A) 100 ( B) 160 ( C) 120 ( D) 64 26 以下程序的输出结果是 _。 #includ
10、e stdio. h #define FUDGE(y) 2.84+y#define PR(a) printf (“%d“,(int)(a)#define PRINT1(a) PR(a); putchar(n)main() int x=2; PRINT1(FUDGE(5)*x); ( A) 11 ( B) 12 ( C) 13 ( D) 15 27 以下程序段给数组所有的元素输入数据,请选择正确答案填入。 #include stdio.h main() int a10,j=0; while(i 10)scanf(“%d“, _ ); : : ( A) a+(i+) ( B) ( D) enum
11、a “one“, “two“. “three“; 29 字符 (char)型数据在微机内存中的存储形式是 _。 ( A)反码 ( B)补码 ( C) EBCDIC 码 ( D) ASCII 码 30 不能把字符串 “Hello!“赋给数组 b的语句是 _。 ( A) char b10=H, e, l, l, o,!; ( B) char b10=h, e, l, l, o,!; ( C) char b10;strcpy (b, “Hello!“; ( D) char b10=“Hello!“; 31 下面程序的输出是 _。 main()int x=3 ,y=6,a=0;, while(x+!=
12、(y=1) a+=1; if(y x) break; printf(“x=%d, y=%d, a=%dn, x, y, a); ( A) x=4,y=4,a=1 ( B) x=5,y=5,a=1 ( C) x=5,y=4,a=3 ( D) x=5,y=4,a=1 32 若有程序 fun(int a, int b) static int c=0; c+=a+ b; returm c;main() int x=5,y=3,z=7,r; r=fun(y, x+ y),z); r=fun (x, y); printf(“%dn“, r); ( A) 23 ( B) 15 ( C) 19 ( D) 18
13、 33 下面程序的输出是 _。 main() char*s=“12134211“; int v1=0,v2=0,v3=0,v4=0,k; for (k=0;sk;k+) switch(sk) default:v4+; case1:v1+; case3:v3+; case2:v2+; printf(“v1=%d, v2=%d,v3=%d, v4=%dn“,v1,v2,v3,v4); ( A) v1=4,v2=2,v3=1,v4=1 ( B) v1=4,v2=9,v3=3,v4=1 ( C) v1=5,v2=8,v3=6,v4=1 ( D) v1=8,v2=8,v3=8,v4=8 34 fgetc
14、函数的作用是从指定文件读入一个个字符,该文件的打开方式必须是_。 ( A)只读 ( B)追加 ( C)读或读写 ( D)以上均正确 35 若有下面的说明和定义,则 sizeof(struct aa )的值是 _。 struct aa int rl; double r2; float r3; unin uuchar ul5; long u22ua; mya; ( A) 30 ( B) 29 ( C) 24 ( D) 22 36 在一棵 二叉树中,度为 0的结点的个数为 n0,度为 2的结点的个数为 n2,则有n0=【 】。 37 在软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错直至
15、回归测试的过程称为【 】。 38 下列程序的运行结果为【 】。 main ( ) int a=5,b=5, y, z; y=b- +a?+b: a; z=+a b?a: y; printf (“%d, %d, %d, %d“, a, b, y, z); 39 下列程序的运行结果为【 】。 enum weekday sun=7,mon=1,tue,wed, thu, fri,sat; main ( ) enum weekday workday,week end; int i,a8; workday=tue; week end=sun; printf (“ntueday=%d sunday=%d;
16、 “,workday, week_end); workday=sun+tue; week_end= (enum weekday)3; printf (“tueday=%d sunday=%d; “,workday, weekend); a sun=sun; a mon=mon; a tue=rue; a wed=wed; a thu=thu; a fri=fri; a sat=sat; for(i=l;i =7;i+) printf(“%d “,ai); 40 下面程序的功能是:计算 1 10之间奇数和及偶数之和。 #include stdio.h main ( ) int a, b, c,
17、i; a=c=O; for (i=O; i =10;i+=2) a+=i; 【 】 ; c+=b; printf(“偶数之和 =%dn“, a); printf(“奇数之和 =%dn“, c-11); 41 若输入 3、 4、 5,程序的输出结果为【 】。 #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
18、, c, s); printf (“area=%7.2fn“, area); 42 下列程序的输出结果是 16.00,请填空。 main ( ) int a=9, b=2; float x=【 】 , y=1.1,z; z=a/2+b*x/y+1/2; printf(“%5.2fn“, z ); 43 下列程序的运行结果为【 】。 main() int a3C4=1, 3, 5, 7, 2, 4, 6, 8, 15, 17, 34, 12; printf(“max value is %dn“, max value(3, 4, a); max value(m, n, array) int m,
19、n, array4; int i, j, max; max=array00; for(i=0; i m; i+) for(i=0; i n; j+) if(max arrayij)max=arrayij; return(max); 44 下列程序可以将从键盘上输入的十进制数 (10ng型 )以二到十六进制形式输出。 #include stdio h 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“); s
20、canf(“%1d“, i+; n=n/base; while(n!=0); printf(“transmite new babe:n“); for-i; i =0; -i) d=ci; printf(“%c“, b 【 】 ); 45 以下函数将 b字符串连接到 a字符串的后面,并返回 a中新字符串的长度。 strcen(char aC), char b) int num=0, n=0; while(*(a+num)!=【 】 ) num+; while(bn)*(a+num)=bn; num+;【 】 ;) return(num); 46 funl函数的调用语句为: fun1(。 35 【
21、正确答案】 D 【试题解析】 结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量 aa中,成员 r1占 2个字节, r2占 8个字节, r3占 4个字节,共用体 ua占 8个字节,所以共占用 2+8+4+8=22个字节。 36 【正确答案】 n2+1 37 【正确答案】 校正性维护 38 【正确答案】 7, 4, 6, 7 39 【正确答案】 tueday=2 sunday=7; tueday=9 sunday=3; 1 2 3 4 5 6 7 40 【正确答案】 b=i+1 41 【正确答案】 a=3.00,b=4.00,c=5.00,s=6.00,area=6.00 42 【正确答案】 6.6 43 【正确答案】 max value is 34 44 【正确答案】 n%base d 45 【正确答案】 0, n+ 46 【正确答案】 pc,pb或 pb,pc pc,pa或 pa,pc pb,pa或 pa,pb