第11章 继承与类的派生
- 格式:ppt
- 大小:136.50 KB
- 文档页数:53
面向对象的程序设计语言――C++(第二版)-习题参考答案课后习题答案以及代码习题参考答案第1章1.填空题C++语言概述(1)函数说明,函数体(2)声明区,主程序区,函数定义区(3)多态性(4)namespace,using(5)std(6)cin,(7)//(8)对数据的操作2.判断题(1)对(2)错(3)错(4)错(5)错3.改错题(1)没有函数体,应改为void main() {};(2)语句没有分号,应改为using namespace myspace;(3)cout和操作符共同完成输出的功能,应改为cout“ Input your name:";(4)应改为#include iostream.h4.简答题5.编程题(略)(略)第2章1.选择题基本数据类型、运算符与表达式(1)B (2)D (3)B (4)D (5)B课后习题答案以及代码2.简答题(1)(a)、(c)(e)、(f)、(g)、(h)、(i)(2)(a)、(g)、(i)、(j)(3)(a)5.5(b)0(c)20(d)0,0(e)1(f)1,2(g)3(h)-40(i)2(j)3(k)s1='0's1='9'(l)N!=03.读程序写结果(1)0,15(2)(1、1、1),(-1、-1、-1)(3)(a)a*a+2*a*b+b*b(b)4.0/3.0*3.__-__R*R*R(c)5.0/9.0*(F-32)(d)b=ab=c(4)364143(5)x=14.编程题(略)第3章1.选择题(1)B (2)A (3)A (4)C2.判断题(1)错(2)对(3)对(4)错3.读程序写结果(1)C++的控制语句5)A 5)错((课后习题答案以及代码12 23 3 34 4 4 45 5 5 5 5(2)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 1(3)j的值为0;i的值为2;4.编程题(略)第4章1.填空题函数(1)void(2)静态全局变量,static(3)函数重载(4)inline(5)递归函数(6)宏定义命令,文件包含命令,条件编译命令2.判断题(1)错(2)错(3)错(4)错(5)错(6)对(7)错(8)错(9)对(10)对3.读程序写结果(1)x=7,y=4x=9,y=5(2)34.56101(3)162228(4)12 15 18 21 24课后习题答案以及代码(5)2,1,4,1,3,2,1,4.简答题5.编程题(略)(略)第5章1.选择题构造数据类型(1)C (2)D (3)A (4)B (5)C 2.判断题(1)错(2)对(3)对(4)错(5)错3.读程序写结果(1)153(2)422 5 6 8 10(3)__,21(4)419(5)6904(6)43214.编程题(略)第6章1.填空题(1)类,对象,类(2)数据成员,成员函数(3)不能(4)private,protected,public,private (5)成员函数类和对象课后习题答案以及代码(6)friend(7)类名,作用域运算符(8)对象名.成员名,指针变量名-成员名,(*指针变量名).成员名(9)构造,析构,构造,析构(10)常量数据,引用数据(11)全局,数据类型,所属的类(12)常成员,只读(13)成员,友元(14)类数据成员,类成员函数(15)this(16)浅拷贝2.选择题(1)C (2)C (3)B (4)C (5)B(6)C (7)D (8)B (9)C (10)D(11)A (12)C (13)D (14)D (15)B3.改错题(1)man1.salary=1000.00; 不能在类外访问类的私有成员(2)float r=0;和float c=0; 类本身是抽象的,不能在类的定义体中给其数据成员赋值}后缺少分号“;”(3)成员函数void setdata(float x1,float y1,float r);没有实现(4)构造函数名point()应与类名同名,为Point没有头文件包含#include iostream.h4.读程序写结果题(1)x=0,y=0x=100,y=200(2)x=100,y=200x=1000,y=2022年t=3.14(3)Sta::fun2()=10s.fun2()=11r.a=20(4)Constructor1 called!x=0Constructor2 called!x=100Destructor called!Destructor called!(5)课后习题答案以及代码575.简答题6.编程题(略)(略)第7章1.填空题(1)继承(2)基类,派生类(3)private,protected,public,private (4)不可访问,保护,公有(5)私有(6)单(一),多(重)(7)赋值兼容规则(8)静态,动态(9)抽象类2.选择题继承和派生(1)B (2)A (3)B (4)C (5)B (6)A (7)D (8)B (9)B (10)B(11)D (12)B3.改错题(1)本题的错误主要是数据成员的访问权限问题:基类的私有成员在派生类中不可访问,如fb()函数中的a3=30;语句;类的私有和保护成员在类外不能访问,如main函数中的x.a2 =20;.a3=30; ,y.a2=200; ,y.a3=300; ,y.b2=2022年;和y.b3=3000;语句。
面向对象程序设计C++复习资料与答案第一、二、六、七章习题一、选择题1、系统约定C++源程序文件名的缺省的扩展名为()A、bccB、c++C、cppD、vcc2、面向对象的程序设计将数据与( )放在一起,作为一个相互依存、不可分割的整体来处理.A、对数据的操作B、信息C、数据隐藏D、数据抽象3、当一个函数无返回值时,函数的类型应定义为()A、voidB、任意C、intD、无4、对于C++的函数,正确的叙述是:A、函数的定义不能嵌套,但函数的调用可以嵌套B、函数的定义不能嵌套,但函数的调用不能嵌套C、函数的定义和调用都不能嵌套D、函数的定义和调用都可以嵌套5、下列语句中错误的是( )A、int *p=new int(10);B、int *p=new int[10]C、int *p=new int;D、int *p=new int[40](0);6、假设已经有定义:const char *const name=”chen”;,下面的语句中正确的是:()A、name[3]=’a’;B、name=”lin”;C、name=new char[5]; D、cout<〈name[3];7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:( )A、name[3]=’q';B、name=”lin”;C、name=new char[5];D、name=new char(‘q’);8、假设已经定义:const char *name=”chen”;,下面的语句中错误的是:( )A、name[3]=’q’;B、name=”lin”;C、name=new char[5];D、name=new char(‘q’);9、下面的类型声明中正确的是:( )A、int &a[4];B、int &*p;C、int &&qD、int i,*p=&i;10、假设定义了函数模板( )template 〈class T>T max(T x,T y){ return(x>y)?x:y;}并定义了int i;char c;错误的调用语句是:()A、max(i,i)B、max(c,c)C、max((int)c,i);D、max(i,c)11、模板的使用是为了( )A、提高代码的可重用性B、提高代码的运行效率C、加强类的封装性D、实现多态性12、设有二个语句:int x[‘a’];cin>>x;则编译器认为()A、说明语句int x[‘a’]错B、二个语句都错C、语句cin〉〉x 错D、二个语句正确,没有语法错13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( )A、f(py[10],n);B、f(py,n)C、f(*py,&n)D、f(py,&n)14、在C++中实现封装是借助于()A、枚举B、类C、数组D、函数15、对于下面几个函数:(1) void f(int x,float y){……}(2) int f(int a,float b){…… }(3) int f(int i,int j){……}(4) float k(int x){…… }是重载函数。
【知识点】家庭劳动力供给与周期性劳动力供给一、家庭生产理论★1. 分析角度:以家庭为单位来分析劳动力供给问题;一个家庭会把它生产出来的家庭物品看成是效用的直接来源。
2. 家庭时间分配:市场工作时间、家庭生产时间3. 家庭物品的生产方式:时间密集型、商品密集型。
4. 家庭内部分工决策:采用比较优势的原理二、经济周期中的劳动力供给★三、生命周期中的劳动力供给(1)女性相对工资率上升相对工资率上升会导致市场工资率超过很多女性的保留工资,从而诱使更多的女性进入劳动力市场。
而导致女性工资率上升的主要原因之一则是女性的受教育程度较男性有所提高(2)女性劳动力市场工作的偏好和态度发生了改变(3)家庭生产活动的生产率提高家务生产设备和互联网购物的发展减少了家庭自己生产很多家庭物品的需要,或是大大缩短了家庭生产的时间,从而为女性参与劳动力市场工作提供了很大的便利。
(4)出生率下降(5)离婚率上升婚姻的不稳定导致许多女性形成了建立和维持与劳动力市场之间的联系的动机,从而提高她们的劳动力参与率。
(6)工作机会增加。
中国女性的劳动力参与率一直比较高,但随着经济的不断发展,一批已婚女性在市场生产率正在上升或者处于较高水平的年龄时却退出劳动力市场,成为“全职太太”或“全职妈妈”。
这一方面与她们丈夫的收人水平较高有关,另一方面也是因为对孩子养育和教育的重视。
(1)老年退休年龄的决定因素:工资率和养老金。
(2)部分老年人会选择逐渐减少劳动力供给时间,并且逐渐退出劳动力市场。
原因:a)老年人的工资率在不断提高的,而工资率的上升既有可能带来收入效应,又有可能带来替代效应。
若替代效应大于收入效应,则老年劳动者的劳动力供给时间会增加,或者退休年龄会延后;反之,则劳动力供给时间减少,或退休年龄会提前。
对老年人而言,收入效应通常明显压过替代效应。
b)老年人健康状况的下降,也使得他们更倾向于享受闲暇。
c)养老金福利的增加会导致退休时的收入大大提高,从而鼓励老年人更早退休。
第 5 章继承与派生5.1 继承与派生的看法图图图图25.2 派生类的声明方式5.3 派生类的构成数据构造 (C++版 )图图5.4 派生类成员的接见属性5.4.1 公用继承C++ 面向对象程序设计3 5.4.2 私有继承图5.4.3 保护成员和保护继承图4数据构造 (C++版 ) 5.4.4 多级派生时的接见属性图5.5 派生类的构造函数和析构函数5.5.1 简单的派生类的构造函数图图5.5.2 有子对象的派生类的构造函数C++ 面向对象程序设计5图5.5.3 多层派生时的构造函数图5.5.4 派生类构造函数的特别形式5.5.5 派生类的析构函数5.6 多重继承5.6.1 声明多重继承的方法5.6.2 多重继承派生类的构造函数5.6.3 多重继承引起的二义性问题6数据构造 (C++版 )图图图图图C++ 面向对象程序设计7图图5. 205.6.4 虚基类1.虚基类的作用图8数据构造 (C++版 )图图图2.虚基类的初始化C++ 面向对象程序设计9图3.虚基类的简单应用举例5.7 基类与派生类的变换图图10数据构造 (C++版 )5.8 继承与组合5.9 继承在软件开发中的重要意义习题1.将例 5.1 的程序片段补充和改写成一个圆满、正确的程序,用公用继承方式。
在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上 5 个数据的值。
2.将例 5.2 的程序片段补充和改写成一个圆满、正确的程序,用私有继承方式。
在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上 5 个数据的值。
3.将例 5.3 的程序更正、补充,写成一个圆满、正确的程序,用保护继承方式。
在程序中应包括输入数据的函数。
4.更正例5.3 的程序,改为用公用继承方式。
上机调试程序,使之能正确运行并获取正确的结果。
对这两种继承方式作比较剖析,考虑在什么情况下二者不能够互相代替。