国家二级C++机试(选择题)模拟试卷491
选择题
1.下列描述中,不属于面向对象思想主要特征的是( )。(B)
A. 封装性
B. 跨平台性
C. 继承性
D. 多态性
解析:封装性、继承性和多态性是面向对象程序设计的三个基本特征。跨平台性不是面向对象程序设计的特征。
2.下列叙述中正确的是( )。(D)
A. 栈是一种先进先出的线性表
B. 队列是一种后进先出的线性表
C. 栈与队列都是非线性结构
D. 以上三种说法都不对
解析:栈是先进后出的线性表,队列是先进先出的线性表,二者均为线性结构。
3.有如下程序:
#include
using namespace std;
class Basel
{
public:
Basel(intd){cout<<d;}
~Basel(){}
};
class Base2
{
public:
Base2(intd){cout<<d;}
~Base2(){}
};
class Derived:public Basel,Base2
{
public:
Derived(int a,int b,int c,int d):Basel(b,Base2(a),bl(d),b2(c){}
private:
int bl:
int b2:
};
int main()
{
Derived d(1,2,3,4);
return 0;
}
执行这个程序的输出结果是( )。(D)
A. 1234
B. 2134
C. 12
D. 21
解析:本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数,对象释放时,先执行派生类的析构函数,再执行基类的析构函数。本题中定义一个派生类对象时,分别调用基类的构造函数,所以分别输出21。
4.某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为( )。(A)
A. n+1
B. n一1
C. 2n
D. n/2
解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。所以该二叉树的叶子结点数等于n+1。
5.有如下程序:
#include
using namespace std;
void fl(int&x){x++;)
void f2(int x){++x;)
hat main(){
int x=10,y=12;
f1(x);
f2(y);
cout<<x+y<<end1;
return 0;
}
运行这个程序的输出结果是( )。(B)
A. 22
B. 23
C. 24
D. 25
解析:在函数n(int&x){x++;}中,是对变量x的引用,所以当在main函数中执行“f1(x);”语句后,变量x的值等于11,而在函数void f2(int x){++x;}中,对变量x的传递调用,在main函数中执行“f2(y);”语句后,变量y的值仍然等于12,所以输出x+y的值等于23。
6.建立一个类对象时,系统自动调用( )。(B)
A. 析构函数
B. 构造函数
C. 静态函数
D. 友元函数
解析:建立一个类的对象时,编译程序需要为对象分配存储空间,进行必要的初始化。在C++中,这项工作是由构造函数来完成。
7.建立一个类对象时,系统自动调用( )。(B)
A. 析构函数
B. 构造函数
C. 静态函数
D. 友元函数
解析:建立一个类的对象时,编译程序需要为对象分配存储空间,进行必要的初始化。在c++中,这项工作是由构造函数来完成。
8.软件设计中划分模块的一个准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:耦合性与内聚性是模块独立性的两个定性标准。一般一个较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
9.下面描述中错误的是( )。(A)
A. 系统总体结构图支持软件系统的详细设计
B. 软件设计是将软件需求转换为软件表示的过程
C. 数据结构与数据库设计是软件设计的任务之一
D. PAD图是软件详细设计的表示工具
解析:软件设计是将软件需求转换为软件表示的过程;数据结构与数据库设计是软件设计的任务之一;PAD图,即问题分析图,是一种主要用于描述软件详细设计的图形工具。
10.下列关于C++函数的说明中,正确的是( )。(C)
A. 内联函数就是定义在另一个函数体内部的函数
B. 函数体的最后一条语句必须是return语句
C. 标准C++要求在调用一个函数之前,必须先声明其原型
D. 编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
解析:此题考查的是有关函数的概念。内联函数是在函数定义之前加关键字inline来声明的函数,而不是定义在另一个函数体内部的函数,故选项A)错误;无返回值的函数在执行完最后一条语句后,会自动返回而不必加入return语句,故选项B)错误;如果函数只是返回值类型不同,而其他完全相同,则不能作为函数重载来使用。
11.下列关于类和对象的叙述中,错误的是( )。(A)
A. 一个类只能有一个对象
B. 对象是类的具体实例
C. 类是对某一类对象的抽象
D. 类和对象的关系是一种数据类型与变量的关系
解析:此题考查的是类和对象的概念。类是用户定义的一种数据类型,可以使用这个类型来说明一个或多个变量,即对象。
12.下列关于纯虚函数与抽象类的描述中,错误的是( )。(C)
A. 纯虚函数是一种特殊的虚函数,它没有具体的实现
B. 抽象类是指具有纯虚函数的类
C. 一个基类中说明具有纯虚函数,该基类的派生类一定不再是抽象类
D. 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
解析:纯虚函数是在声明虚函数时被“初始化”为O的虚函数。不定义对象而只作为一种基本类型用作继承的类,称为抽象类。凡是包含纯虚函数的类都是抽象类。抽象类的作用是作为一个类族的共同基类。
13.己知函数FA调用FB,若要把这两个函数定义在同一个文件中,则( )。(D)
A. FA必须定义在FB之前
B. FB必须定义在FA之前
C. 若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
D. 若FB定义在FA之后,则FB的
本文档预览:3600字符,共7869字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载