第六到八章 作业(带答案).doc

上传人:人*** 文档编号:542700259 上传时间:2023-07-10 格式:DOC 页数:19 大小:139.50KB
返回 下载 相关 举报
第六到八章 作业(带答案).doc_第1页
第1页 / 共19页
第六到八章 作业(带答案).doc_第2页
第2页 / 共19页
第六到八章 作业(带答案).doc_第3页
第3页 / 共19页
第六到八章 作业(带答案).doc_第4页
第4页 / 共19页
第六到八章 作业(带答案).doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《第六到八章 作业(带答案).doc》由会员分享,可在线阅读,更多相关《第六到八章 作业(带答案).doc(19页珍藏版)》请在金锄头文库上搜索。

1、一、 单选1-5DDBDC 6-10 DABCC11、C 12 、D一 单项选择题1.下列有关派生类的叙述中,错误的是( D )A、一个派生类至少有一个基类; B、派生类的默认继承方式是private;C.、一个派生类可以另一个派生类的基类;D、派生类只继承了基类的公有成员和保护成员;2.下列有关继承和派生类的叙述中,正确的是:( D )A、作为虚基类的类不能被实例化;B、派生类不能访问基类的保护成员;C、虚函数必须在派生类中重新实现;D、派生类应当向基类的构造函数传递参数;3.有如下类定义class XXint xdata;public:XX(int n=0):xdata(n);class

2、YY:public XXint ydata;public:YY(int m=0,int n=0):XX(m),ydata(n);YY类的对象包含的数据成员的个数为( B )A、1 B、2 C、3 D、44.如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派生类中的访问权限分别是( D )A、private和public B、private和protectedC、protected和public D、protected和protected5.有下列类的定义:class Baseint k;public:void set(int n)k=n;int

3、get() const return k;class Derived : protected Baseprotected:int j;public:void set (int m,int n)Base:set(m);j=n;int get() const return Base:get()+j;则类Derived中保护的数据成员和成员函数的个数是( C )A、1 B、2 C、3 D、46.下列关于派生类构造函数和析构函数的叙述中,错误的是( D )A、派生类的构造函数会隐含调用基类的构造函数;B、如果基类中没有默认的构造函数,那么派生类必须定义构造函数;C、在建立派生类对象时,先调用基类的构造

4、函数,在调用派生类的构造函数;D、在销毁派生类的对象时,先调用基类的析构函数,在调用派生类的析构函数;7.设class Y:public X,即类Y是类X的派生类,则创建一个Y类的对象和删除一个Y类对象时,调用构造函数和析构函数的次序分别为 ( A )A. X、Y;Y、X B. X、Y;X、YC. Y、X;X、Y D. Y、X;Y、X8.将类A说明是类B的虚基类,下列叙述正确的是 ( B )A. class virtual B:public A B. class B:virtual public AC. virtual class B:public A D. class B:public A

5、virtual9.下列关于虚基类的叙述中,错误的是( C )A、使用虚基类可以消除由多继承产生的二义性;B、构造派生类的对象时,虚基类的构造函数只被调用一次;C、声明“class B:virtual public A”说明类B为虚基类;D、建立派生类对象时,首先调用虚基类的构造函数;10下列关于虚基类的叙述中,错误的是( C )A、设置虚基类的目的是消除二义性;B、虚基类子对象的初始化由最派生类完成;C、虚基类子对象的初始化次数与虚基类下面的派生类个数有关;D、带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数的调用;11有如下程序:/#include stdafx.h#

6、include using namespace std;class Baseint x;public:Base(int n=0):x(n)coutn; /构造函数中形参有初始化值相当于无参数的构造函数int getX() constreturn x;class Dervied:public Baseint y;public:Dervied(int m,int n):y(m),Base(n)coutm; /d2 32Dervied(int m):y(m)coutm; /d1 01;int main()Dervied d1(1),d2(2,3);return 0;程序执行后,输出结果为( C )A

7、、124 B、132 C、0132 D、102312.有如下程序:/#include stdafx.h#include using namespace std;class Baseprivate:void fun1()constcoutfun1;protected:void fun2()constcoutfun2;public:void fun3()constcoutfun3;class Derived:protected Basepublic:void fun4()constcoutfun4;int main()Derived obj;obj.fun1(); /(1)obj.fun2();

8、/(2)obj.fun3(); /(3)obj.fun4(); /(4)return 0;其中有语法错误的语句是( D )A、(1) B、(1)和(2) C、(1)和(3) D、(1)(2)和(3)二 分析下列程序,写出程序的运行结果。1./#include stdafx.h#include using namespace std;class Foopublic:Foo(int x)(*this).x=x;coutA;Foo()x=0;coutZ;private:int x;int main()Foo f3,g(3);return 0;运行结果为:_ZZZA_2.#include using

9、namespace std;class Apublic:A()coutA;A()coutA;class BA* p;public:B()coutB;p=new A();B()coutB;delete p;int main()B obj;return 0;运行结果_BABA_3.(1)/#include stdafx.h#include using namespace std;class myClasspublic:myClass(int i=0):n(i)coutA;/n=imyClass(myClass &c):n(c.getValue()coutC;int getValue()constr

10、eturn n;/myClass()coutD;private:int n;void show(myClass c)coutc.getValue ();int main()myClass c1;show(c1);myClass c2(2);show(c2);return 0;运行结果:_AC0DAC2DDD_4./#include stdafx.h#include using namespace std;class Bpublic:B()coutdefault constructorendl;B()coutdestructedendl;bdata=5tempdata=5B(int i):dat

11、a(i)coutconstructed by parameterdataendl;private:int data;B Play(B b)return b; /形式参数空间的释放int main()B temp=Play(5); return 0;运行结果:constructed by parameter5_ destructed _ destructed5./#include stdafx.h#include using namespace std;class Testprivate:static int val;int a;public:static int func();static void sfunc (Test &r);int Test:val =20;int Test:func()val+=val;return val;void Test:sfunc (Test &r)r.a=25;coutResult3=r.aendl;int main()coutResult1=Test:func()endl;Test a ;coutResult2=a.func()endl;Test:sfunc (a);return 0;运行结果:_Result1=40Result2=80Result3=25_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号