1、C+面向对象程序设计习题解答陈腊梅 目录第一章 面向对象程序设计概述 .错误! 未定义书签。第二章对 C 语言的基础扩充 .错误! 未定义书签。第三章 类和对 象的初步探讨 .错误! 未定义书签。第四章 类和对象的进一步解析 .错误! 未定义书签。第五章 在对象中使用运算符 运算符重载 .错误! 未定义书签。第六章 继承与派生 .2第七章 多态性与虚函数 .2 第一章 面向对象程序设计概述一、选择题1 2 3 4 5 6 7 8 9 10 11 12A D D D C D C C A A C C二、填空题1、多态性2、成员函数3、抽象4、处理这些数据的操作或处理这些数据的函数5、面向对象分析、
2、面向对象分析、面向对象编程、对象对象测试、面向对象维护第二章对 C 语言的基础扩充1、 选择题1 2 3 4 5 6 7 8 9 10D D C A D C C D A D2、 程序阅读题1 答案a=639,b=78,c=122 答案a=5,b=8a=8,b=53 答案104 答案x=20.6 y=5 z=Ax=216.34 y=5 z=Ax=216.34 y=2 z=Ax=216.34 y=2 z=E5 答案ic=11fc=7.82ic=5fc=2.153、 判断下列描述的正确性1 2 3 4 5 6 7 第三章 类和对象的初步探讨一、选择题1 2 3 4 5 6C D B B A D二、填
3、空题1 数据成员 、 成员函数2 private 、 protected 、 public3 指向对象的指针、对象的引用4 属性、行为、属性、行为5 对象 、 属性和操作这些属性的操作 、 对外隐藏四、程序改错题#include using namespace std;class Clock /public:void set_clock(void);void show_clock(void); /private:int hour;int minute;int second;Clock clock;int main( )clock.set_clock( );clock.show_clock (
4、);/return 0 ;void Clock:set_clock(void)cinhour;cinminute;cinsecond;void Clock:show_clock(void) couthour“:“minute“:“secondendl;第四章 类和对象的进一步解析一、选择题1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16D B B C D D D C B D B A A C B A17 18 19 20 21 22 23 24C C D B A D B B二、填空题1 this 2 所有成员3 友元类、友元函数4 friend5 程序编译、程序结束三
5、、程序阅读题1 答案Default constructor called.constructor called.0,06,86,8Destructor called.0,0Destructor called.2 答案x!=y3 答案Initalizing defaultInitalizing default0 0Destructor is activeDestructor is active4 答案n=2,sum=2n=3,sum=5n=5,sum=105 答案x=36 答案x=1,y=2x=30,y=407 答案1 2 3 44exit main3 2 1 0 8 答案n=1009 答案th
6、e student is:Li Huthe teacher is:Wang Ping10 答案211 答案1035,789.50412 答案13 答案constructing object:x=1第五章 在对象中使用运算符运算符重载1、 选择题1 2 3 4 5 6C D B D D A2、 程序完善题1(1)A A:operator+(A temp.i = i+b.i;return temp; 3、 程序阅读题1.答案n=4n=3232.答案c1=10 c2=20c1=100 c2=200c1=11 c2=21c1=100 c2=2003.答案1 2 4 7 11 16第六章 派生与继承一、
7、选择题1(1) 1(2) 2 3 4 5 6 7 8 9 10 11A B C C C D D B C A D D二、填空题1 继承2 具体化、抽象3 公有继承、保护继承、私有继承4 子对象5 public(共有的)、protected(保护的) 、不可访问6 protected(保护的)、protected( 保护的)、不可访问的7 private(私有的) 、private(私有的)、不可访问的8 二义性三、判断下列描述的正确性1 2 3 4 5 6 7 8 9 10 11 12 13 14 1. C+语言中,既允许单继承,又允许多继承。 (正确)2. 派生类是从基类派生出来,它不能再生成
8、新的派生类。 (错误)3. 派生类的继承方式有两种:公有继承和私有继承。 (错误)解析:还有保护继承4. 在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。 (错误)解析:基类中的公有成员和保护成员在派生类都是可见的,基类私有成员在派生类中不可见。5. 在公有继承中,基类中只有公有成员对派生类是可见的。 (错误)解析:保护成员可见6. 在私有继承中,基类中只有公有成员对派生类是可见的。 (错误)解析:保护成员可见7. 在私有继承中,基类中所有成员对派生类的对象都是不可见的。 (正确)解析:基类成员 public,protected 成员都变成派生类 private 成员8. 在保护
9、继承中,对于垂直访问同于公有继承,而对于水平访问同于私有继承。 (正确?)9. 派生类是它的基类组合。 (错误)解析:不仅是组合,还有扩充和完善10. 构造函数可以被继承。 (错误)11. 析构函数不能被继承。 (正确)解析:构造函数、析构函数都不能继承12. 多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。 (正确)13. 单继承情况下,派生类中对基类成员的访问也会出现二义性。 (错误)解析:优先访问派生类14. 解决多继承情况下出现的二义性的方法之一是使用成员名限定法。 (正确)解析:严格讲“作用域限定”四、程序阅读题1 答案 num: 10010name:
10、 Wang-lisex: fage: 19address: 115 Beijing Road,Shanghainum: 10011name: Zhang-funsex: mage: 21address: 213 Shanghai Road,Beijing2 答案num:10010name:Liage: 17score:893 答案A constructor calledA constructor calledB constructor called(1,2)(1,1)(3,4)(2,5)(1,1)(8,11)destructor B calleddestructor A calleddestr
11、uctor A called4 答案construct M1.1construct M2.2construct M1.3construct M2.4construct N.3123desstruct N.3desstruct M2.desstruct M1.desstruct M2.desstruct M1.5 答案调用基类 2 的构造函数!调用基类 1 的构造函数!调用派生类的构造函数!调用派生类的析构函数!调用基类 1 的析构函数!调用基类 2 的析构函数!6 答案x=100y=300y=200y=3007 答案0400208 答案(1,2)5,6(6,9)9 答案(1,2)(6,9)5,6(6,9)10 答案13,22,30,4011 答案D2:display( )pri1=4,pri2=5pri4=6pri12=7D2:display( )pri1=12,pri2=9pri4=7