面向对象程序设计综合练习题 下载本文

5-5.基类和派生类可以分别称为( B )。

A.“大类”和“小类” B.“父类”和“子类” C.“小类”和“大类” D.“子类”和“父类” 5-6.派生类的成员函数可以直接访问基类的( B )成员。

A. 所有 B. 公有和保护 C. 保护和私有 D. 私有 5-7.派生类可以访问其基类的( D )。 A.公用成员 B.保护成员

C.私有派生 D.公用和保护成员

5-8.对于类中定义的成员,其隐含访问权限为( C )。 A.public B.ptotected C.private D.static

5-9.在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认为( A )方式。

A. 私有继承 B. 非私有继承 C. 保护继承 D. 公用继承

5-10. 在公用继承的情况下,基类成员在派生类中的访问权限( B ) A.受限制 B.保持不变 C.受保护 D.不受保护 5-11.对于公用继承,基类的公有和保护成员在派生类中将( D )成员。 A. 全部变成公有 B. 全部变成保护

C. 全部变成私有 D. 仍然相应保持为公有和保护

5-14.在公用继承的情况下,基类非私有成员在派生类中的访问权限( B )。 A.受限制 B.保持不变 C.受保护 D.不受保护 5-15.对于公有继承,基类中的私有成员在派生类中将 ( C )。

A. 能够直接使用成员名访问 B. 能够通过成员运算符访问 C. 仍然是基类的私有成员 D. 变为派生类的私有成员

5-16.当保护继承时,基类的( B )在派生类中成为保护成员,在类作用域外不能够通过派生类的对象来直接访问该成员。

A. 任何成员 B.公有成员和保护成员 C. 保护成员和私有成员 D.私有成员

5-17.下面描述中,表达错误的是( B )。

A.公用继承时基类中的public成员在派生类中仍是public的 B.公用继承时基类中的private成员在派生类中仍是private的 C.公用继承时基类中的protected成员在派生类中仍是protected的 D.私有继承时基类中的public成员在派生类中是private的 5-18.从一个基类派生出的各个类的对象之间( C )。 A.共享所有数据成员,每个对象还包含基类的所有属性

B.共享部分数据成员,每个对象还包含基类的所有属性

C.不共享任何数据成员,但每个对象还包含基类的所有属性 D.共享部分数据成员和函数成员

5-19.建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为( C )的构造函数。

A. 自己所属类、对象成员所属类、基类 B. 对象成员所属类、基类、自己所属类 C. 基类、对象成员所属类、自己所属类 D. 基类、自己所属类、对象成员所属类 5-20.假设定义了以下的类:

- 9 -

Class A

{public: int a;

viod display(); }; Class B {public: int a;

viod display(); };

Class C: Class A, Class b {public: int b;

viod show();

};

如果在main函数中定义了C类对象c1,并调用基类A的数据成员a并对其赋初值3,然后成员函数display,应使用( C )语句。

A.c1.a=3; c1.display() B.c1::a=3; c1::display()

C.c1.A::a=3; c1.A::display() D.c1.A->a=3; c1.A->display()

5-21.当派生类中有和基类一样名字的成员时,一般来说,( B )

A. 将产生二义性 B. 派生类的同名成员将覆盖基类的成员 C. 是不能允许的 D. 基类的同名成员将覆盖派生类的成员

5-22.C++中的虚基类机制可以保证:( D )。

A. 限定基类只通过一条路径派生出派生类

B. 允许基类通过多条路径派生出派生类,派生类也就能多次继承该基类 C. 当一个类多次间接从基类派生以后,派生类对象能保留多份间接基类的成员 D. 当一个类多次间接从基类派生以后,其基类只被一次继承 5-23.下列虚基类的声明中正确的是( D )。 A.class virtual B:public A B.virtual class B:public A C.class B:public A virtual D.class B: virtual public A 5-24.若类A和类B的定义如下:

class A

{

int i,j; public:

A(int m,int n):i(m),j(n){} int Geti(){return i;} };

class B:public A { int k;

- 10 -

public:

B(int m,int n,int u):A(m,n),k(u){} void Make(){k=i*j;} };

int main() {

B b(1,2,3); return 0;

}

则上述定义中,( A )是非法的表达式。

A.k=i*j; B.int k; C.return i; D.void Make() 5-25.以下说法中,错误的是( D ) A.派生类对象可以向基类对象赋值

B.派生类对象可以替代基类对象向基类对象的引用进行赋值或初始化

C.如果函数的参数是基类对象或基类对象的引用,实参可以用子对象的实参 D.可以用基类对象的指针指向派生类对象,并访问派生类中的全部成员

6-1.面向对象方法的多态性是指( C )。

A. 一个类可以派生出多个特殊类

B. 一个对象在不同的运行环境中可以有不同的变体

C. 针对一消息,不同的对象可以以适合自身的方式加以响应 D. 一个对象可以是由多个其他对象组合而成的

6-2.从系统实现的角度看,多态性分为静态多态性和动态多态性。以下说法错误的是( C )。

A.静态多态性是编译时的多态性

B.函数重载实现的多态性是静态多态性 C.通过虚函数实现的多态性是静态多态性 D.动态多态性是运行时的多态性

6-3.关于消息,下列说法中不正确的是( B )。

A. 发送消息的对象请求服务,接受消息的对象提供服务 B. 消息的发送者必须了解消息的接收者如何响应消息

C. 在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用 D. 每个对象只能接收某些特定格式的消息

6-4.编译时的多态性使用什么获得?( A )

A.重载函数 B.继承 C.虚函数 D.B和C 6-5.运行时的多态性使用什么获得?( C )

A.重载函数 B.继承 C.虚函数 D.B和C

6-6.虚函数的定义是在基类中进行的,定义时需要冠以关键字( C )。 A. static B. friend C. virtual D. public

6-7.C++编译系统确定调用是具体对象的过程称为关联。C++有( B )关联。 A.1种 B.2种 C.3种 D.4种

6-8. 调用一个成员函数时,使用动态关联的情况是( B )。

A.通过对象调用一虚函数 B.通过指针或引用调用一虚函数

- 11 -

C.通过对象调用一静态函数 D.通过指针或引用调用一静态函数 6-9.C++类体系中,不能被派生继承的有( C )。

A.转换函数 B.构造函数 C.虚函数 D.静态成员函数 6-10.C++语言建立类族是通过( B )。

A.类的嵌套 B.类的继承 C.虚函数 D.抽象类 6-11.在下面的4个关键字中,( A )是用来说明虚函数的。 A.virtual B.public C.protected D.private 6-12.实现运行时的多态性要使用( D )。

A.重载函数 B.析构函数 C.构造函数 D.虚函数 6-13.关于纯虚函数,下列说法不正确的是( C )。 A.纯虚函数是在声明虚函数时被初始化为0的函数 B.纯虚函数没有函数体

C.纯虚函数可以被调用

D.如果在一个类中声明了纯虚函数,该虚函数中在派生类中仍有可能为虚函数 6-14.如果一个类至少有一个纯虚函数,那么该类称为( A ).。

A.抽象类 B.虚基类 C.派生类 D.以上都不对

7-1.C++的输入输出不包括( )。

A.标准的输入输出 B.文件的输入输出

C.字符串输入输出 D.显示屏和打印机的输入输出 7-2.下面的类中,( )不是由抽象基类ios直接派生出来的。 A.istream B.ostream C.iostream D.fstreambase 7-3.在C++中,抽象基类ios直接派生出( )。 A.istrean, ostream, ifstream,ofstream B.istrean, ostream, istrstream,ostrstream C.istrean, ostream, iostream

D.istrean, ostream, fstreambase,strstreambase

7-4.cin是某个类的标准对象,该类是( B )。

A.ostream B.istream C.stdout D.stdin 7-5.cout是某个类的标准对象,该类是( A )。 A.ostream B.istream C.stdout D.stdin 7-6.关于cout流对象,以下说法不正确的是( D )。 A.cout是ostream流类对象

B.用“cout<<”输出数据时,不须考虑数据是什么类型 C.当向cout流插入一个endl时,输出换行

D.用“cout<<”可以直接输出用户声明的类型的数据。 7-7.在iostream文件中定义了4种流对象,它们是( A )。 A.cin, cout, cerr, clog B.cin, cout, cerr, put C.cin, cout, put, get D.cin, cout, cerr, get

7-8.在C++中串流类是在头文件strstream.h中定义的,下列不属于串流类的是( C )。 A. strstream B. ostrstream C. ofstream D. istrstream

7-9.在C++程序中使用的cin标识符是系统类库中定义的( A )类中的一个对象。 A. istream B. ostream C. iostream D. fstream

7-10.在C++程序中使用的cout标识符是系统类库中定义的( B )类中的一个对象。

- 12 -