ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:72.50KB ,
资源ID:1331960      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1331960.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】国家二级C++机试(继承和派生)模拟试卷14及答案解析.doc)为本站会员(explodesoak291)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】国家二级C++机试(继承和派生)模拟试卷14及答案解析.doc

1、国家二级 C+机试(继承和派生)模拟试卷 14及答案解析(总分:54.00,做题时间:90 分钟)一、选择题(总题数:27,分数:54.00)1.已知基类 Employee只有一个构造函数,其定义如下: Employee:Employee(int n):id(n) Manager是 Employee的派生类,则下列对 Manager的构造函数的定义中,正确的是( )。(分数:2.00)A.Manager:Manager(int n):id(n)B.Manager:Manager(int n)id=n;C.Manager:Manager(int n):Employee(n)D.Manager:M

2、anager(int n)Employee(n);2.有如下程序: #includeiostream using namespace sta; class A public: A()coutA; A()coutC; ; class B:public A public: B()coutG; B()coutT; ; int main() B obj; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.GATCB.AGTCC.GACTD.AGCT3.有如下程序: #includeiostream using namespace std; class Base public:

3、void fun0toutB; ; class Derived:public Base public: void fun()_coutD; ;int main() Derived d; dfun(); return 0; 若程序的输出结果是 BD,则划线处缺失的部分是( )。(分数:2.00)A.fun();B.Basefun();C.Base:fun();D.Base-fun();4.下列关于虚基类的描述中,错误的是( )。(分数:2.00)A.使用虚基类可以消除由多继承产生的二义性B.构造派生类对象时,虚基类的构造函数只被调用一次C.声明“class B:virtual public A”

4、说明类 B为虚基类D.建立派生类对象时,首先调用虚基类的构造函数5.有如下程序: #inchutbiostream using namespace std; class Mountain int height; public: Mountain(int h=-):height(h) virtual ehar*GetName() constreturn山; int GetHeight() constreturn height; ; class Lushan:public Mountain Public: Lushan(int d):Mountain(d) Char*GetName() const

5、return庐山; ; int main() Mountain*p=new Lushan(1000); coutp-GetName()海拔p-GetHeight()米; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.庐山海拔 1000米B.庐山海拔 0米C.山海拔 1000米D.山海拔 0米6.在 C+中,用于实现运行时多态性的是( )。(分数:2.00)A.内联函数B.重载函数C.模板函数D.虚函数7.下列关于虚函数的说明中,正确的是( )。(分数:2.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数C.只能通过指针或引用调用虚函数D.抽象类中的

6、成员函数都是虚函数8.有如下程序: #includeiostream using namespace std; class Base public: void fun1()coutBasen; virtual void fun2()coutBasen; ; class Derived:public Base public: void fun1()coutDerivedn; void fun2()coutDerivedn; ;void f(Base int main Derived d; Base*p= 下列关于 Shape类的描述中,正确的是( )。(分数:2.00)A.类 Shape是虚基类

7、B.类 Shape是抽象类C.类 ShaDe中的 Draw函数声明有误D.语句Shape s;能够建立 Shape的一个对象 s21.有如下程序: using namespace std; class B public: B(int xx):x(xx)+count;x+=10; virtual void show()const coutcount_xendl; protected: static hat count; private: mt x: ; class D:public B public: D(int xx,int yy):B(xx),y(yy)+count;y+=100; virt

8、ual void Show()const coutcount_yend1; private: int y; ; int B:count=0; int main() B*ptr=new D(10,20); ptr-show(); delete ptr; return 0; 运行时的输出结果是( )。(分数:2.00)A.1_120B.2_120C.1_20D.2_2022.有如下程序: #includeiostream using namespace std; class Instrument public: virtual void Display():0; ; class Piano:pub

9、lic Instrument Public: void Display()*函数体程序略*) ; int main() Instrument s; Instrument *p=0; ; return 0; 下列叙述中正确的是( )。(分数:2.00)A.语句Insturment *p=0;“编译时出错B.语句Instrument s;编译时出错C.类 Piano中的 Display函数不是虚函数D.类 Instrument是一个虚基类23.有如下程序: #includeiostream using namespace std; class Book public: Book(char*t= )

10、strcpy(title,t); private: char title40; class Novel:public Book public: Novel(char*t=):Book(t) char*Category()constreturn文学; ; int main() Book* pb; pb=new Novel(); coutpb-Category(); return 0: 若程序运行时输出结果是“文学”,则划线处缺失的语句是( )。(分数:2.00)A.char*Category();B.char*Category()const;C.virtual char*Category()co

11、nst;D.virtual char*Category()const=0;24.有如下程序: #includeiostream using namespace std; class Base public: virtual void function1() tout0; void function2()cout1; ; class Derived:public Base public: void function1()tout2; void function2()cout3; ; int main() Base*p=new Derived(); p-function1(); p-functio

12、n2(); return 0; ; 运行时的输出结果是( )。(分数:2.00)A.01B.21C.03D.2325.有如下程序: #includeiostream using namespace std; class Base public: virtual void Show()coutB; ; class Derived:public Base public: void Show()coutD; ;int main() Base*p1=new Derived; Derived*p2=newDerived; p1-Show(); p2-Show(); delete p1; delete p

13、2; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.BBB.BDC.DBD.DD26.有如下类定义 class Animal public: virtual void Name()=0; ; class Koala:public Animal public: void Name()*函数体略*) ; 关于上述类定义,下列描述中错误的是( )。(分数:2.00)A.类 Koala是类 Animal的派生类B.类 Koala中的 Name函数是一个虚函数C.类 Animal中的 Name函数是一个纯虚函数D.语句“Animal a;”能够建立类 Animal的一个对象

14、a27.有如下程序: #includeiostream using namespace std; class B public: virtual void f()coutB; void g()coutB; ; class D:public B public: void f()coutD; void g()coutD; ; void h(B*p) p-f();p-g(); int main() D obj; h( int main Derived d; Base*p= 下列关于 Shape类的描述中,正确的是( )。(分数:2.00)A.类 Shape是虚基类B.类 Shape是抽象类 C.类

15、ShaDe中的 Draw函数声明有误D.语句Shape s;能够建立 Shape的一个对象 s解析:解析:因为类 Shape中包含纯虚函数 Draw(),所以类 Shape是抽象类。21.有如下程序: using namespace std; class B public: B(int xx):x(xx)+count;x+=10; virtual void show()const coutcount_xendl; protected: static hat count; private: mt x: ; class D:public B public: D(int xx,int yy):B(x

16、x),y(yy)+count;y+=100; virtual void Show()const coutcount_yend1; private: int y; ; int B:count=0; int main() B*ptr=new D(10,20); ptr-show(); delete ptr; return 0; 运行时的输出结果是( )。(分数:2.00)A.1_120B.2_120 C.1_20D.2_20解析:解析:在主函数中定义了一个基类 B的指针变量 ptr,并调用类 D的构造函数创建了类 D的实例对象,因为变量 count是全局变量所以在调用基类 B的构造函数给其值加 1

17、,在调用 D的构造函数时给其值加 1,因而输出其值等于 2,在类 D的构造函数中给成员变量 y的值加 100,所以其等于 120并输出。22.有如下程序: #includeiostream using namespace std; class Instrument public: virtual void Display():0; ; class Piano:public Instrument Public: void Display()*函数体程序略*) ; int main() Instrument s; Instrument *p=0; ; return 0; 下列叙述中正确的是( )。

18、(分数:2.00)A.语句Insturment *p=0;“编译时出错B.语句Instrument s;编译时出错 C.类 Piano中的 Display函数不是虚函数D.类 Instrument是一个虚基类解析:解析:由于函数 Display()是一个纯虚函数,所以类 Instrument是抽象类,而抽象类是不能定义对象的,因而选项 B为正确选项。23.有如下程序: #includeiostream using namespace std; class Book public: Book(char*t= )strcpy(title,t); private: char title40; cla

19、ss Novel:public Book public: Novel(char*t=):Book(t) char*Category()constreturn文学; ; int main() Book* pb; pb=new Novel(); coutpb-Category(); return 0: 若程序运行时输出结果是“文学”,则划线处缺失的语句是( )。(分数:2.00)A.char*Category();B.char*Category()const;C.virtual char*Category()const;D.virtual char*Category()const=0; 解析:解析

20、:根据程序运行的结果为:文学,说明程序执行了派生类 Novel中的成员函数*Category()constreturn文学;,所以在基类 Book中要把函数*Category()const 定义为纯虚函数。24.有如下程序: #includeiostream using namespace std; class Base public: virtual void function1() tout0; void function2()cout1; ; class Derived:public Base public: void function1()tout2; void function2()

21、cout3; ; int main() Base*p=new Derived(); p-function1(); p-function2(); return 0; ; 运行时的输出结果是( )。(分数:2.00)A.01B.21 C.03D.23解析:解析:函数 function1()在基类 Base中定义为虚成员函数,而在派生类 Dervied中重新进行了定义,输出字符 2,函数 function2()在基类 Base中定义虚成员函数,在主函数中使用指向基类的指针变量p访问 function2()时,输出 1。25.有如下程序: #includeiostream using namespac

22、e std; class Base public: virtual void Show()coutB; ; class Derived:public Base public: void Show()coutD; ;int main() Base*p1=new Derived; Derived*p2=newDerived; p1-Show(); p2-Show(); delete p1; delete p2; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.BBB.BDC.DBD.DD 解析:解析:在基类 Base中定义了虚函数 Show()输出字符B,而在派生类 De

23、rived中对虚函数 Show()进行了重新定义,输出字符D。在主函数中对基类和派生类中的虚函数 Show()进行了多态调用,此时调用的是派生类中重新定义的 Show(),输出字符D。26.有如下类定义 class Animal public: virtual void Name()=0; ; class Koala:public Animal public: void Name()*函数体略*) ; 关于上述类定义,下列描述中错误的是( )。(分数:2.00)A.类 Koala是类 Animal的派生类B.类 Koala中的 Name函数是一个虚函数C.类 Animal中的 Name函数是一

24、个纯虚函数D.语句“Animal a;”能够建立类 Animal的一个对象 a 解析:解析:在类 Animal定义了纯虚函数 Name(),所以类 Animal就是一个抽象类,而抽象类是不能够建立对象的。27.有如下程序: #includeiostream using namespace std; class B public: virtual void f()coutB; void g()coutB; ; class D:public B public: void f()coutD; void g()coutD; ; void h(B*p) p-f();p-g(); int main() D obj; h(&obj); return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.DDB.BBC.BDD.DB 解析:解析:在基类 B中定义虚函数 f()和成员函数 g(),而在派生类 D中定义了函数 f()和同名函数 g()。而函数 h中的形参为指向基类的指针变量 p,所以在主函数中执行 h(&obj)时,会调用派生类的函数 f(),输出 D,再调用基类的函数 g(),输出 B。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1