国家二级C++机试(选择题)模拟试卷231
选择题
1.结构化程序设计的基本原则不包括( )。(A)
A. 多态性
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
2.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )。(B)
A. 63
B. 64
C. 6
D. 7
解析:顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。
3.数据流程图(DFD图)是( )。(C)
A. 软件概要设计的工具
B. 软件详细设计的工具
C. 结构化方法的需求分析工具
D. 面向对象方法的需求分析工具
解析:本题考查数据流程图DFD的概念。对于面向数据流的结构化分析方法,按照DeMarco的定义,“结构化分析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档”。结构化分析方法的实质是着眼于数据流,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。数据流图( DFD—DataFlow Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。由此可得数据流程图是结构化方法的需求分析工具。
4.下列关于this指针的叙述中,正确的是( )。(D)
A. this指针是一个隐含指针,它隐含于类的成员函数中
B. 只有在使用this时,系统才会将对象的地址赋值给this
C. 类的友元函数也有this指针
D. this指针表示了成员函数当前操作的数据所属的对象
解析:this指针是成员函数所属对象的指针,它指向类对象的地址;它隐含于每个类的非静态成员函数中;this指针只能在类的成员函数中使用,它指向该成员函数被调用的对象;静态成员函数没有this指针,因为类中只有一个静态成员函数实例,使用this指针无意义。
5.下面不属于软件设计阶段任务的是( )。(C)
A. 软件总体设计
B. 算法设计
C. 制定软件确认测试计划
D. 数据库设计
解析:软件设计阶段总体分为两部分:概要设计和详细设计,此阶段的主要任务就是将需求规格说明文档转换为软件设计文档,将需求阶段提出的问题,一一解释,形成详细设计文档,并根据功能要求,定制相应数据结构、各种流程图等,为下一步编码做准备。
6.一棵二叉树的前序遍历结果是ABCEDF,中序遍历结果是CBAEDF,则其后序遍历的结果是( )。(B)
A. DBACEF
B. CBEFDA
C. FDAEBC
D. DFABEC
解析:由于该二叉树的前序遍历结果是ABCEDF,显然A结点为根结点,所以后序遍历时A结点是最后遍历的,其后序遍历的结果为CBEFDA。
7.有如下程序:
#include
using namespace std;
class MyClass{
public:
MyClass(int x):Val(x){)
void Set(int x){val=x;)
void Print()const{cout<<\\(C)
A. 语句1
B. 语句2
C. 语句3
D. 语句4
解析:在创建类对象o bil(10)时,前面有关键字const,所以当语句3调用objl的成员函数试图修改其私有成员的数值的时候,会编译出错。
8.算法的空间复杂度是指( )。(D)
A. 算法程序的长度
B. 算法程序中的指令条数
C. 算法程序所占的存储空间
D. 算法执行过程中所需要的存储空间
解析:算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空问。
9.有如下程序:
#include
using namespace std;
class Instrument{
public:
virtual void Display()=0;
};
class Piano:public Instrument{
public:
void Display(){/*函数体程序略*/}
};
int main(){
Instrument s;
Instrument*p=0;
∥…;
return 0;
}
下列叙述中正确的是( )。(B)
A. 语句“Insturment*p=0;”编译时出错
B. 语句“Instrument s;”编译时出错
C. 类Piano中的Display函数不是虚函数
D. 类Instrument是一个虚基类
解析:由于函数Display()是一个纯虚函数,所以类Instrument是抽象类,而抽象类是不能定义对象的,因而选项B为正确选项。
10.一个工作人员可使用多台计算机,而一台计算机被多个人使用,则实体工作人员与实体计算机之间的联系是(C)
A. 一对一
B. 一对多
C. 多对多
D. 多对一
解析:如果一个工作人员只能使用一台计算机且一台计算机只能被一个工作人员使用,则关系为一对一;如果一个工作人员可以使用多台计算机,但是一台计算机只能被一个工作人员使用,则关系为一对多;如果一个工作人员可以使用多台计算机,一台计算机也可以被多个工作人员使用,则关系为多对多。
11.有如下程序:
#include
using namespace std;
class Base{
public:
virtual void Show(){tout<<’B’;}
};
class Derived:pub
本文档预览:3600字符,共8119字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载