一. 单选题(共11题,49.5分)
1. (单选题)【继承与派生概念】下列关于继承的描述中,错误的是( )。
- A. 继承是重用性的重要机制
- B. C++语言不支持多重继承
- C. 继承关系不是可逆的
- D. 继承是面向对象程序设计语言的重要特性
正确答案: B
2. (单选题)【继承与派生概念】下列关于基类和派生类的描述中,错误的是( )。
- A. 一个基类可以生成多个派生类
- B. 基类中所有成员都是它的派生类的成员
- C. 基类中成员访问权限继承到派生类中不变
- D. 派生类中除了继承的基类成员还有自己的成员
正确答案: C
3. (单选题)【派生类构造函数】下列关于派生类的描述中,错误的是( )。
- A. 派生类至少有一个基类
- B. 一个派生类可以作另一个派生类的基类
- C. 派生类的构造函数中应包含直接基类的构造函数
- D. 派生类默认的继承方式是public
正确答案: D
题解:派生类的默认继承方式有两种。用class定义派生类,默认的继承方式是private,用struct定义派生类,默认的继承方式为public。
4. (单选题)【继承方式】派生类的对象可以直接访问的基类成员是( )。
- A. 公有继承的公有成员
- B. 保护继承的公有成员
- C. 私有继承的公有成员
- D. 公有继承的保护成员
正确答案: A
5. (单选题)【派生类构造函数】派生类构造函数的成员初始化列表中,不能包含的初始化项是( )。
- A. 基类的构造函数
- B. 基类的子对象
- C. 派生类的子对象
- D. 派生类自身的数据成员
正确答案: B
6. (单选题)【继承方式】下列描述中,错误的是( )。
- A. 基类的protected成员在public派生类中仍然是protected成员
- B. 基类的private成员在public派生类中是不可访问的
- C. 基类public成员在private派生类中是private成员
- D. 基类public成员在protected派生类中仍是public成员
正确答案: D
7. (单选题)【基类与派生类的转换】下列关于子类型的描述中,错误的是( )。
- A. 在公有继承下,派生类是基类的子类型
- B. 如果类A是类B的子类型,则类B也是类A的子类型
- C. 如果类A是类B的子类型,则类A的对象就是类B的对象
- D. 在公有继承下,派生类对象可以初始化基类的对象引用
正确答案: B
8. (单选题)【多继承】下列关于多继承二义性的描述中,错误的是( )。
- A. 一个派生类的多个基类中出现了同名成员时,派生类对同名成员的访问可能出现二义性
- B. 一个派生类有多个基类,而这些基类又有一个共同的基类,派生类访问公共基类成员时,可能出现二义性
- C. 解决二义性的方法是采用类名限定
- D. 基类和派生类中同时出现同名成员时,会产生二义性
正确答案: D
9. (单选题)有如下类定义:
class MyBASE{
int k;
public:
void set(int n) {k=n;}
int get( ) const {return k;}
};
class MyDERIVED: protected MyBASE{
protected;
int j;
public:
void set(int m,int n){MyBASE::set(m);j=n;}
int get( ) const{return MyBASE::get( )+j;}
};
则类MyDERIVED中保护成员个数是()。
- A. 4
- B. 3
- C. 2
- D. 1
正确答案: B
题解:标黄的三个
10. (单选题)
#include<iostream>
using namespace std;
class A {
public:
A( ) {cout<<”A”;}
};
class B {public:B( ) {cout<<”B”;} };
class C: public A{
B b;
public:
C( ) {cout<<”C”;}
};
int main( ) {C obj; return 0;}
执行后的输出结果是()。
- A. CBA
- B. BAC
- C. ACB
- D. ABC
正确答案: D
11. (单选题)类O定义了私有函数F1。P和Q为O的派生类,定义为class P: protected O{…}; class Q: public O{…}。()可以访问Fl。
- A. O的对象
- B. P类内
- C. O类内
- D. Q类内
正确答案: C
二. 判断题(共11题,50.5分)
12. (判断题)【继承与派生概念】派生类只继承基类中的公有成员和保护成员,而不继承私有成员。
- A. 对
- B. 错
正确答案: 错
13. (判断题)【继承与派生概念】单重继承是指派生类只有一个基类的情况。
- A. 对
- B. 错
正确答案: 对
14. (判断题)【继承与派生概念】派生类还可以作基类派生出新的派生类。
- A. 对
- B. 错
正确答案: 对
15. (判断题)【继承方式】派生类中成员的访问权限与基类的继承方式有关。
- A. 对
- B. 错
正确答案: 对
16. (判断题)【继承与派生概念】继承反映了类之间“是”的关系,组合反映了类之间“有”的关系。
- A. 对
- B. 错
正确答案: 对
17. (判断题)【继承与派生概念】基类中成员在派生类中都是可以访问的。
- A. 对
- B. 错
正确答案: 错
18. (判断题)【派生类构造函数】派生类的默认构造函数不包含有直接基类的构造函数。
- A. 对
- B. 错
正确答案: 错
19. (判断题)【派生类析构函数】派生类的析构函数中不包含直接基类的析构函数。
- A. 对
- B. 错
正确答案: 错
20. (判断题)【继承方式】派生类的对象和派生类的成员 对派生类成员的访问权限是一样的。
- A. 对
- B. 错
正确答案: 错
21. (判断题)【继承方式】保护继承方式下基类的保护成员在派生类仍是保护成员。
- A. 对
- B. 错
正确答案: 对
22. (判断题)【继承方式】私有继承中基类的私有成员在派生类中还是私有的。
- A. 对
- B. 错
正确答案: 错