一、单选题(共 30 道试题,共 60 分。)V
1. 定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为( )。
A. int *p=new int[30];
B. int *p=new int(30);
C. int *p=new [30];
D. *p=new int[30];
满分:2 分
2. 下面的类中,( )不是由抽象基类ios直接派生出来的。
A. istream
B. ostream
C. iostream
D. fstreambase
满分:2 分
3. 对于一个类的构造函数,其函数名与类名( )。
A. 完全相同
B. 基本相同
C. 不相同
D. 无关系
满分:2 分
4. 下列的符号常变量定义中,错误的定义是( )。
A. const M=10;
B. const int M=20;
C. const char ch;
D. const bool mark=true;
满分:2 分
5. 当一个类对象离开它的作用域时,系统自动调用该类的( )。
A. 无参构造函数
B. 带参构造函数
C. 拷贝构造函数
D. 析构函数
满分:2 分
6. 假定一个类的构造函数为 “A(int aa, int bb) {a=aa; b=aa*bb;}”,则执行 “A x(4,5);”语句后,x.a和x.b的值分别为( )
A. 4和5
B. 5和4
C. 4和20
D. 20和5
满分:2 分
7. 设置虚基类的目的是()。
A. 简化程序
B. 消除二义性
C. 提高运行效率
D. 减少目标代码
满分:2 分
8. 基类和派生类可以分别称为()。
A. “大类”和“小类”
B. “父类”和“子类”
C. “小类”和“大类”
D. “子类”和“父类”
满分:2 分
9. 一个类的析构函数通常被定义为该类的( )成员。
A. 私有
B. 保护
C. 公用
D. 友元
满分:2 分
10. 下列对继承关系的描述中,( )是正确的。
A. 在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;
B. 在公有继承中,基类中只有公有成员对派生类的对象是可见的;
C. 在私有继承中,基类中只有公有成员对派生类是可见的;
D. 在私有继承中,基类中的保护成员对派生类的对象是可见的;
满分:2 分
11. 假定AB为一个类,则执行 “AB *px=new AB[n];”语句时将( )。
A. 动态分配一个数组
B. 动态分配一个对象
C. 静态分配一个数组
D. 静态分配一个对象
满分:2 分
12. 下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是()。
A. Value operator+(Value, Value);
B. Value operator+(Value,int);
C. Value &operator+(Value, Value*);
D. Value &operator+(Value&, Value&);
满分:2 分
13. 如果一个类至少有一个纯虚函数,那么该类称为().。
A. 抽象类
B. 虚基类
C. 派生类
D. 以上都不对
满分:2 分
14. 已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给A1的m赋值为5,( )是正确的。
A. A1.p = 5;
B. A1->p = 5;
C. A1.*p = 5;
D. *A1.p = 5;
满分:2 分
15. 在一个类中可以对一个运算符进行( )重载。
A. 1种
B. 2种以下
C. 3种以上
D. 多种
满分:2 分
16. 在创建派生类对象时,构造函数的执行顺序是()。
A. 对象成员构造函数、基类构造函数、派生类本身的构造函数
B. 派生类本身的构造函数、基类构造函数、对象成员构造函数
C. 基类构造函数、派生类本身的构造函数、对象成员构造函数
D. 基类构造函数、对象成员构造函数、派生类本身的构造函数
满分:2 分
17. 从系统实现的角度看,多态性分为静态多态性和动态多态性。以下说法错误的是( )。
A. 静态多态性是编译时的多态性
B. 函数重载实现的多态性是静态多态性
C. 通过虚函数实现的多态性是静态多态性
D. 动态多态性是运行时的多态性
满分:2 分
18. 不能参与重载的运算符是()。
A. 类
B. 函数
C. 函数模板
D. 运算符
满分:2 分
19. ( )是给变量取一个别名,它引入了变量的同义词。
A. 指针
B. 引用
C. 枚举
D. 结构
满分:2 分
20. 在关键字public后面定义的成员为类的(??)成员。
A. 私有
B. 公用
C. 保护
D. 任何
满分:2 分
21. 类的构造函数是在定义该类的一个(??)时被自动调用执行的。
A. 成员函数
B. 数据成员
C. 对象
D. 友元函数
满分:2 分
22. 假定AB为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的( )。
A. 无参构造函数
B. 带参构造函数
C. 赋值重载函数
D. 拷贝构造函数
满分:2 分
23. 假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为( )。
A. abc
B. *this
C. this
D. this&
满分:2 分
24. 对于一个类的析构函数,其函数名与类名( )。
A. 完全相同
B. 完全不同
C. 只相差一个字符
D. 无关系
满分:2 分
25. 下面有关重载函数的说法中正确的是( )。
A. 重载函数必须具有不同的返回值类型
B. 重载函数形参个数必须不同
C. 重载函数必须有不同的形参列表
D. 重载函数名可以不同
满分:2 分
26. 下列特性不是面向对象程序设计语言所特有的是( )。
A. 数据封装
B. 继承
C. 多态性
D. 模板
满分:2 分
27. 下列说法不正确的是()。
A. 在类中,成员的默认访问特性是私有的。
B. 类封装了数据和操作。
C. 类实质上是一种数据类型。
D. 在类的定义中,必须包含private、publi
E. protected三种存取方式对应得部分。
满分:2 分
28. 假定一个类的构造函数为 “B(int ax, int bx): a(ax), b(bx) {}”,执行 “B x(1,2),y(3,4);x=y;”语句序列后x.a的值为( )。
A. 1
B. 2
C. 3
D. 4
满分:2 分
29. C++语言是从早期的C语言逐步发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是( )。
A. 面向过程
B. 面向对象
C. 安全性
D. 复用性
满分:2 分
30. 下列关于类的访问控制机制说法错误的是()。
A. 静态数据成员通常都定义为公有类型。
B. 一个对象的私有成员对于同类的另一个对象是可见的
C. 友元机制破坏了类的封装性。