面向对象程序设计复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》复习题
一、单项选择题
1. (A)是面向对象系统包含的要素。
A、类
B、多态
C、友元
D、重载
2. 下列对常量的定义中,错误的是(C)。
A、MyClass const obj(3,4);
B、char * const p="hello";
C、int &ref=2;
D、void show() const;
3. 若有如下函数声明:void Fun(int x);,则下列(D)能与该函数形成重载。
A、void Fun(int y);
B、void Fun(int x,int y='1');
C、int Fun(int x);
D、void Fun(int) const;
4. 下列对构造函数和析构函数的描述中,错误的是(B)。
A、构造函数可以重载
B、析构函数名与类名相同
C、构造函数中可以设置参数的缺省值
D、类中只有一个析构函数
5. 下列对友元的描述中,错误的是(C)。
A、友元破坏了类的封装性
B、友元提高了程序的运行效率
C、友元可以在类外声明和定义
D、友元能够访问类中的私有成员
6. 下列对继承的描述中,正确的是(A)。
A、公有派生类对象能够访问基类的公有成员
B、派生类只继承了基类的公有成员和保护成员
C、派生类对象不能访问基类的保护成员
D、派生类不改变基类成员的访问权限
7. 程序中,编译时出错的语句是(D)。
class Base{ };
class Derived : public Base { };
Derived objD1;
Base objB=objD1; //A
Base *pb=&objD1; //B
Base &refB=objD1; //C
Derived objD2=objB; //D
8. 下面对派生类的描述中,正确的是(B)。
A、派生类是对基类的抽象
B、一个派生类可以作为另一个派生类的基类
C、派生类只能有一个直接基类
D、派生类的缺省继承方式是public
9. 实现动态联编必须通过(A)调用虚函数。
A、基类引用
B、类名
C、对象名
D、构造函数
10. C++流中重载的运算符>>,是一个(B)。
A、用于输出操作的非成员函数
B、用于输入操作的非成员函数
C、用于输出操作的成员函数
D、用于输入操作的成员函数
11. (A)不是基于对象系统包含的要素。
A、多态
B、对象
C、类
D、继承
12. 下列对常量的定义中,错误的是(C)。
A、int const size=10;
B、char * const p="Good Luck";
C、void const print();
D、const MyClass obj(10,10);
13. 设Address表示整型变量x的地址,则下列语句执行后的输出结果为(D)。
int x=100,&r=x;
cout< A、Address-100 B、100-Address C、Address-Address D、100-100 14. 若函数原型为void Fun(int x=9,int y=8,char z='7'),则下列调用错误的是(B)。 A、Fun() B、Fun(“hello”) C、Fun(1,2) D、Fun(2,4, 'a') 15. 若有如下函数声明:void Fun(int x);,则下列(C)不能与该函数形成重载。 A、void Fun(int x,int y); B、void Fun(double x); C、void Fun(int x,int y=1); D、void Fun(int x) const; 16. 下列对构造函数和析构函数的描述中,正确的是(A)。 A、析构函数不可以重载 B、构造函数不能定义为内联函数 C、构造函数中不能设置参数的缺省值 D、析构函数名与类名相同 17. 下面对静态成员的描述中,错误的是(C)。 A、静态数据成员的提出是为了解决数据共享问题 B、静态数据成员的初始化在类体外进行 C、类的不同对象有不同的静态数据成员值 D、静态成员函数可以直接访问类中的静态数据成员 18. 下列对友元的描述中,正确的是(D)。 A、友元可以在类外声明和定义 B、友元降低了程序的运行效率 C、友元不能访问类中的保护成员 D、友元破坏了类的封装性 19. 下列对继承的描述中,错误的是(C)。 A、派生类对象不能访问基类的保护成员 B、派生类对基类成员的访问权限随着继承方式而改变 C、派生类成员可以访问基类的私有成员 D、派生类继承了基类的所有数据成员 20. 程序中,编译时出错的语句是(D)。 class Base{ }; class Derived : public Base { }; Derived objD1; Base objB=objD1; //A Base *pb=&objD1; //B Base &refB=objD1; //C