1、C+面向对象程序设计习题解答陈腊梅 目录第一章 面向对象程序设计概述错误!未定义书签。第二章对C语言的基础扩充错误!未定义书签。第三章 类和对象的初步探讨错误!未定义书签。第四章 类和对象的进一步解析错误!未定义书签。第五章 在对象中使用运算符运算符重载错误!未定义书签。第六章 继承与派生2第七章 多态性与虚函数2 第一章 面向对象程序设计概述一、选择题123456789101112ADDDCDCCAACC二、填空题1、多态性2、成员函数3、抽象4、处理这些数据的操作或处理这些数据的函数5、面向对象分析、面向对象分析、面向对象编程、对象对象测试、面向对象维护第二章对C语言的基础扩充一、 选择题
2、12345678910DDCADCCDAD二、 程序阅读题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.15三、 判断下列描述的正确性1234567第三章 类和对象的初步探讨一、选择题123456CDBBAD二、填空题1 数据成员 、 成员函数2 private 、 protected 、 public3 指向对象的指针、对象的引用4 属性、行为、属性、行为5 对象 、 属性和操作这些
3、属性的操作 、 对外隐藏四、程序改错题#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 ( );/return 0 ;void Clock:set_clock(void) cinhour; cinminute; cinsecond;void Clock:sh
4、ow_clock(void) couthour:minute:secondendl; 第四章 类和对象的进一步解析一、选择题12345678910111213141516DBBCDDDCBDBAACBA1718192021222324CCDBADBB二、填空题1 this 2所有成员3友元类、友元函数4 friend5 程序编译、程序结束三、程序阅读题1答案Default constructor called.constructor called.0,06,86,8Destructor called.0,0Destructor called.2答案x!=y3答案Initalizing defa
5、ultInitalizing 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答案the student is:Li Huthe teacher is:Wang Ping10答案211答案1035,789.50412答案13答案constructing object:x=1第五章 在对象中使用运算符运算符重载一、 选择题123456CDBDDA二、 程序完善题
6、1(1)A A:operator+(A &b)(2) A temp; temp.i = i+b.i; return temp; 三、 程序阅读题1. 答案n=4n=3232. 答案c1=10 c2=20c1=100 c2=200c1=11 c2=21c1=100 c2=2003.答案1 2 4 7 11 16第六章 派生与继承一、选择题1(1)1(2)234567891011ABCCCDDBCADD二、填空题1 继承2 具体化、抽象3 公有继承、保护继承、私有继承4 子对象5 public(共有的)、protected(保护的)、不可访问6 protected(保护的)、protected(保
7、护的)、不可访问的7 private(私有的)、private(私有的)、不可访问的8 二义性三、判断下列描述的正确性12345678910111213141. C+语言中,既允许单继承,又允许多继承。(正确)2. 派生类是从基类派生出来,它不能再生成新的派生类。(错误)3. 派生类的继承方式有两种:公有继承和私有继承。(错误)解析:还有保护继承4. 在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。(错误)解析:基类中的公有成员和保护成员在派生类都是可见的,基类私有成员在派生类中不可见。5. 在公有继承中,基类中只有公有成员对派生类是可见的。(错误)解析:保护成员可见6. 在私有
8、继承中,基类中只有公有成员对派生类是可见的。(错误)解析:保护成员可见7. 在私有继承中,基类中所有成员对派生类的对象都是不可见的。(正确)解析:基类成员public,protected成员都变成派生类private成员8. 在保护继承中,对于垂直访问同于公有继承,而对于水平访问同于私有继承。(正确?)9. 派生类是它的基类组合。(错误)解析:不仅是组合,还有扩充和完善10. 构造函数可以被继承。(错误)11. 析构函数不能被继承。(正确)解析:构造函数、析构函数都不能继承12. 多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。(正确)13. 单继承情况下,派生
9、类中对基类成员的访问也会出现二义性。(错误)解析:优先访问派生类14. 解决多继承情况下出现的二义性的方法之一是使用成员名限定法。(正确)解析:严格讲“作用域限定”四、程序阅读题1 答案 num: 10010name: 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 const
10、ructor calledB constructor called(1,2)(1,1)(3,4)(2,5)(1,1)(8,11)destructor B calleddestructor A calleddestructor 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的构造函数!调用派生类的构造函数!调用派
11、生类的析构函数!调用基类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=7pri12=812答案A: :x = 10B: :x= 20 B: : x = 2020 B: : x = 2013答案D2:display( )pri1=1,pri2=4pri4=6pri12=7D2:display(
12、 )pri1=9,pri2=8pri4=7pri12=8五、程序完善题1(1)protected (2)public (3)C(int x ,int y , int z):A(x),b1(y)(4)c=z; (5)couta”,”b1.b”,”cendl;2(1)A(int x ) a = x ; (2)A1(int x , int y):A(y) b = x ;(3)A3(int x, int y , int z ):A1(y,z) c = x; (4)coutgeta()endl; coutgeta()” ”getb()endl; coutgeta()” ”getb()” ”cendl;3
13、(1)Student( n , nam , s ) (2)age = a; (3) coutnum: numendl; (4)10010,Wang-li,f,19 (5)stud1.show();第七章 多态性与虚函数 一、选择题123456789101112BDDCBACCDBDD二、填空题1、不同2、纯虚函数3、静态多态性、动态多态性4、virtual 5、抽象类三、程序阅读题1答案 D:show ( ) called ,8 B:show () called ,5 D:show ( ) called ,8 B:show () called ,52答案 executing Point des
14、tructor3答案 executing Circle destructor executing Point destructor4答案 the B version 2336 the D1 info: 4 version 1 the D2 info : 100 version the D3 info : -25 version 3 the B version 2336 the B version 23361 the B version 2336 the B version 233635答案102099488206答案f+ g0+ 7答案line : draw ( ) called.ellips
15、e : draw ( ) called.line : set ( ) called.ellipse : set ( ) called.Redraw the object.line : draw ( ) called.ellipse : draw ( ) called.8答案line : draw ( ) called.ellipse : draw ( ) called.line : set ( ) called.ellipse : set ( ) called.Redraw the object.line : draw ( ) called.ellipse : draw ( ) called.
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100