全国计算机等级考试二级C语言真题题库2 2015年3月
(总分:40.00,做题时间:120分钟)
一、选择题(总题数:40,分数:40.00)
1.下列叙述中正确的是 (分数:1.00)
A.算法复杂度是指算法控制结构的复杂程度 B.算法复杂度是指设计算法的难度 C.算法的时间复杂度是指设计算法的工作量 D.算法的复杂度包括时间复杂度与空间复杂度 √ 解析:
2.设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。现经过一系列入队与退队操作后,front=rear=1,此后又正常地插入了两个元素。最后该队列中的元素个数为 (分数:1.00) A.2 √ B.1 C.3 D.52 解析:
3.一棵完全二叉树共有360个结点,则在该二叉树中度为1的结点个数为 (分数:1.00) A.0 B.1 √ C.180 D.181 解析:
4.设某二叉树的后序序列与中序序列均为ABCDEFGH,则该二叉树的前序序列为 (分数:1.00) A.HGFEDCBA √ B.ABCDEFGH C.EFGHABCD D.DCBAHGFE 解析:
5.在排序过程中,每一次数据元素的移动会产生新的逆序的排序方法是 (分数:1.00) A.快速排序 √ B.简单插入排序 C.冒泡排序 D.以上说法均不正确 解析:
6.下面对软件工程描述正确的是 (分数:1.00)
A.软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法 √ B.软件工程的三要素是方法、工具和进程 C.软件工程是用于软件的定义、开发和维护的方法 D.软件工程是为了解决软件生产率问题 解析:
7.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 (分数:1.00)
A.内聚性是指模块间互相连接的紧密程度 B.提高耦合性降低内聚性有利于提高模块的独立性
C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度 D.降低耦合性提高内聚性有利于提高模块的独立性 √ 解析:
8.下列关于数据库系统的叙述中正确的是 (分数:1.00)
A.数据库系统中数据的一致性是指数据类型一致 B.数据库系统避免了一切冗余 C.数据库系统减少了数据冗余 √ D.数据库系统比文件系统能管理更多的数据 解析:
9.一名演员可以出演多部电影,则实体演员和电影之间的联系是 (分数:1.00) A.多对多 √ B.一对一 C.多对一 D.一对多 解析:
10.下面可以作为软件需求分析工具的是 (分数:1.00) A.包图 B.程序流程图 C.PAD图
D.数据流程图(DFD图) √ 解析:
11.有以下程序 #include main() { int a=2,b=3,c=4; a*=16 +(b++) - (++c); printf(\程序运行后的输出结果是 (分数:1.00) A.15 B.30 C.28 √ D.14 解析:
12.以下叙述正确的是 (分数:1.00)
A.通过分解成简单子任务,可以完成任何复杂任务 √ B.每个结构化程序都要包含全部三种基本结构
C.C语言程序的所有自定义函数只能写在同一个源文件中
D.C语言程序允许使用多个main函数,只要它们的函数体各不相同即可 解析:
13.以下选项中,合法的C语言实数是 (分数:1.00) A.E4.8 B.4.3e0.2 C.4e0 √ D.0.29E
解析:
14.设a,b,c已定义为整型变量,以下选项中不正确的赋值表达式是 (分数:1.00)
A.a = 3 = (b = 2) = 1; √ B.a = (b = 0) * c + 1; C.a = (b = 0) * c + 1; D.a = 10 % (b = c = 2.0); 解析:
15.若变量已正确定义并赋初值,以下合法的赋值语句是 (分数:1.00) A.k=(m==n); √ B.k=-m-n C.k=int(m+n); D.k=m*n=1; 解析:
16.以下关于逻辑运算符两侧运算对象的叙述中正确的是 (分数:1.00) A.只能是整数0或1 B.只能是整数0或非0整数 C.可以是结构体类型的数据 D.可以是任意合法的表达式 √ 解析:
17.以下选项中错误的是 (分数:1.00)
A.printf(\√ B.printf(\ C.printf(\ D.printf(\解析:
18.若有定义:char ch;当执行以下循环时从键盘输入abcde,将输出*的个数是 while((ch=getchar())=='e') printf(\(分数:1.00) A.4 B.0 √ C.5 D.1 解析:
19.有以下程序 #include main() { int x=10,y=11,z=12; if( y< z ) x=y; y=z; z=x; printf(\z=%d/n\程序运行后的输出结果是 (分数:1.00)
A.x=11 y=12 z=11 √ B.x=10 y=10 z=10 C.x=11 y=11 z=10 D.x=10 y=10 z=12 解析:
20.对于if(表达式)语句,以下叙述正确的是 (分数:1.00)
A.\表达式\不能是变量 B.\表达式\的值只能是整数值
C.\表达式\可以是常量 √
D.\表达式\中不可以出现字符型变量的比较 解析:
21.有以下程序 #include main( ) { char ch = '1'; while (ch < '9') { printf(\ch - '0'); ch++; } } 程序运行后的输出结果是 (分数:1.00) A.12345678 √ B.01234567 C.0 D.1 解析:
22.以下与表达式(!x==0) 的逻辑值不等价的选项是 (分数:1.00) A.x==1 √ B.x C.x!=0 D.x>0 || x<0 解析:
23.以下叙述正确的是 (分数:1.00)
A.表达式9-'0'的值是数值 9
B.表达式'A'+32的值是字母A的ASCII码 C.表达式'a'-32的值是字母a的ASCII码 D.表达式9+'0'的值是字符9的ASCII码 √ 解析:
24.有以下程序 #include int fun (int x, int y ) { if (x!=y) return ( (x+y) /2 ); else return ( x ); } main() { int a=4, b=5, c=6; printf( \程序运行后的输出结果是
(分数:1.00) A.3 B.6 √ C.8 D.12 解析:
25.有以下程序 #include int f( int x,int y) { return((y-x)*x); } main() { int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf(\程序运行后的输出结果是 (分数:1.00) A.8 B.10 C.9 √ D.7 解析:
26.有以下程序 #include void fun( int a[ ], int n, int flag ) { int i=0,j, t; for ( i=0; i< a[j] ) { t = a[i]; a[i] = a[j]; a[j] = t; } } else { if ( a[i] > a[j] ) { t = a[i]; a[i] = a[j]; a[j] = t; } } } main( ) { int c[10]={ 7,9,10,8,3,5,1,6,2,4 },i; fun( c, 4, 1 ); fun( c+4, 6, 0 ); for ( i=0;i (分数:1.00)
A.7,8,9,10,6,5,4,3,2,1, B.10,9,8,7,6,5,4,3,2,1,
C.10,9,8,7,1,2,3,4,5,6, √ D.1,2,3,4,5,6,7,8,9,10, 解析:
27.有以下程序 #include int m1(int x, int y ) { if( x<= y ) return 2*x+1; else return y; } int m2(int x, int y ) { if( x<= y ) return 2*y+1; else return x; } main() { int i, t1=10, t2=0; for( i=1; i<=4; i++ ) { t1=m1( i,t1 ); t2=m2( i,t2 ); } printf(\程序运行后的输出结果是 (分数:1.00) A.t1=9 t2=4 √ B.t1=4 t2=9 C.t1=9 t2=9 D.t1=1 t2=4 解析:
28.有以下程序 #include void f1(char *a, char b ){ char c; c=*a; *a=b; b=c; } void f2(char a, char b ){ char c; c=a; a=b; b=c; } void f3(char *a, char *b ){ char c; c=*a; *a=*b; *b=c; } main() { char t1, t2; t1 = 'A'; t2 = 'B'; f3( &t1,&t2 ); putchar(t1); putchar(t2); t1 = 'A'; t2 = 'B'; f2( t1, t2 ); putchar(t1); putchar(t2); t1 = 'A'; t2 = 'B'; f1( &t1, t2 ); putchar(t1); putchar(t2); printf(\程序运行后的输出结果是 (分数:1.00) A.ABBABB B.BAABBB √ C.BABABA D.BABAAB 解析:
29.以下叙述正确的是 (分数:1.00)
A.char c1, *c2, *c3[10]; 是合法的变量定义语句 √ B.数组说明符的一对方括号中不能使用表达式 C.数组元素下标可以是非整数
D.若有定义 char array[4]; 则语句 printf(\是合法的 解析:
30.有以下程序 #include main( ) { int a[3][3]={{1,3,5,}, {7,9,11,}, {13,15,17}}; int (*p)[3]=a, i,j,n=0; for(i=0;i (分数:1.00) A.54 B.60 C.36 D.48 √ 解析:
31.设有定义: char p[]={'1', '2', '3'},*q=p; 以下不能计算出一个char型数据所占字节数的表达式是
(分数:1.00) A.sizeof(*q) B.sizeof(char) C.sizeof(p) √ D.sizeof(p[0]) 解析:
32.有以下程序 #include fun(int x, int y) { static int m=0, i=2; i+=m+1; m=i+x+y; return m; } main() { int j=1, m=1, k; k=fun(j,m); printf(\执行后的输出