【计算机类职业资格】国家二级C++机试(继承和派生)模拟试卷17及答案解析.doc
《【计算机类职业资格】国家二级C++机试(继承和派生)模拟试卷17及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级C++机试(继承和派生)模拟试卷17及答案解析.doc(11页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(继承和派生)模拟试卷 17及答案解析(总分:54.00,做题时间:90 分钟)一、选择题(总题数:27,分数:54.00)1.已知基类 Emp1oyee只有一个构造函数,其定义如下: Emp1oyee:Emp1oyee(int n):id(n) Manager是 Emp1oyee的派生类,则下列对 Manager的构造函数的定义中,正确的是( )。(分数:2.00)A.Manager:Manager(int n):id(n)B.Manager:Manager(int n)id=n;C.Manager:Manager(int n): Emp1oyee(n)D.Manager:
2、Manager(int n)Emp1oyee(n);2.有如下程序: #incLude iostream using namespace std; c1ass A public: A()cout“A; A()coutC; ; c1ass B:public A public: BOcoutG; BOcouKT; ; int main0 B obj; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.GATCB.AGTCC.GACTD.AGCT3.有如下程序: #inc1udeiostream using namespace std; c1ass Base public:
3、void fun0 coutB; ; c1ass Derived:public Base public: void fun()_coutD; ; int main() Derived d; dfun(); rel:um 0; 若程序的输出结果是 BD,则划线处缺失的部分是( )。(分数:2.00)A.fun();B.Basefun();C.Base:fun();D.Basefun();4.下列关于虚基类的描述中,错误的是( )。(分数:2.00)A.使用虚基类可以消除由多继承产生的二义性B.构造派生类对象时,虚基类的构造函数只被调用一次C.声明“c1ass B:virtual public A
4、”说明类 B为虚基类D.建立派生类对象时,首先调用虚基类的构造函数5.有如下程序: #inc1udeiostream using namespace std; c1ass Mountain int height; public: Mountain (int h=0):height(h) virtual char* GetName()constretum“山; int GetHeight()constreturn height;) ; c1ass Lushan:public Mountain Public: Lushan(int d):Mountain(d) Char*GetName()cons
5、treturn“庐山; ; int main() Mountain *p=new Lushan(1000); coutpGetName()“海拔“pGetHeight()“米“; return0; 运行这个程序的输出结果是( )。(分数: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.有如下程序: #inc1ude iostream using namespace std; c1ass Base public: void funl()cout“Base/n“; virtual void fun2()cout“Base/n“; ; c1ass Derived: public Base public: void fun1()cout“Derived/n“; void fun2()cout“Derived/n“; ; void f(Base bfun2(); int main() Derived obj; f(obj); return 0; 执行这个
7、程序的输出结果是( )。(分数:2.00)A.Base BaseB.Base DerivedC.Derived BaseD.Derived Derived9.有如下程序 #inc1ude iostream using namespace std; c1assA public: virtual void func1()cout“A1“; void func2()cout“A2“; ; c1ass B:public A public: void func1() cout“B1“; void func2()cout“B2“; ; int main() A*p=newB; pfunc1(); pfun
8、c2(); return 0; 运行此程序,屏幕上将显示输出( )。(分数:2.00)A.B1B2B.A1A2C.B1A2D.A1B210.如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。 #inc1ude iostream using namespace std; c1ass Base int a,b, public: Base (int x,int y)a=x; b=y; void show()couta,bend1; ;c1ass Derived:public Base int c,d; public: Deriv
9、ed (int x,int y,int z,int m):Base(x,y)c=z; d=m;) void show()coutc,dend1;) ; int main() Base B1(50,50),*pb; Derived D1(10,20,30,40); pb= retum0: retum(); 运行时输出的结果是( )。(分数:2.00)A.10,20B.30,40C.20,30D.50,5011.虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。 有如下程序: #inc1ude i
10、ostream using namespace std; c1ass Base public: virtual void f()cout“f0+“; void g()cout“g0+“; ; c1ass Derived:public Base public: Void g()cont“f+“; void gocout,“g+“; ; int main Derived d; Base*p= c1ass Base public: void output0 cout1; virtual void Print0 coutB; ; c1ass Derived:public Base public: vo
11、id output()cout2; void Print()coutD; ; int main() Base *ptr=new Derived; ptroutput(); ptrPrint(); delete ptr; retum 0; 程序的输出结果是( )。(分数:2.00)A.1BB.1DC.2BD.2D13.有如下程序; #inc1udeiostream using namespace std; c1ass B public: virtualvoidshow()cout“B“; ; c1ass D:public B public: void show()count“D“; ; void
12、 funl(B *ptr)ptrshow();) void fun2(B void fun3(B b)bshow(); int main() B b,*p=new D; D d; fun1(p); fun2(b); fun3(d); retum 0; 程序的输出结果是( )。(分数:2.00)A.BBBB.BBDC.DBBD.DBD14.下列有关抽象类和纯虚函数的叙述中,错误的是( )。(分数:2.00)A.拥有纯虚函数的类是抽象类,不能用来定义对象B.抽象类的派生类若不实现纯虚函数,它也是抽象类C.纯虚函数的声明以“=0;”结束D.纯虚函数都不能有函数体15.有如下程序: #inc1udei
13、ostream using namespace std; c1ass GA public; virtual int f()retuml; ; c1ass GB: public GA public; virtual int f()return 2; ; void show(GAg)coutgf(); void disp1ay(GA int main() GA a:show(a); disp1ay(a); GB b:show(b); disp1ay(b); retum 0; 运行时的输出结果是( )。(分数:2.00)A.1111B.1211C.1112D.121216.下列选项中,与实现运行时多
14、态性无关的是( )。(分数:2.00)A.重载函数B.虚函数C.指针D.引用17.在一个抽象类中,一定包含有( )。(分数:2.00)A.虚函数B.纯虚函数C.模板函数D.重载函数18.有如下程序: #inc1udeiostream using namespace std; c1ass A public: virtual void f()cout1; void g0cout2; ; c1ass B:public A public: Virtual void f()cout3; void g()cout4; ; void show(A ag(); int main() B b; show(b);
15、 return 0; 运行时的输出结果是( )。(分数:2.00)A.12B.34C.14D.3219.有如下程序: #inc1ude iostream using namespace std; c1ass Publication 出版物类 char name30; public: Publication(char *name=“未知名称“) strcpy(thisname,name); const char*getName()const return name; virtual const char*getType()const return“未知类型“; ; c1ass Book: pub
16、lic Publication 书类 public: Book(char *name):Publication(name) virtual const char*getType()const return“书“; ; void showPublication( Publication int main() Book book(“精彩人生“);showPublication(book); return 0; 运行时的输出结果是( )。(分数:2.00)A.未知类型:未知名称B.未知类型:精彩人生C.书:未知名称D.书:精彩人生20.下面是类 shape的定义: c1ass Shape publi
17、c: Virtual void Draw()=0; ; 下列关于 Shape类的描述中,正确的是( )。(分数:2.00)A.类 Shape是虚基类B.类 Shape是抽象类C.类 Shape中的 Draw函数声明有误D.语句“Shape s;”能够建立 Shape的一个对象 s21.有如下程序: #inc1ude iostream using namespace std; c1ass B public: B(int xx):x(xx)+count;x+=10; virtual void show()const coutcount_xend1; protected: static int co
18、unt; private: intx; ; c1ass D:public B public: D(int xx,int yy):B(xx),y(yy)+count;y+=100; virtual void show()const coutcountyend1;) private: int y; ; int B:count =0; int main() B *ptr=new D(10,20); ptrshow0; delete ptr; retum 0; 运行时的输出结果是( )。(分数:2.00)A.1_120B.2_120C.1_20D.2_2022.有如下程序: #inc1ude iost
19、ream using namespace std; c1ass Instrument public: virtual void Disp1ay()=0; ; c1ass Piano: public Instrument public: void Disp1ay()*函数体程序略*) ; int main() Instrument s; Instrument *p=0; /*; return0; 下列叙述中正确的是( )。(分数:2.00)A.语句“Insturment *p=0;”编译时出错B.语句“Instrument s;”编译时出错C.类 Piano中的 Disp1ay函数不是虚函数D.
20、类 Instrument是一个虚基类23.有如下程序: #inc1ude iostream using namespace std; c1ass Book public: Book(char*t=“) strcpy(title,t); _ private: char title40; ; c1ass Novel: public Book public: Novel(char*t=“):Book(t) char*Category()const refflm“文学“; ; int main() Book *pb; pb=new Novel(); coutpbCategory(); return0;
21、 若程序运行时输出结果是“文学”,则划线处缺失的语句是( )。(分数:2.00)A.char*Category0;B.char* Category()const;C.virtual char* Category()const;D.virtualchar* Category()const();24.有如下程序: #inc1ude iostream using namespace std; c1ass Base public: virtual void functionl() cout0; void function2()cout1; ; c1ass Derived: public Base pu
22、blic: void functionl()cout2; void function2() cout3; ; int main() Base*p= new Derived(); pfunctionl(); pfunction2(); return (); ; 运行时的输出结果是( )。(分数:2.00)A.01B.21C.03D.2325.有如下程序: #inc1udeiostream using namespace std; c1ass Base public: virtual void Show()coutB; ; c1ass Derived: public Base public: vo
23、id Show() cout;D; ; int main() Base *p1=new Derived; Derived *p2=new Derived; p1S1:tow(); p2Show(); delete p1; delete p2; retum0; 运行这个程序的输出结果是( )。(分数:2.00)A.BBB.BDC.DBD.DD26.有如下类定义 c1ass Animal public: virtual void Name()=0; ; c1ass Koala:public Animal public: void Name()/*函数体略*/ ; 关于上述类定义,下列描述中错误的是
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 机试 继承 派生 模拟 试卷 17 答案 解析 DOC
