国家二级C语言机试(选择题)模拟试卷401
选择题
1.支持子程序调用的数据结构是(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。
2.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(D)
A. 15
B. 16
C. 20
D. 0或35
解析:循环队列的队头指针和尾指针都等于15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达15,此时元素个数为0:第二种情况是队头指针第一次到达15,而尾指针第二次到达15,此时元素个数为35。
3.某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)(D)
A. 3
B. 6
C. 8
D. 12
解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该二叉树为12层,每层只有一个结点。
4.以下选项中合法的变量是(C)
A. 5a
B. A%
C. _10_
D. sizeof
解析:对于变量的命名要利用标识符命名,所谓标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。其中标识符构成:①标识符由字母、数字和下划线组成;②第一个字符必须为字母或下划线:
因此选项A中数字开头,选项B出现了非法字符%,而选项D中sizeof为关键字,不能为变量命名。
5.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:因为一间宿舍可以住多个学生,即多个学生住在一间宿舍中,但一个学生只能住一间宿舍,所以实体宿舍和学生之间是一对多的关系。
6.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为(C)
A. 9
B. 10
C. 45
D. 90
解析:线性表的长度为n,最坏情况下冒泡排序需要比较的次数为n(n-1)/2。
7.在E—R图中,用来表示实体联系的图形是( )。(C)
A. 椭圆形
B. 矩形
C. 菱形
D. 三角形
解析:在E—R图中,实体集用矩形,属性用椭圆,联系用菱形。
8.下列选项中不属于面向对象程序设计特征的是(C)
A. 继承性
B. 多态性
C. 类比性
D. 封装性
解析:面向对象程序设计的三个主要特征是:封装性、继承性和多态性。封装性即只需知道数据的取值范围和可以对该数据施加的操作,而无需知道数据的具体结构以及实现操作的算法。继承性是指使用已有的类定义作为基础建立新类的定义技术。对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性。
9.下面不属于软件设计原则的是(C)
A. 抽象
B. 模块化
C. 自底向上
D. 信息隐藏
解析:软件设计的基本原则包括抽象、信息隐藏、模块化、局部化、确定性、一致性、完备性和可验证性。
10.在源程序的开始处加上#include进行文件引用的原因,以下叙述正确的是( )。(A)
A. stdio.h文件中包含标准输入/输出函数的函数说明,通过引用此文件以便能正确使用printf、scanf等函数
B. 将stdio.h中标准输入/输出函数链接到编译生成的可执行文件中,以便能正确运行
C. 将stdio.h中标准输入/输出函数的源程序插入到引用处,以便进行编译链接
D. 将stdio.h中标准输入/输出函数的二进制代码插入到引用处,以便进行编译链接
解析:stdio.h包含标准库函数头文件,很多库函数的声明都在stdio.h这个文件中,包含之后就可以用其中的库函数,例如printf函数,scanf函数等。
11.下列描述中正确的是(A)
A. 软件交付使用后还需要再进行维护
B. 软件工具交付使用就不需要再进行维护
C. 软件交付使用后其生命周期就结束
D. 软件维护是指修复程序中被破坏的指令
解析:通常将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。软件生命周期分为软件定义、软件开发及软件运行维护三个阶段。已交付的软件投入运行后,应在运行使用中不断地维护,根据新提出的需要进行必要而且可能的扩充和删改。
12.以下选项中,当x为大于1的奇数时,值为0的表达式是(C)
A. x/2
B. x%21=0
C. x%2=0
D. x%2=1
解析:由于x为大于1的奇数,因此x%2取余的值为1,和0不相等。
13.下列描述中正确的是(A)
A. 软件测试的主要目的是发现程序中的错误
B. 软件测试的主要目的是确定程序中错误的位置
C. 为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作
D. 软件测试是证明软件没有错误
解析:软件测试是为了发现错误而执行程序的过程。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。为了达到好的测试效果,应该由独立的第三方来构造测试,程序员应尽量避免检查自己的程序。
14.以下叙述中正确的是( )。(A)
A. char,c1,c2,*c3,c4[40];是合法的变量定义语句
B. 数组下标的下限由数组中第一个非零元素的位置决定
C. 数组下标的下限由数组中第一个被赋值元素的位置决定
D. 数组下标的下限是1
解析:A选项正确,charc1,c2,*c3,c4[40]表示定义了两个字符变量c1、c2,一个字符指针c3,一个字符数组c4。数组的下限永远为0,选项B、C、D错,答案选A。
15.在软件开发中,需求分析阶段产生的主要文档是(D)
A. 软件集成测试计划
B. 软件详细设计说明书
C. 用户手册
D. 软件需求规格说明书
解析:在软件开发过程中,需求分析阶段产生的主要文档是软件需求规格说明书。
16.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:两个实体集间的联系可以有下面几种:一对一的联系、一对多或多对一的联系和多对多的联系。由于一个宿舍可以住多个学生,所以它们的联系是一对多联系。
17.一个教师讲授多门课程,一门课程由多个教师讲授。则实体教师和课程间的联系是(D)
A. 1:1联系
B. 1:m联系
C. m:1联系
D. m:n联系
解析:一个教师可讲授多门课程,一门课程可由多个教师讲授,则
本文档预览:3600字符,共10400字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载