国家二级C++机试(选择题)模拟试卷208
选择题
1.必须用一对大括号括起来的程序段是( )。(D)
A. switch语句中的case标号语句
B. if语句的分支
C. 循环语句的循环体
D. 函数的函数体
解析:此题考查的是语句块和函数。if语句的分支和循环语句的循环体可以是一条语句也可以使一个语句块,所以不是必须用一个大括号括起来:switch语句中的case标号语句可以是一系列语句,也可以包含语句块,也不是必须用一对大括号括起来:函数的函数体必须用一对大括号括起来。
2.字面常量42、4.2、42L的数据类型分别是( )。(C)
A. long,double,int
B. long,float,int
C. int,double,long
D. int,float,long
解析:此题考查的知识点是字面常量。对于整型字面常量,要没有超过C++中整数所能表示的范围,C+十将自动按整数来存储此数,也可以通过在整型字面常量后添加u或1来指定无符号整数或长整数来存储;对于实型字面常量,C++将自动按照双精度数来存储,也可以通过在实型字而常量后添加f来指定按单精度数存储。
3.某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为( )。(A)
A. n+1
B. n-1
C. 2n
D. n/2
解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。所以该二叉树的叶子结点数等于n+1。
4.有如下程序:
#include<iostream>
using namespace std;
class Test{
public:
Test(){n+=2;}
~Test(){n-=3;}
static int getNum(){return n;}
private:
static int n;
};
int Test::n=1;
int main()
{
Test*p=new Test;
delete p;
cout<<\\(A)
A. n=0
B. n=1
C. n=2
D. n=3
解析:语句Test*p=new Test;会调用类的构造函数Test() {n+=2;},使n的值由原来的1变为3,然后delete p调用类的析构函数~Test() {n-=3;},因为n是static型变量,所以会在3的基础上减3使得输出结果为0。
5.下列有关拷贝构造函数的描述中错误的是( )。(B)
A. 拷贝构造函数是一种构造函数
B. 拷贝构造函数与一般的构造函数一样,可以设置多个形参
C. 每一个类中都必须有一个拷贝构造函数
D. 拷贝构造函数的功能是用一个已知对象去初始化一个正在创建的对象
解析:拷贝构造函数是一个特殊的构造函数,它用一个己知的对象初始化一个正在创建的同类对象,它不能指定函数返回类型;只有一个参数,是同类的某个对象名的引用。每一个类中都必须有一个拷贝构造函数,如果类中未声明,编译器会自动生成一个公有的拷贝构造函数。
6.对如下二叉树
(D)
A. ABCDEF
B. DBEAFC
C. ABDECF
D. DEBFCA
解析:所谓后序遍历是指在访问根据结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。其简单描述为:若二叉树为空,则结束返回:否则,先后序遍历左子树,然后后序遍历右子树,最后访问根结点。对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,所以选项D)为正确答案。
7.假定MyClass为一个类,则该类的拷贝构造函数的声明语句为( )。(B)
A. MyClass(MyClassx);
B. MyClass(MyClass&x);
C. MyClass(&x);
D. MyClass(x);
解析:拷贝构造函数也是构造函数,所以函数名字为。MyClass,但它只有一个参数,这个参数是本类的对象,即x;而且采用对象的引用的形式,也就是&x。所以本题答案是B)。
8.软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于( )。(B)
A. 定义阶段
B. 开发阶段
C. 维护阶段
D. 上述三个阶段
解析:本题考查软件生命周期的相关概念。通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。还可以将软件生命周期分为软件定义、软件开发及软件运行维护三个阶段。
9.下面不属于软件需求分析阶段主要工作的是( )。(A)
A. 需求变更申请
B. 需求分析
C. 需求评审
D. 需求获取
解析:在软件开发的过程中,应该尽早的制定测试计划,其中在需求分析阶段制定系统测试计划,在概要设计阶段制定集成测试计划,在详细设计阶段制定单元测试计划。
10.下列说法中错误的是( )。(B)
A. 公有继承时基类中的public成员在派生类中仍是public的
B. 公有继承时基类中的private成员在派生类中仍是private的
C. 私有继承时基类中的public成员在派生类中是private的
D. 保护继承时基类中的public成员在派生类中是protected的
解析:此题考查的是继承时基类成员属性改变。选项B)中,公有继承时基类中的private成员在派生类中不是private的,而是不可访问的。所以选项B)错误;其他选项叙述均正确。
11.下面不属于软件测试实施步骤的是(B)
A. 集成测试
B. 回归测试
C. 确认测试
D. 单元测试
解析:软件测试实施的步骤有单元测试、集成测试和确认测试。
12.负责数据库中查询操作的数据库语言是( )。(C)
A. 数据定义语言
B. 数据管理语言
C. 数据操纵语言
D. 数据控制语言
解析:负责数据库中查询操作的数据库语言足数据操纵语言。
13.已知基类Employee只有一个构造函数,其定义如下:
Employee::Employee(int n):id(n){)
Manager是Employee的派生类,则下列对Manager的构造函数的定义中,正确的是( )。
C
解析:基类的构造函数是带有参数的,派生类从基类派生,这就需要在派生类的构造函数名后而显示的调用基类的构造函数。
14.有如下程序:
#in
本文档预览:3600字符,共6360字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载