5. 类的析构函数的作用是( )。 a. 一般成员函数 b. 类的初始化 c. 对象的初始化
d. 在撤销对象占用的内存之前完成清理工作
6. 类的析构函数是在( )调用的。 a. 类创建时 b. 创建对象时 c. 删除对象时 d. 不自动调用
7. 在 c++ 中,函数原型不能标识( )。 a. 函数的返回类型 b. 函数参数的个数 c. 函数参数类型 d. 函数的功能
8. 在 c++ 程序中,对象之间的相互通信通过( )。 a. 继承实现
b. 调用成员函数实现 c. 封装实现
d. 函数重载实现
9. 对于任意一个类,析构函数的个数最多为( )。 a. 0 b. 1 c. 2 d. 3
10. 友元关系不能( )。 a. 继承
b. 是类与类的关系
c. 是一个类的成员函数与另一个类的关系 d. 提高程序的运行效率
11. 考虑函数原型void test(int a,int b=7, char=\,下面的函数调用中,属于不合法调用的是( )。 a. test(5); b. test(5,8); c. test(6,\d. test(0,0,\
12. 下面有关重载函数的说法中正确的是( )。
a. 重载函数必须具有不同的返回值类型; b. 重载函数形参个数必须不同;
c. 重载函数必须有不同的形参列表; d. 重载函数名可以不同; ??
13. 下列关于构造函数的描述中,错误的是( )。 a. 构造函数可以设置默认参数;
b. 构造函数在定义类对象时自动执行; c. 构造函数可以是内联函数; d. 构造函数不可以重载;
14. 下面对于友元函数描述正确的是( )。 a. 友元函数的实现必须在类的内部定义 b. 友元函数是类的成员函数
c. 友元函数破坏了类的封装性和隐藏性 d. 友元函数不能访问类的私有成员
15. 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( )。 a. 公有类型 b. 私有类型 c. 保护类型 d. 友元类型
二、程序分析题,给出如下程序的运行结果 #include
public: Student(int n, string nam, char s) { num=n; name=nam; sex=s; cout <<\ } ~Student() { cout <<\ void display( ) {
cout <<\ cout <<\ cout <<\ } private: int num; string name; char sex; };
int main( ) { Student stud1(10010,\ stud1.display( ); Student stud2(10011,\ stud2.display( ); return 0; }
三、程序设计题
根据题目提供的主函数和程序的运行结果思考Time类至少应该具有哪些数据成员和成员函数,特别是成员函数应该具有什么功能,并将该类设计出来。 主函数为: int main() { Time t1(12,0,0); t1.Reset(23,59,59); Time t2(t1); cout <<\< 该主函数运行后的输出为: constructor! 12:0:0 after reset, 23:59:59 copy constructor! 23:59:59 t2 23:59:59 after reset, 11:21:23 destructor! 11:21:23 destructor! 23:59:59 请根据主函数及程序的输出,完整的设计出Time类。 参考答案: 一、单项选择题 1-5 b d d c d 6-10 c d b b a 11-15 c c d c d 二、程序分析题 Constructor called. num:10010 name:Wang_li sex:f Constructor called. num:10011 name:Zhang_fun sex:m Destructor called.Zhang_fun Destructor called.Wang_li 三、程序设计题 #include class Time { public: Time(int h=0, int m=0, int s=0):hour(h),minute(m),second(s) { cout <<\ cout < { hour=h; minute=m; second=s; cout <<\ cout < 类和对象单元练习 一、单选题 1.对于任意一个类,析构函数的个数最多为( ) A.0 B.1 C.2 D.3 2.下面说法正确的是( ) A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字inline定义 3.友元关系不能( ) A.继承 B.是类与类的关系 C.是一个类的成员函数与另一个类的关系 D.提高程序的运行效率 4.在C++程序中,对象之间的相互通信通过( ) A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 5.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( ) A.类 B.对象 C.函数体 D.数据块 6.面向对象的程序设计语言必须具备的关键要素是( ) A.抽象和封装 B.抽象和多态性 C.抽象、封装、继承和多态性 D.抽象、封装和继承性 7.类的构造函数被自动调用执行的情况是在定义该类的( ) A.成员函数时 B.数据成员时 C.对象时 D.友元函数时 8.已知类A是类B的友元,类B是类C的友元,则( ) A.类A一定是类C的友元 B.类C一定是类A的友元 C.类C的成员函数可以访问类B的对象的任何成员 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++清考资料类和对象(2)在线全文阅读。
相关推荐: