【计算机类职业资格】国家二级C++机试(类和对象)模拟试卷16及答案解析.doc
《【计算机类职业资格】国家二级C++机试(类和对象)模拟试卷16及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级C++机试(类和对象)模拟试卷16及答案解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(类和对象)模拟试卷 16及答案解析(总分:52.00,做题时间:90 分钟)一、选择题(总题数:26,分数:52.00)1.有如下程序 #inc1udeiostream #inc1udeiomanip using namespace std; c1ass MyClass public: MyClass()coutA;) MyClass(charc)coutc; MyClass()coutB; ; int main() MyClass p1,*p2; p2 newMyClass(X); delete p2; retum 0; 执行这个程序屏幕上将显示输出( )。(分数:2.0
2、0)A.ABXB.ABXBC.AXBD.AXBB2.有如下程序: #inc1udeiostream using namespace std; c1ass test private: int a; public: test0 cout+“constructor“+end1; test(int a)cout+a+end1;) test(const test test( )Cout+“dcstructor“+end1; ; int main() test A(3); retum 0; 运行时输出的结果是( )。(分数:2.00)A.3B.constructor destructorC.copy De
3、structorD.3 destructor3.对于一个类定义,下列叙述中错误的是( )。(分数:2.00)A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数4.有如下程序: #inc1udeiostream using namespace std; c1ass Part public: Part(int x=0):val(x)coutval; Part0 coutval;) pr
4、ivate: int val, ; c1ass Whole public: Whole(int x,int y,int z=0):p2(x),p1(y),val(z)coutval;) Whole()coutval; private: Part p1,p2; int val; ; int main() Whole obj(1,2,3); return 0; 程序的输出结果是( )。(分数:2.00)A.123321B.213312C.213D.1231235.有如下程序: #inc1udeiostream using namespace std; c1ass Base public: Base
5、(int x=0)coutx; ; c1ass Derived:public Base public: Derived(int x=0)coutx, private: Base val; ; int main() Derived d(1); retum 0; 程序的输出结果是( )。(分数:2.00)A.0B.1C.01D.0016.有如下类定义: c1ass MyClass Int value, public; MyClass(int n): value (n) int gerValue()const return value; ; 则类 MyClass的构造函数的个数是( )。(分数:2.
6、00)A.1个B.2个C.3个D.4个7.在 C+中,编译系统自动为一个类生成缺省构造函数的条件是( )。(分数:2.00)A.该类没有定义任何有参构造函数B.该类没有定义任何无参构造函数C.该类没有定义任何构造函数D.该类没有定义任何成员函数8.有如下程序: #inc1udeiostream using namespace std; c1ass Samp1e public: Samp1e() Samp1e()cout*; ; int main() Samp1e temp2, *pTemp2; retum 0; 执行这个程序输出星号(*)的个数为( )。(分数:2.00)A.1B.2C.3D.
7、49.有如下程序: #inc1udeiostream using namespace std; c1ass MyClass public: MyClass(int i=0)cout1; MyClass(const MyClass MyClass return*tlus; MyClass()cout4; ; int main() MyClass obj1(l),obj2(2),obj3(objl); retum 0: 运行时的输出结果是( )。(分数:2.00)A.112444B.11114444C.121444D.1131444410.有如下程序: #inc1udeiostream #inc1
8、udecstring using namespace std; c1ass XCF int a; public: XCF (int aa=0): a(aa)cout“1“; XCF(XCFx)a=xa;cout“2“; XCF()couta; int Geta()returna; ; int main() XCF dl(5), d2(d1); XCF *pd=new XCF(8); coutpdGeta(); delete pd; return 0; 运行时的输出结果是( )。(分数:2.00)A.1215588B.1218855C.12185D.12851211.有如下程序: #inc1ud
9、eiostream using namespace std; c1ass ONE int C; public: ONE():c(O)coutl;) ONE(int n): c(n)cout2;) ; c1ass TWO ONE one1; ONE one2; public: TWO(int m): one2(m)cout3; ; int main() TWO t(4); return 0; 运行时的输出结果是( )。(分数:2.00)A.3B.23C.123D.21312.Samp1e是一个类,执行下面语句后,调用 Samp1e类的构造函数的次数是( )。 Samp1e a2, *P=new
10、Samp1e;(分数:2.00)A.0B.1C.2D.313.有如下程序: #inc1ude iostream using namespace std; c1ass Toy public: Toy(char* _n) strcpy(name, _n), count+; Toy()count; char* GetName() retum name,) static int getCount() return count; private: char name10; static int count; ; intToy:count=0; int main() Toy tl(“Snoopy“), t
11、2(“Mickey“), t3(“Barbie“); coutt1getCount()end1; return 0; 还行时的输出结果是( )。(分数:2.00)A.1B.2C.3D.运行时出错14.有如下程序: #inciude iostream using namespace std; c1ass Name char name20; public: Name() strcpy(name,“); cout?; Name(char *fname) strcpy(name,fname); cout?; ; int main() Name names3=Name(“张三“),Name(“李四“);
12、 return 0; 运行此程序输出符号?的个数是( )。(分数:2.00)A.0B.1C.2D.315.有如下程序 #inc1ude iostream using namespace std; c1ass Test public: Test() Test(const Testretum t; int main()Test x,y; x=fun(y);return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.无输出B.1C.11D.11116.若 MyClass为一个类,执行“MyClass a41, *p5;“语句时会自动调用该类构造函数的次数是( )。(分数:2.00)A.
13、2B.5C.4D.917.有如下程序: #inc1ude iostream using namespace std; c1ass CD public: CD()couF,C; private: char name80; ; int main()CD a,*b, d2;return 0; 运行时的输出结果是( )。(分数:2.00)A.CCCCB.CCCC.CCD.C18.有如下程序: #inc1ude iostream using namespace std; c1ass XA int a; public: static int b; XA(int aa):a(aa)b+; XA() int
14、get()retum a; ; int XA:b =0; int main() XA dl(2),d2(3); coutd1get()+d2get()+XA:bend1; return 0; 运行时的输出结果是( )。(分数:2.00)A.5B.6C.7D.819.下列关于析构函数的描述中,错误的是( )。(分数:2.00)A.析构函数可以重载B.析构函数由系统自动调用C.每个对象的析构函数只被调用一次D.每个类都有析构函数20.下列关于构造函数的描述中,错误的是( )。(分数:2.00)A.构造函数名与类名相同B.构造函数可以有返回值C.构造函数可以重载D.每个类都有构造函数21.若 PAT
15、是一个类,则程序运行时,语句“PAT*ad3;”调用 PAT的构造函数的次数是( )。(分数:2.00)A.0B.1C.2D.322.有如下程序: #inc1udeiostream using namespace std; c1ass MyClass public: MyClass () cout *; MyClass (MyClass MyClass() cout ; ; int main(), MyClass a; Myc1ass b(a); return 0; 运行时的输出结果是( )。(分数:2.00)A.*#B.#*C.*#D.#*23.有如下程序: #inc1udeiostream
16、 using namespace std; c1ass Monkey public: Monkey() coutM; Monkey(char n) coutn; Monkey() coutY; ; int main() Monkey p1,*p2; p2=new Monkey(X); delete p2; return0; 运行这个程序的输出结果是( )。(分数:2.00)A.MYXB.MYMYC.MXYD.MXYY24.下列关于类成员对象构造函数调用顺序的叙述中,正确的是( )。(分数:2.00)A.与它们在初始化列表中的顺序相同B.与它们在类中声明的顺序相同C.与析构函数的调用顺序相同D.
17、顺序不确定25.有如下程序: #inc1udeiostream #inc1udecstring using namespace std; c1ass MyString public: char str80; MyString(const char*s) strcpy(str,s);) MyString ; ostream int main() MyString x(“abc“),y(“cde“); cout(x+=y)end1; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.abcB.cdeC.abcdeD.abccde26.下列关于 this指针的叙述中,正确的是
18、( )。(分数:2.00)A.任何与类相关的函数都有 this指针B.类的成员函数都有 this指针C.类的友元函数都有 this指针D.类的非静态成员函数才有 this指针国家二级 C+机试(类和对象)模拟试卷 16答案解析(总分:52.00,做题时间:90 分钟)一、选择题(总题数:26,分数:52.00)1.有如下程序 #inc1udeiostream #inc1udeiomanip using namespace std; c1ass MyClass public: MyClass()coutA;) MyClass(charc)coutc; MyClass()coutB; ; int
19、main() MyClass p1,*p2; p2 newMyClass(X); delete p2; retum 0; 执行这个程序屏幕上将显示输出( )。(分数:2.00)A.ABXB.ABXBC.AXBD.AXBB 解析:解析:此题考查的是构造函数和析构函数。构造函数在对象被创建的时候由系统自动调用,而析构函数在对象的生存期即将结束的时候由系统自动调用。此题中,主程序在创建 MayClass类的对象 p1时,调用 MayClass类的默认构造函数,输出字母 A:然后在创建p2 对象时,调用带字母参数的构造函数,输出字母 X;语句 delete p2;调用析构函数,输出字母 B:在主函数退
20、出时,调用析构函数清除对象 p1,输出字母 B。2.有如下程序: #inc1udeiostream using namespace std; c1ass test private: int a; public: test0 cout+“constructor“+end1; test(int a)cout+a+end1;) test(const test test( )Cout+“dcstructor“+end1; ; int main() test A(3); retum 0; 运行时输出的结果是( )。(分数:2.00)A.3B.constructor destructorC.copy De
21、structorD.3 destructor 解析:解析:此题考查的是构造函数和析构函数。一个类可以有多个构造函数,但只能有一个析构函数。每一个对象在被创建时,都会隐含调用众多构造函数中的一个,而在销毁时又会隐含调用唯一的析构函数。此题中,主函数创建对象 A是会隐含调用 test(int a)这个构造函数,输出 3;接着主函数结束,对象 A销毁又隐含调用test()析构函数输出 destructor。3.对于一个类定义,下列叙述中错误的是( )。(分数:2.00)A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数 C.如
22、果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数解析:解析:此题考查的是构造函数。如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数。但只要定义了一个任意的构造函数,就不会生成缺省构造函数了。4.有如下程序: #inc1udeiostream using namespace std; c1ass Part public: Part(int x=0):val(x)coutval; Part0 coutval;) private: int val, ; c1ass Whole publ
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 机试 对象 模拟 试卷 16 答案 解析 DOC
