第八章 类和对象 复习题 下载本文

内容发布更新时间 : 2024/5/10 23:43:41星期一 下面是文章的全部内容请认真阅读。

第八章 类和对象 复习题

1.系统为每个类提供一个this指针,在类的成员函数内,通过this指针可以间接访问这个类的( )

A.在public段中声明的友元 B.所有成员

C.友元类的public成员 D.所有派生类中的public成员 2.如果在class类的定义中既不指定private,也不指定public,则系统就默认为( ) A. private

B. public D. 不确定

C. protected

3. 对静态数据成员的描述, 正确的是( ) A. 静态数据成员可以在类体内进行初始化 B. 静态数据成员不可以被类的对象调用 C. 静态数据成员不能受private控制符的作用 D. 静态数据成员可以直接用类名调用 4. 下面叙述错误的是( )

A. 基类的protected成员在派生类中仍然是protected的 B. 基类的protected成员在public派生类中仍然是protected的 C. 基类的protected成员在private派生类中是private的 D. 基类的protected成员不能被派生类的对象访问 5.对于友元函数的描述,正确的是( ) A. 友元函数的实现必须在类的内部定义 B. 友元函数是类的成员函数

C. 友元函数破坏了类的封装性和隐藏性 D. 友元函数不能访问类的私有成员 6.关于内联函数的描述,正确的是( )

A.使用内联函数可以缩短程序代码,减少占用的内存空间

B.使用内联函数可以减少函数调用时入栈和出栈的时间和空间开销,但是会使程序的代码量增加

C.内联函数只能在类的内部进行声明和定义,不能作为全局函数 D.内联函数可以做虚函数 7. 类是对象的( )

A. 具体 B. 抽象

C. 封装 D. 多态

8. struct声明类时,若不作private或public声明,系统默认为( ) A. private B. public C. protected D. 不能确定 9.引入内联函数的主要目的是( ) A.缩短程序代码,少占用内存空间

B.既可以保证程序的可读性,又能提高程序的运行效率 C.占用内存空间少,执行速度快 D.使程序的结构比较清晰

10. 类的具体表现是通过定义 来操作的。对象 11.说法错误的是( )

A.一个类是由一批数据以及对其操作的函数组成 B.类中数据和函数可以分为private和public两大类 C.具有“类”类型特征的变量称为“对象”

D.类中私有成员函数可以被其他类中的成员函数所调用

12.如果用struct声明类时,对其成员既不指定private,也不指定public,则

系统就默认 为( )

A. private B. public C. protected D. 不确定 13.在声明类类型时,声明的次序是( ) A.先声明private部分,再声明public部分 B. 先声明public部分,再声明private部分

C. 声明public部分和声明private部分不能同时出现 D. 既可以先声明private部分,也可以先声明public部分 14. 关于类的友元函数的描述,正确的是 ( ) A.友元函数可以被继承

B.一个类的友元函数可以访问这个类的所有成员 C.一个类的友元函数必须在这个类中定义成内联函数 D.一个类的友元函数的返回类型必须是这个类的类型标识符 15.在一个类中( )

A.只能有数据成员 B.只能有成员函数

C.可以有数据成员和成员函数 D.只能有数据成员或只能有成员函数

16.下列特性中,不是面向对象程序设计的特征的是( ) A.继承

B.内联函数 D.封装

C.多态性

17.在声明类类型时,声明的次序是( ) A.先声明private部分,再声明public部分 B. 先声明public部分,再声明private部分

C. 声明public部分和声明private部分不能同时出现 D. 既可以先声明private部分,也可以先声明public部分 18.下列说法正确的是( )

A. 类是对象的抽象,对象是类的具体实例 B. 对象是类的抽象 C.类是对象的具体实例

D. 对象是类的模板19. 类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的数据成员,共同行为被描述为类中的 。 成员函数

20. 在一个函数的定义或声明前加上关键字 时,该函数就声明为内联函数。 inline

21. 单目运算符作为类成员函数重载时没有参数;双目运算符作为

重载时只需声明其右操作数,作为友元函数重载时需声明全部操作数。 成员函数

22. 当用protected继承从基类派生一个类时,基类的public成员成为派生类的

protected成员,protected成员成为派生类的 成员。在类定义中,将 置于虚函数的函数原型的末尾可以将该函数声明为纯虚函数。protected =0

23. 类是对具有共同属性和行为的一类事物的抽象描述, 共同属性被描述为类

中的 ,共同行为被描述为类中的成员函数。 数据成员 24. 如果一个数组中的每个元素都是同一个类的对象,则该数组被称

为 。对象数组

25. 在C++语言中,每个对象都有一个隐含的指针叫做this指针,该指针指

向 。对象自身

26. 当一个类对象的成员函数被调用时,该成员函数的 指针指向调用它的对象。 this

27. 在结构定义中,数据和成员函数默认权限是公有的。在类定义中,数据和成员

函数默认权限是 。私有的

28. 对类中的成员函数和属性的访问是通过 、protected和

这3个关键字来控制的。public private 29.仔细阅读程序,在题后写出其运行结果。

#include

using namespace std; class Box {public:

Box(int w=10,int h=10,int len=10); int volume(); private: int height; int width; int length; };

Box::Box(int w,int h,int len) {height=h; width=w; length=len; }

int Box::volume()

{return(height*width*length); } int main() {

Box box1;

cout<<\ Box box2(5);

cout<<\ Box box3(5,3);

cout<<\ Box box4(5,3,2);

cout<<\ return 0; }

运行结果: 1000 (2分) 500 (1分) 150 (1分)

30 (1分)

30. 根据输出结果,在程序中填入正确的语句。

class Instrument{ public:

virtual void Print() const{cout<<\};

class Piano:public Instument{ public:

void Print() const{ cout<<\};

class Guitar :public InstruIment{ pub1ic:

void Print() const{cout<<\};

void Tone( ){ }

void main(){

Guitar g; Tone(g); Piano p; Tone(p); }

输出结果为: Guitar::Print Piano::Print

33. #include

Instrument &obj obj.Print() ;

31.下列程序通过把类Distance定义为类Point的友元类来实现计算两点之间距

离的功能。请完成该程序。 #include iostream.h> #include class Point{ public:

;