类和对象练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类和对象
一.单项选择题
1.在声明类时,关键字private、public和protected出现____B__。
A).至少一次B).至多一次
C).public至少一次D).任意次数
2.面向对象程序设计将数据和 A 封装在一起,作为一个相互依存,不可分割的整体来处理。
A) 对数据的操作 B) 信息 C) 数组 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____。
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_____。
A).返回类型B).返回值C).this指针D).局部变量
13..关于类的静态数据成员和静态成员函数,以下不正确的叙述是A___。
A).类外可以直接引用类的静态数据成员和静态成员函数
B).类的静态数据成员不能在类的构造函数中初始化
C).类的其他函数可以调用类的静态成员函数
D).类的静态数据成员被类的所有对象共享
14.以下关于类和对象叙述正确的是C___。
A).一个类只能有一个对象
B).一个对象可以属于几个不同的类
C)对象是类的一个具体实例
D)一个类中可以有本类的对象
18.下面关于友员函数的说法中,正确的是_____B___ 。
A)友员函数是本类的一个成员函数
B)友员函数可以通过对象访问本类的所有成员
C)友员函数有this指针
D)友员函数可以直接访问本类的所有成员
20.假定AB为一个类,则执行“AB a(4),b[5],*p[2];”语句时,自动调用该类构造函数的次数为 A 。
A)6 B)7 C)9 D)11
二.阅读程序
1.写出以下程序运行结果。
#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< } 运行结果: depth=15 construncted called 450 depth=3construncted called 30 depth=3construncted called depth=15 construncted called 2.写出以下程序运行结果。 #include class A { int a,b; public:A(){ } A(int i,int j):a(i),b(j) { cout<<"constructor\n"; }