国家二级C语言机试(选择题)模拟试卷392
选择题
1.下列叙述中正确的是( )。(B)
A. 矩阵是非线性结构
B. 数组是长度固定的线性表
C. 对线性表只能作插入与删除运算
D. 线性表中各元素的数据类型可以不同
解析:矩阵也是线性表,只不过是比较复杂的线性表。线性表中各元素的数据类型必须相同。在线性表中,不仅可以做插入与删除运算,还可以进行查找或对线性表进行排序等操作。
2.下列叙述中正确的是(D)
A. 一个算法的空间复杂度大,则其时间复杂度也必定大
B. 一个算法的空间复杂度大,则其时间复杂度必定小
C. 一个算法的时间复杂度大,则其空间复杂度必定小
D. 算法的时间复杂度与空间复杂度没有直接关系
解析:算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。
3.下列关于线性链表的叙述中,正确的是(C)
A. 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B. 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C. 进行插入与删除时,不需要移动表中的元素
D. 以上都不正确
解析:线性表的链式存储结构称为线性链表。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
4.设树T的深度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。则T中的叶子结点数为(B)
A. 8
B. 7
C. 6
D. 5
解析:深度为m二叉树其总结点数为2m-1=24-1=15。总结点数减去度为1,2,3,4的结点个数就是叶子结点数。15.4—2—1—1=7。
5.检查软件产品是否符合需求定义的过程称为( )。(A)
A. 确认测试
B. 集成测试
C. 验证测试
D. 验收测试
解析:确定测试是验证软件的功能和性能及其他特性是否满足了需求规格说明书中确定的各种需求以及软件配置是否完全、正确。
6.下列选项中不属于面向对象程序设计特征的是(C)
A. 继承性
B. 多态性
C. 类比性
D. 封装性
解析:面向对象程序设计的三个主要特征是:封装性、继承性和多态性。封装性即只需知道数据的取值范围和可以对该数据施加的操作,而无需知道数据的具体结构以及实现操作的算法。继承性是指使用已有的类定义作为基础建立新类的定义技术。对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性。
7.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是(C)
A. 测试
B. 设计
C. 可行性研究
D. 实现
解析:软件生命周期是指软件产品从提出、实现、使用、维护到停止使用退役的过程。其中,定义阶段包括可行性研究与计划制定和需求分析。测试、概要设计、详细设计和实现属于开发阶段。
8.下列叙述中正确的是(C)
A. 在switch语句中必须使用default
B. break语句必须与switch语句中的case配对使用
C. 在switch语句中,不一定使用break语句
D. break语句只能用于switch语句
解析:break为C语言关键字,又称间断语句。break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在switch语句中,也可以出现在循环语句中。default是关键字,起标号的作用,代表所有case标号之外的那些标号。default标号可以出现在语句体中任何标号位置上。在switch语句体中也可以没有default标号。
9.有以下程序
main( ){
intk=5;
while(-k)
printf(’’%d’’,k一=3);
printf(’’\\
’’);)
执行后的输出结果是(C)
A. 2
B. 4
C. 1
D. 死循环
解析:在程序语句中,k的初始值为5,进行第1次while循环后,k自减1为4,非0,执行循环体里的printf语句,输出1,此时k的值变为1。程序执行第2次循环时,k自减1变为0,为假,退出while循环语句。所以程序的最后结果为1。
10.下列选项中可作为C语言合法常量的是( )。(A)
A. -80
B. -080
C. -8e1.0
D. -80.0e
解析:所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项B中是以0开头,表示一个八进制数,而八进制数的取值范围是0~7,所以“-080”错误:在C语言中e后面的指数必须是整数,因此,选项C和D也不正确。
11.以下叙述中正确的是(B)
A. 循环发生嵌套时,最多只能两层
B. 三种循环for,while,do—while可以互相嵌套
C. 循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误
D. for语句的圆括号中的表达式不能都省略掉
解析:在一个循环体内又完整包含了另一个循环,称为循环嵌套。循环的嵌套可以多层,但每一层循环在逻辑上必须是完整的。for循环、while循环、do—while循环可以互相嵌套,但每层循环在逻辑上必须完整。而在for语句中,for语句中的表达式可以部分或全部省略,但两个”:”不可省略。
12.两个或两个以上模块之间关联的紧密程度称为(A)
A. 耦合度
B. 内聚度
C. 复杂度
D. 数据传输特性
解析:
13.有以下程序:
#include<stdio.h>
int fun(int x[],int n)
{
static int sum=0,i;
for(i=0;i<n;i++)
sum+=x[i];
return sum;
}
main( )
{
int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4);
prinff(\\(D)
A. 55
B. 50
C. 45
D. 60
解析:内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,以前调用时的数值仍然保留着。fun(a,5)的值是15,再次调用后sum=15,所以fun(b,4)=45,s=45+15=60,因此D选项正确。
14.有以下结构体说明、变量定义和赋值语句
struct
本文档预览:3600字符,共12096字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载