国家二级C++机试(选择题)模拟试卷506
选择题
1.下列叙述中正确的是(D)
A. 算法就是程序
B. 设计算法时只需要考虑数据结构的设计
C. 设计算法时只需要考虑结果的可靠性
D. 以上三种说法都不对
解析:所谓算法是指解题方案的准确而完整的描述。是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。算法不等于程序,也不等于计算方法。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。
2.下列数据结构中,能用二分法进行查找的是( )。(A)
A. 顺序存储的有序线性表
B. 线性链表
C. 二叉链表
D. 有序线性链表
解析:二分法查找只适应于顺序存储的有序表。有序表是指线性表中的元素按值非递减排序(即从小到大,但允许相邻元素值相等)的表。
3.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为( )。(C)
A. 9
B. 10
C. 45
D. 90
解析:线性表的长度为n,最坏情况下冒泡排序需要比较的次数为n(n-1)/2。
4.下列排序方法中,最坏情况下比较次数最少的是( )。(D)
A. 冒泡排序
B. 简单选择排序
C. 直接插入排序
D. 堆排序
解析:冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为:n(n—1)/2。而堆排序法在最坏的情况下需要比较的次数为O(log2n)。其中堆排序的比较次数最少。
5.下列叙述中正确的是(D)
A. 算法的复杂度是指算法所处理的数据量
B. 算法的复杂度是指算法程序中指令的数量
C. 算法的复杂度是指算法控制结构的复杂程度
D. 算法的复杂度包括时间复杂度与空间复杂度
解析:算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。
6.数据流程图(DFD图)是( )。(C)
A. 软件概要设计的工具
B. 软件详细设计的工具
C. 结构化方法的需求分析工具
D. 面向对象方法的需求分析工具
解析:本题考查数据流程图DFD的概念。对于面向数据流的结构化分析方法,按照DeMarco的定义,“结构化分析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档”。结构化分析方法的实质是着眼于数据流,自项向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。数据流图(DFD-Data Flow Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。由此可得数据流程图是结构化方法的需求分析工具。
7.在下列函数原型中,可以作为类AA构造函数的是( )。(D)
A. void AA(int);
B. intAA();
C. AA(int)const;
D. AA(int);
解析:此题考查的是构造函数的概念。构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。选项A、B不符合要求。选项c中函数AA,会更新对象的数据成员。
8.程序流程图中带有箭头的线段表示的是( )。(C)
A. 图元关系
B. 数据流
C. 控制流
D. 调用关系
解析:程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为程序框图。其中,用带箭头的线段表示控制流,用柜形表示加工步骤,用菱形表示逻辑条件。
9.在数据库管理技术的发展中,数据独立性最高的是( )。(C)
A. 人工管理
B. 文件系统
C. 数据库系统
D. 数据模型
解析:在人工管理阶段,数据无法共享,冗余度大,不独立,完全依赖程序;在文件系统阶段,数据共享性差;在数据库系统阶段,共享性好,独立性高。
10.下列关于对象概念的描述中,正确的是( )。(D)
A. 对象就是C语言中的结构变量
B. 对象代表着正在创建的系统中的一个实体
C. 对象是一个状态和操作(或方法)的封装体
D. 对象之间的信息传递是通过消息进行的
解析:对象之间的信息传递是通过消息进行的。对象=方法(函数)+属性(数据),而C语言的结构体其实就是不同类型数据的组合。并没有处理数据的方法。
11.对于int*pa[5];的描述,正确的是( )。(A)
A. pa是一个指向数组的指针,所指向的数组是5个int型元素
B. pa是一个指向某个数组中第5个元素的指针,该元素是int型变量
C. pa[5]表示某个数组的第5个元素的值
D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针
解析:语句“int*p[5]”表示一个数组p,它的大小是5,里面存放的数据类型是int*,也就是整型指针。称之为指针数组(从右向左解析这个表示)。
12.下列存储类标识符中,可见性与存在性不一致的是( )。(C)
A. 外部类
B. 自动类
C. 内部静态类
D. 寄存器类
解析:可见性是函数内部,存在整个程序中,第二次调用值不变。
13.有如下程序:
撕nclude
using namespace std;
class AA{
int k;
protected:
int n;
void setK(int k){this一>k=k;}
public:
void setN(int n){this一>n=n;}
};
class BB:public AA{/*类体略*/};
int main()
{
BB x;
x.n=1;//1
x.setN(2);//2
x.k=3://3
x.setK(4);//4
return 0;
}
在标注号码的四条语句中正确的是( )。(B)
A. 1
B. 2
C. 3
D. 4
解析:本题考查公用继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。所以本题中n、k和setK变为了派生类的保护成员,不能直接使用,即1、3、4错误,所以B选项正确。
14.若已定义了类Vehicle,则下列派生类定义中,错误的是( )。
B
解析:类Car不能派生自它本身。
15.下列选项可以做C++标识符的是( )。(A)
A. _256
B. fat/pig
C. delete
D. Schar
解析:标识符的命名规则:①所有标识符必须由一个字母(a~Z或A~Z)或下划线()开头;②标识符的其他部分可以用字母、下划线或数字(0~9)组成;③大小写字母表示不同意义,即代
本文档预览:3600字符,共7425字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载