类和对象练习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

类和对象

一.单项选择题

1.在声明类时,关键字private、public和protected出现__ D).任意次数___。

A).至少一次B).至多一次

C).public至少一次D).任意次数

2.在声明类时省略权限隐含是____A) private________.

A) private B) public C) protected D)任意的

3.下列说法中错误的是_ C).在一个类中,只能定义一个构造函数____。

A).构造函数没有类型

B).创建对象时构造函数自动被调用

C).在一个类中,只能定义一个构造函数

D).构造函数的函数名与类同名

4..以下叙述中不正确的是___ A).类中的数据成员可以是私有或公有的,而类中的成员函数必须是公有的

_。

A).类中的数据成员可以是私有或公有的,而类中的成员函数必须是公有的

B).拷贝构造函数的作用是使用一个已经存在的对象去初始化一个新的同类的对象

C).类中的构造函数可以重载,而析构函数不能重载

D).构造函数和析构函数都应是类的公有成员函数

5.下列_ C).友元函数_____不是类的成员函数。

A).构造函数B).析构函数C).友元函数D).拷贝构造函数

6.通常拷贝初始化构造函数的参数是__ C)某个对象的引用名 ___。

A)某个对象名 B)某个对象的成员名

C)某个对象的引用名 D)某个对象的指针名

7.设Mclass是个类名,该拷贝(复制)初始化构造函数是__ D)Mclass(Mclass&)_____。

A)Mclass( )B) Mclass(Mclass)

C)Mclass(Mclass *)D) Mclass(Mclass&)

8.下列对析构函数的描述中,正确的是A)一个类中只能定义一个析构函数___。

A)一个类中只能定义一个析构函数

B)析构函数名与类名不同;

C)析构函数的定义只能在类体内

D)析构函数可以有一个或多个参数

9.以下对析构函数描述正确的是__ C)无形参,也不能重载____。

A).析构函数返回类型应是void B).函数体内不能有循环语句

C)无形参,也不能重载D).函数体内必须有delete语句

10.关于成员函数,以下叙述中不正确的是____ A).成员函数一定是内联函数___。

A).成员函数一定是内联函数

B).成员函数可以重载

C).成员函数的参数可以设置默认值

D).成员函数可以是另一个类的友元函数

11.在面向对象的程序设计中,作用域符(::)的功能是_ D).标识某个成员函数是属于哪个类的____。

A).标识作用域的级别B).指出作用域的大小

C) 定义作用域的大小D).标识某个成员函数是属于哪个类的

12.静态成员函数没有__ C).this指针____。

A).返回类型B).返回值C).this指针D).局部变量

13..关于类的静态数据成员和静态成员函数,以下不正确的叙述是__ A).类外可以直接引用类的静态数据成员和静态成员函数

_。

A).类外可以直接引用类的静态数据成员和静态成员函数

B).类的静态数据成员可以在类的构造函数中使用

C).类的其他函数可以调用类的静态成员函数

D).类的静态数据成员被类的所有对象共享

14.以下关于类和对象叙述正确的是_ C)对象是类的一个具体实例(实体)__。

A).一个类只能有一个对象

B).一个对象可以属于几个不同的类

C)对象是类的一个具体实例(实体)

D)一个类中可以有本类的对象

18._ C) 析构函数_______将在对象生存期结束时由系统自动调用。

A) 构造函数B) 成员变量函数C) 析构函数D) 虚函数

19.下面关于友员函数的说法中,正确的是___D)友员函数可以直接访问本类的所有成员

____ 。

A)友员函数是本类的一个成员函数

B)友员函数可以通过对象访问本类的所有成员

C)友员函数有this指针

D)友员函数可以直接访问本类的所有成员

20.假定AB为一个类名,则执行AB a(4),b[5],*p; 语句时,自动调用该类构造函数的次数为B)6 。

A)5 B)6 C)7 D)9

二.阅读程序, 写出以下程序运行结果。

1.#include

class myclass

{ int a,b;

public:

myclass (int i=0,int j=0);

void show( );

};

myclass:: myclass(int i,int j)

{ a=i; b=j; }

void myclass::show( )

{ a+=b; b+=a;

cout<<”a=”<

}

void main()

{ myclass ob1;

ob1.show();

myclass ob2(2);

ob2,show();

myclass ob3(2,5);

ob3.show();

}

运行结果:

2.

#include

class cube

{ public:

cube(int ht=2,int wd=5,int dp=3)

{ height=ht; width=wd; depth=dp;

cout<<″depth=″<

}

~cube() { cout<<″depth=″<

int volume() {return height *width*depth;}

private: int height,width,depth;

};

void main()

{ cube cone(10,20,15), ctwo;

cout<

cout<

}

运行结果:

3.写出以下程序运行结果。

#include

class A

{ int a,b;

public:A(){ }

A(int i,int j):a(i),b(j)

{ cout<<"constructor\n"; }

~A() { cout<

};

void main()

{ A ob2(2,5);

A ob1(ob2);

相关文档
最新文档