国家二级(C++)机试模拟试卷113
选择题
1.下列数据结构中,不能采用顺序存储结构的是( )。(A)
A. 非完全二叉树
B. 堆
C. 队列
D. 栈
解析:根据完全二叉树的性质6,满二叉树和完全二叉树可以按层序进行顺序存储,但一般的二叉树不适用。堆可以用一维数组来存储也可以用完全二叉树来直观地表示堆的结构。队列、栈本身就是顺序存储的。故本题答案为A选项。
2.下列叙述中错误的是( )。(B)
A. 二-X链表是二叉树的存储结构
B. 循环链表是循环队列的存储结构
C. 栈是线性结构
D. 循环队列是队列的存储结构
解析:循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。循环链表是用不连续的存储单元存储数据,它有一个表头结点,队头指针指向表头结点,最后一个结点的指针域指向表头结点。二叉链表是树的二叉链表实现方式。栈是一种特殊存取方式的线性表。故本题答案为B选项。
3.循环队列的存储空间为Q(1:100),初始状态为front=rear=100。经过一系列正常的人队与退队操作后,front=rear=99,则循环队列中的元素个数为( )。(D)
A. 1
B. 2
C. 99
D. 0或100
解析:在循环队列中,用队尾指针real指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。在循环队列中进行出队、入队操作时,头尾指针仍要加1,朝前移动。只不过当头尾指针指向向量上界时,其加1操作的结果是指向向量的下界0。由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。故本题答案为D选项。
4.某系统结构图如下图所示
(A)
A. 5
B. 4
C. 2
D. 1
解析:系统结构图的宽度指整体控制跨度(横向最大模块数)的表示。本题中,模块数最多的是第3层,即“功能X.X”的模块个数就是宽度,有5个。故本题答案为A选项。
5.软件测试用例包括( )。(C)
A. 被测程序和测试规程
B. 测试计划和测试数据
C. 输入数据和预期输出结果
D. 输入数据和输出数据
解析:测试用例(Test Case)是为测试设计的数据,由测试输入数据和与之对应的预期输出结构两部分组成。故本题答案为C选项。
6.软件生存周期中,解决软件“怎么做”的阶段是( )。(A)
A. 软件设计
B. 需求分析
C. 软件测试
D. 可行性研究
解析:软件设计是软件工程的重要阶段,是一个把软件需求转换为软件表示的过程。软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即解决软件“怎么做”的问题。故本题答案为A选项。
7.用树型结构表示实体之间联系的模型是( )。(B)
A. 关系模型
B. 层次模型
C. 网状模型
D. 运算模型
解析:用树形结构表示实体及其之间联系的模型称为层次模型。在层次模型中,结点是实体,树枝是联系,从上到下是一对多的关系。故本题答案为B选项。
8.关系数据模型的三个组成部分中不包括( )。(D)
A. 关系的完整性约束
B. 关系的数据操纵
C. 关系的数据结构
D. 关系的并发控制
解析:关系数据模型的三个组成部分:数据结构,操作集合(数据操纵),完整性约束。故本题答案为D选项。
9.现有表示患者和医疗的关系如下:P(P#,Pn,Pg,By),其中脚为患者编号,Pn为患者姓名,Pg为性别,By为出生日期,Tr(P#,D#,Date,Rt),其中D#为医生编号,Date为就诊日期,Rt为诊断结果。检索在1号医生处就诊的病人姓名的表达式是( )。(A)
A. πPn(πP#(σD#=1(Tr))B. πP#(σD#=1(Tr))
C. πPn(P)
D. πPn(Tr解析:π表示投影运算,针对属性;σ表示选择运算,针对元组;
表示自然连接。首先在Tr表中选择D#为1的记录σD#=1(Tr),并检索这些记录中患者的编号πP#(σD#=1(Tr)),检索结果与表P进行自然连接生成中间表πP#(σD#=1(Tr))
P,最后在中间表中检索患者的姓名πPn(πP#(σD#=1(Tr))
10.下列选项中,不属于C++关键字的是( )。(D)
A. namespace
B. public
C. struct.
D. abstract
解析:namespaee是定义命名空间的关键字,选项A正确;public关键字在类定义体中指定公共成员,在类继承体系中指定公有继承,选项B正确;struct关键字定义结构体类型,选项C正确;adstruct不属于C++关键字,选项D错误。故本题答案为D选项。
11.下列数组定义中错误的是( )。(A)
A. char s[5]=\\
B. char s[6]=\\
C. char s[7]=\\
D. chat s[]=\\
解析:常量字符串“ABC[)E”中,结尾还保存一个空字符’\0’,总共有6个字符,所以字符数组s使用常量字符串初始化时,s的数组大小必须大于等于6,选项B、c正确;另外在对字符数组初始化时,若省略数组长度,系统会默认将数组长度设置为常量字符串的长度6,选项D正确;选项A中数组长度5不够容纳该常量字符串,所以A错误。故本题答案为A选项。
12.下列语句中,未起到定义作用的是( )。(B)
A. char ch;
B. void fun();
C. int y=2015;
D. typedef double price
解析:选项A定义一个字符变量ch;选项C定义整型y,并初始化为2015;选项D定义一种类型名price,该类型等价于double;选项B声明了函数fun,该函数没有参数,没有返回值,声明不是定义,选项B错误。
本文档预览:3600字符,共20438字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载