1、全国计算机等级考试二级 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.2B.1C.3D.523.一棵完全
2、二叉树共有 360个结点,则在该二叉树中度为 1的结点个数为(分数:1.00)A.0B.1C.180D.1814.设某二叉树的后序序列与中序序列均为 ABCDEFGH,则该二叉树的前序序列为(分数:1.00)A.HGFEDCBAB.ABCDEFGHC.EFGHABCDD.DCBAHGFE5.在排序过程中,每一次数据元素的移动会产生新的逆序的排序方法是(分数:1.00)A.快速排序B.简单插入排序C.冒泡排序D.以上说法均不正确6.下面对软件工程描述正确的是(分数:1.00)A.软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法B.软件工程的三要素是方法、工具和进程
3、C.软件工程是用于软件的定义、开发和维护的方法D.软件工程是为了解决软件生产率问题7.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是(分数:1.00)A.内聚性是指模块间互相连接的紧密程度B.提高耦合性降低内聚性有利于提高模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.降低耦合性提高内聚性有利于提高模块的独立性8.下列关于数据库系统的叙述中正确的是(分数:1.00)A.数据库系统中数据的一致性是指数据类型一致B.数据库系统避免了一切冗余C.数据库系统减少了数据冗余D.数据库系统比文件系统能管理更多的数据9.一名演员可以出演多部电影,则实体演员和电影之间的联
4、系是(分数: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(“%d /n“,a ); 程序运行后的输出结果是(分数:1.00)A.15B.30C.28D.1412.以下叙述正确的是(分数:1.00)A.通过分解成简单子任务,可以完成任何复杂任务B.每个结构化程序都要包含全部三种基本结构C.C语言程序的所有自定义函数只能写在同一个源文件中D.
5、C语言程序允许使用多个 main函数,只要它们的函数体各不相同即可13.以下选项中,合法的 C语言实数是(分数:1.00)A.E4.8B.4.3e0.2C.4e0D.0.29E14.设 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-nC.k=int(m+n);D.k=m*n=1;16
6、.以下关于逻辑运算符两侧运算对象的叙述中正确的是(分数:1.00)A.只能是整数 0或 1B.只能是整数 0或非 0整数C.可以是结构体类型的数据D.可以是任意合法的表达式17.以下选项中错误的是(分数:1.00)A.printf(“%s/n“, s);B.printf(“%d %c/n“, s,s);C.printf(“%c/n“, s- 32);D.printf(“%c/n“, 65);18.若有定义:char ch;当执行以下循环时从键盘输入 abcde,将输出*的个数是 while(ch=getchar()=e) printf(“*“);(分数:1.00)A.4B.0C.5D.119.
7、有以下程序 #include main() int x=10,y=11,z=12; if( y0 | x aj ) t = ai; ai = aj; aj = t; main( ) int c10= 7,9,10,8,3,5,1,6,2,4 ,i; fun( c, 4, 1 ); fun( c+4, 6, 0 ); for ( i=0;iA.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
8、) if( x 1) return xn-1+ f(x, n-1)*10; else return x0; main( ) int z3 = 1,2,3, y; y = f(z,3); printf( “%d/n“, y ); 程序运行后的输出结果是(分数:1.00)A.321B.123C.1D.334.有以下程序 #include #include main() char ss10=“12345“; strcat( ss, “6789“ ); gets( ss );printf(“%s/n“, ss ); 执行时输入:ABC,则输出结果是(分数:1.00)A.123456ABCB.ABC9C
9、.ABCD.ABC45678935.有以下程序 #include #include main() printf(“%d/n“, strlen(“0/t/n/0C011/1“); 程序运行后的输出结果是(分数:1.00)A.3B.13C.1D.036.有以下程序 #include int show( char *str ) while (*str) putchar(*str+1); str+; return *str+1; main( ) printf(“%d/n“, show(“ABCD“); 程序运行后的输出结果是(分数:1.00)A.ABCD0B.BCDE0C.BCDE1D.ABCD137
10、.有以下程序 #include void my_put() char ch; ch = getchar(); if (ch != C) my_put(); putchar(ch); main( ) my_put(); 执行时输入:ABC,则输出结果是(分数:1.00)A.ABCB.CBAC.ABD.ABCC38.有以下程序 #include void fun(int n) static int x3=1,2,3; int k; for( k=0; kA.1,2,3,0,1,2,B.2,4,6,1,3,5,C.2,4,6,3,7,11,D.2,4,6,4,8,12,39.有以下定义 struct
11、 person char name10; int age; ; struct person class10= “Johu“,17, “Paul“,19, “Mary“,18, “Adam“,16, ; 能输出字母 M的语句是(分数:1.00)A.printf(“%c /n“, class2.name0 );B.printf(“%c /n“, class3.name0 );C.printf(“%c /n“, class3.name1 );D.printf(“%c /n“, class2.name1 );40.若要通过位运算使整型变量 a中的各位数字全部清零,以下选项正确的是(分数:1.00)A.
12、a=a0;B.a=a|0;C.a=aD.a=!a;全国计算机等级考试二级 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,此后又正常地插入了两个元素。最后该队列中的元素个数为
13、(分数:1.00)A.2 B.1C.3D.52解析:3.一棵完全二叉树共有 360个结点,则在该二叉树中度为 1的结点个数为(分数:1.00)A.0B.1 C.180D.181解析:4.设某二叉树的后序序列与中序序列均为 ABCDEFGH,则该二叉树的前序序列为(分数:1.00)A.HGFEDCBA B.ABCDEFGHC.EFGHABCDD.DCBAHGFE解析:5.在排序过程中,每一次数据元素的移动会产生新的逆序的排序方法是(分数:1.00)A.快速排序 B.简单插入排序C.冒泡排序D.以上说法均不正确解析:6.下面对软件工程描述正确的是(分数:1.00)A.软件工程是用工程、科学和数学的
14、原则与方法研制、维护计算机软件的有关技术及管理方法 B.软件工程的三要素是方法、工具和进程C.软件工程是用于软件的定义、开发和维护的方法D.软件工程是为了解决软件生产率问题解析:7.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是(分数:1.00)A.内聚性是指模块间互相连接的紧密程度B.提高耦合性降低内聚性有利于提高模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.降低耦合性提高内聚性有利于提高模块的独立性 解析:8.下列关于数据库系统的叙述中正确的是(分数:1.00)A.数据库系统中数据的一致性是指数据类型一致B.数据库系统避免了一切冗余C.数据库系统减少
15、了数据冗余 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(“%d /n“,a ); 程序运行后的输出结果是(分数:1.00)A.15B.30C.28 D.14解析:12.以下叙述正确的是(分数:1.00)A.通过
16、分解成简单子任务,可以完成任何复杂任务 B.每个结构化程序都要包含全部三种基本结构C.C语言程序的所有自定义函数只能写在同一个源文件中D.C语言程序允许使用多个 main函数,只要它们的函数体各不相同即可解析:13.以下选项中,合法的 C语言实数是(分数:1.00)A.E4.8B.4.3e0.2C.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);解
17、析:15.若变量已正确定义并赋初值,以下合法的赋值语句是(分数:1.00)A.k=(m=n); B.k=-m-nC.k=int(m+n);D.k=m*n=1;解析:16.以下关于逻辑运算符两侧运算对象的叙述中正确的是(分数:1.00)A.只能是整数 0或 1B.只能是整数 0或非 0整数C.可以是结构体类型的数据D.可以是任意合法的表达式 解析:17.以下选项中错误的是(分数:1.00)A.printf(“%s/n“, s); B.printf(“%d %c/n“, s,s);C.printf(“%c/n“, s- 32);D.printf(“%c/n“, 65);解析:18.若有定义:cha
18、r ch;当执行以下循环时从键盘输入 abcde,将输出*的个数是 while(ch=getchar()=e) printf(“*“);(分数:1.00)A.4B.0 C.5D.1解析:19.有以下程序 #include main() int x=10,y=11,z=12; if( y0 | x aj ) t = ai; ai = aj; aj = t; main( ) int c10= 7,9,10,8,3,5,1,6,2,4 ,i; fun( c, 4, 1 ); fun( c+4, 6, 0 ); for ( i=0;iA.7,8,9,10,6,5,4,3,2,1,B.10,9,8,7,
19、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 1) return xn-1+ f(x, n-1)*10; else return x0; main( ) int z3 = 1,2,3, y; y = f(z,3); printf( “%d/n“, y ); 程序运行后的输出结果是(分数:1.00)A.321B.123 C.1D.3解析:34.有以下程序 #include #include main() char ss10=“1
20、2345“; strcat( ss, “6789“ ); gets( ss );printf(“%s/n“, ss ); 执行时输入:ABC,则输出结果是(分数:1.00)A.123456ABCB.ABC9C.ABC D.ABC456789解析:35.有以下程序 #include #include main() printf(“%d/n“, strlen(“0/t/n/0C011/1“); 程序运行后的输出结果是(分数:1.00)A.3 B.13C.1D.0解析:36.有以下程序 #include int show( char *str ) while (*str) putchar(*str+
21、1); str+; return *str+1; main( ) printf(“%d/n“, show(“ABCD“); 程序运行后的输出结果是(分数:1.00)A.ABCD0B.BCDE0C.BCDE1 D.ABCD1解析:37.有以下程序 #include void my_put() char ch; ch = getchar(); if (ch != C) my_put(); putchar(ch); main( ) my_put(); 执行时输入:ABC,则输出结果是(分数:1.00)A.ABCB.CBA C.ABD.ABCC解析:38.有以下程序 #include void fun
22、(int n) static int x3=1,2,3; int k; for( k=0; kA.1,2,3,0,1,2,B.2,4,6,1,3,5,C.2,4,6,3,7,11, D.2,4,6,4,8,12,解析:39.有以下定义 struct person char name10; int age; ; struct person class10= “Johu“,17, “Paul“,19, “Mary“,18, “Adam“,16, ; 能输出字母 M的语句是(分数:1.00)A.printf(“%c /n“, class2.name0 ); B.printf(“%c /n“, class3.name0 );C.printf(“%c /n“, class3.name1 );D.printf(“%c /n“, class2.name1 );解析:40.若要通过位运算使整型变量 a中的各位数字全部清零,以下选项正确的是(分数:1.00)A.a=a0;B.a=a|0;C.a=a D.a=!a;解析: