【计算机类职业资格】二级C++-112及答案解析.doc
《【计算机类职业资格】二级C++-112及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-112及答案解析.doc(33页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-112 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:46,分数:100.00)1.有如下程序: #includeiostream using namespace std; class Basel public: Basel(int d) coutd; Base1() ; class Base2 public: Base2(int d) coutd; Base2() ; class Derived:public Base1,Base2 public: Derived(int a,int b,int c,int d); Base1(b),Base2(a),
2、b1(d),b2(c) Private: int b1; int b2; ; int main() Derived d(1,2,3,4); return 0; 运行时的输出结果是_。(分数:2.00)A.1234B.2134C.12D.212.己知基类 Employee 只有一个构造函数,其定义如下: Employee:Employee(int n):id(n) Manager 是 Employee 的派生类,则下列对 Manager 的构造函数的定义中,正确的是_。(分数:2.00)A.Manager:Manager(int n):id(n)B.Manager:Manager(int n)i
3、d=n;C.Manager:Manager(int n):Employee(n)D.Manager:Manager(int n)Employee(n);3.有如下程序: #includeiostream using namespace std; class A public: A()cout“A“; A()cout“C“; ; class B:public A public: B()cout“G“; B()cout“T“; ; int main() B obj; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.GATCB.AGTCC.GACTD.AGCT4.有如下程序:
4、#includeiostream using namespace std; class Base public: void fun()cout“B“;) ; class Derived:public Base public: void tun()_cout“D“; ; int main() Derived d; d.fun(); return 0; 若程序的输出结果是 BD,则划线处缺失的部分是_。(分数:2.00)A.fun();B.Base.fun();C.Base:fun();D.Base-fun();5.下列关于虚基类的描述中,错误的是_。(分数:2.00)A.使用虚基类可以消除由多继
5、承产生的二义性B.构造派生类对象时,虚基类的构造函数只被调用一次C.声明“class B:virtual public A”说明类 B 为虚基类D.建立派生类对象时,首先调用虚基类的构造函数6.有如下程序: #includeiostream using namespace std; class Mountain int height; public: Mountain(int h=0):height(h) virtual char* GetName()constreturn“山“; int GetHeight() constreturn height; ; class Lushan:publi
6、c Mountain Public: Lushan(int d):Mountain(d) Char* GetName()constreturn“庐山“; ; int main() Mountain *p=new Lushan(1000); coutp-GetName()“海拔“p-GetHeight()“米“; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.庐山海拔 1000 米B.庐山海拔 0 米C.山海拔 1000 米D.山海拔 0 米7.在 C+中,用于实现运行时多态性的是_。(分数:2.00)A.内联函数B.重载函数C.模板函数D.虚函数8.下列关于虚函数的说明
7、中,正确的是_。(分数:2.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数9.有如下程序: #includeiostream using namespace std; class Base public: void fun1()cout“Baseha/n“; virtual void fun2()cout“Base/n“; ; class Derived:public Base public: void fun1()cout“Derived/n“; void fun2()cout“Derived/n“; ; v
8、oid f(Baseb.fun2(); int main() Derived obj; f(obj); return 0; 执行这个程序的输出结果是_。(分数:2.00)A.BaseBaseB.BaseDerivedC.DerivedBaseD.DerivedDerived10.有如下程序 #includeiostream using namespace std; class A public: virtual void func1()cout“A1“; void func2()cout“A2“; ; class B:public A public: void func1()cout“B1“;
9、 void func2()cout“B2“; ; int main() A *p=new B; p-func1(); P-func2(); return 0; 运行此程序,屏幕上将显示输出_。(分数:2.00)A.B1B2B.A1A2C.B1A2D.A1B211.如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。 #includeiostream using namespace std; class Base iht a,b; public: Base(int x,int y)a=x;b=y; void show()cou
10、ta“,“bendl; ; class Derived:public Base int c,d; public: Derived(int x,int y,int z,int m):Base(x,y)c=z;d=m; void show()coutc“,“dendl; ; int main() Base B1(50,50),*pb; Derived D1(10,20,30,40); pb= return 0; return(); 运行时输出的结果是_。(分数:2.00)A.10,20B.30,40C.20,30D.50,5012.虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这
11、样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。有如下程序: #includeiostream using namespace std; class Base public: virtual void f()cout“f0+“; void g()cout“g0+“; ; class Derived:public Base public: void f()cout“f+“;) void gocout,“g+“; ; int main Derived d: Base *p= p-f();P-g(); return 0; 运行时输出的结果是_。(分数:2.00)
12、A.f+g+B.f0+g+C.f+g0+D.f0+g0+13.有如下程序; #includeiostream using namespace std; class Base public: void output()cout1; virtual void Print()cout“B“; ; class Derived:public Base public: void output()cout2; void Print()cout“D“;) ; int main() Base *ptr=new Derived; ptr-output(); ptr-Print(); delete ptr; ret
13、urn 0; 程序的输出结果是_。(分数:2.00)A.1BB.1DC.2BD.2D14.有如下程序: #includeiostream using namespace std; class B public: virtual void show()cout“B“; ; class D:public B public: void show()cout“D“; ; void fun1(B *ptr)ptr-show(); void fun2(B void fun3(B b)b.show(); int main() B b.*p=new D; D d; fun1(p); fun2(b); fun3
14、(d); return 0; 程序的输出结果是_。(分数:2.00)A.BBBB.BBDC.DBBD.DBD15.下列有关抽象类和纯虚函数的叙述中,错误的是_。(分数:2.00)A.拥有纯虚函数的类是抽象类,不能用来定义对象B.抽象类的派生类若不实现纯虚函数,它也是抽象类C.纯虚函数的声明以“=0;”结束D.纯虚函数都不能有函数体16.有如下程序: #includeiostream using namespace std; class GA public; virtual int f()return 1; ; class GB:public GA public; virtual int f()
15、return 2; ; void show(GA g)coutg.f(); void display(GA ) int main() GA a:show(a);display(a); GB b:show(b);display(b); return 0; 运行时的输出结果是_。(分数:2.00)A.1111B.1211C.1112D.121217.下列选项中,与实现运行时多态性无关的是_。(分数:2.00)A.重载函数B.虚函数C.指针D.引用18.在一个抽象类中,一定包含有_。(分数:2.00)A.虚函数B.纯虚函数C.模板函数D.重载函数19.有如下程序: #includeiostream
16、using namespace std; class A public: virtual void f()cout1; void g()cout2; ; class B:public A public: virtual void f()cout3; void g()cout4; ; void show(A a.g();) int main() B b; show(b); return 0; 运行时的输出结果是_。(分数:2.00)A.12B.34C.14D.3220.有如下程序: #includeiostream using namespace std; class Publication /
17、出版物类 char name30; public: Publication(char *name=“未知名称“) strcpy(this-name,name); const cha * getName()constreturn name; virtual const char * getType()constreturn“未知类型“; ; class Book:public Publication /书类 public: Book(char *name): Publication(name) virtual const char * getType()constreturn“书“; ; voi
18、d showPublication(Publication int main() Book book(“精彩人生“); showPublication(book); return 0; 运行时的输出结果是_。(分数:2.00)A.未知类型:未知名称B.未知类型:精彩人生C.书:未知名称D.书:精彩人生21.下面是类 shape 的定义: class Shape public: Virtual void Draw()=0; ; 下列关于 Shape 类的描述中,正确的是_。(分数:2.00)A.类 Shape 是虚基类B.类 Shape 是抽象类C.类 Shape 中的 Draw 函数声明有误D
19、.语句“Shape s;”能够建立 Shape 的一个对象 s22.有如下程序: #includeiostream using namespace std; class B public: B(int xx):x(xx)+count;x+=10; virtual void show()const coutcount“_“xendl; protected: static int count; private: int x; ; class D:public B public: D(int xx,int yy):B(xx),y(yy)+count;y+=100; virtual void show
20、()const coutcount“_“yendl; 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_2023.有如下程序: #includeiostream usmg namespace std; class Instrument public: virtual void Display()=0; ; class Piano:public Instrumen
21、t 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 是一个虚基类24.有如下程序: #includeiostream using namespace std; class Book public: Book(char *t=“)strc
22、py(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* Categor
23、y()const;D.virtual char* Category() const=0;25.有如下程序: #includeiostream using namespace std; class Base public: virtual void function1() cout“0“; void function2() cout“1“; ; class Derived:public Base public: void function1() cout“2“; void function2() cout“3“; ; int main() Base* p=new Derived(); p-fun
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C112 答案 解析 DOC
