国家二级C++机试(选择题)模拟试卷216
选择题
1.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)(D)
A. 3
B. 4
C. 6
D. 7
解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该二叉树为7层,每层只有一个结点。
2.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )。(B)
A. 63
B. 64
C. 6
D. 7
解析:顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。
3.内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是( )。(B)
A. 顺序内聚
B. 偶然内聚
C. 时间内聚
D. 逻辑内聚
解析:内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。内聚有如下种类,它们之间的内聚度由弱到强排列:
偶然内聚一一模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同的功能,这种模块为巧合强度模块。
逻辑内聚一一这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的参数来确定该模块应完成哪一种功能。
时间内聚一一这种模块顺序完成一类相关功能,比如初始化模块,它顺序地为变量置初值。
过程内聚一一如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。
通信内聚一一这种模块除了具有过程内聚的特点外,还有另外一种关系,即它的所有功能都通过使用公用数据而发生关系。
顺序内聚一一如果一个模块内各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,处理元素的输出数据作为下一个处理元素的输入数据,则称为顺序内聚。
功能内聚一一如果一个模块包括为完成某一具体任务所必需的所有成分,或者说模块中所有成分结合起来是为了完成一个具体的任务,此模块则为功能内聚模块。
4.下面不属于软件需求分析阶段主要工作的是( )。(A)
A. 需求变更申请
B. 需求分析
C. 需求评审
D. 需求获取
解析:在软件开发的过程中,应该尽早的制定测试计划,其中在需求分析阶段制定系统测试计划,在概要设计阶段制定集成测计划,在详细设计阶段制定单元测试计划。
5.软件需求规格说明书的作用不包括( )。(D)
A. 软件验收的依据
B. 用户与开发人员对软件要做什么的共同理解
C. 软件设计的依据
D. 软件可行性研究的依据
解析:软件规格说明书主要有三个作用:①用户和软件开发人员之间的合同;②开发人员进行设计和编程的依据:③软件工程项目验收的依据。
6.软件设计中模块划分应遵循的准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:耦合性和内聚性是模块独立性的两个定性标准,各模块的内聚性越强,则耦合性越弱。软件设计应该遵循高内聚低耦合。
7.软件详细设计产生的图如下:
(C)
A. N―S图
B. PAD图
C. 程序流程图
D. E―R图
解析:N―s图提出了用方框图来代替传统的程序流程图,所以A不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以B不对。E―R图是数据库中的用于表示E―R模型的图示工具,所以D不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。
8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。(C)
A. 一对一
B. 一对多
C. 多对多
D. 多对一
解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。
9.在下列字符中,不允许作为C++标识符的是( )。(D)
A. b
B. B
C. _
D. 2
解析:C++的标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串。
10.必须用对大括号括起来的程序段是( )。(D)
A. switch语句中的case标号语句
B. if语句的分支
C. 循环语句的循环体
D. 函数的函数体
解析:此题考查的是语句块和函数。if语句的分支和循环语句的循环体可以是一条语句也可以使一个语句块,所以不是必须用一个大括号括起来;switch语句中的case标号语句可以是一系列语句,也可以包含语句块,也不是必须用一对大括号括起来:函数的函数体必须用一对大括号括起来。
11.有如下程序:
#include
using namespace std;
class Base{
public:
virtual void Show(){tout<<’B’;}
};
class Derived:public Base{
public:
void Show(){cout<<’D’;}
};
int main(){
Base*p 1=new Derived;
Derived*p2=new Derived;
p1->Show();
p2->Show();
delete p1;
delete p2;
return 0;
}
运行这个程序的输出结果是( )。(D)
A. BB
B. BD
C. DB
D. DD
解析:在基类Base中定义了虚函数Show()输出字符‘B’,而在派生类Derived中对虚函数Show()进行了重新定义,输出字符‘D’。在主函数中对基类和派生类中的虚函数Show()进行了多态调用,此时调用的是派生类中重新定义的Show(),输出字符‘D’。
12.若有定义“int x=4,y=5;”,则表达式“y>x++?x一一:y++”.的值为( )。(C)
A. 3
B. 4
C. 5
D. 6
本文档预览:3600字符,共6421字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载