[计算机类试卷]国家二级C++机试(类和对象)模拟试卷19及答案与解析.doc
《[计算机类试卷]国家二级C++机试(类和对象)模拟试卷19及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(类和对象)模拟试卷19及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(类和对象)模拟试卷 19及答案与解析 一、选择题 1 有如下程序: #include iostream using narnespace std; class test private: int a; public: test0cout+constructor+endl; test(int a)cout+a+endl; test(const test调用 PAT的构造函数的次数是 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 21 有如下程序: #include iostream using namespace std; class MyClass pu
2、blic: MyClass () cout *; MyClass (MyClass&a) cout #; MyClass() cout ; ; int main(); MyClass a; Myclass b(a); return 0; 运行时的输出结果是 ( )。 ( A) *# ( B) #* ( C) *# ( D) #* 22 有如下程序: #include iostream using namespace std; class Monkey public: Monkey() cout M; Monkey(char n) cout n; Monkey() cout Y; ; int m
3、ain() Monkey p1, *p2; p2=new Monkey(X); delete p2; return 0; 运行这个程序的输出结果是 ( )。 ( A) MYX ( B) MYMY ( C) MXY ( D) MXYY 23 下列关于类成员对象构造函数调用顺序的叙述中,正确的是 ( )。 ( A)与它们在初始化列表中的顺序相同 ( B)与它们在类中声 明的顺序相同 ( C)与析构函数的调用顺序相同 ( D)顺序不确定 24 有如下程序: #include iostream #include cstring using namespace std; class MyString p
4、ublic: char str80; MyString(const char*s)strcpy(str, s); MyString&operator+=(MySring a) strcat(str, a str); return*this; ; ostream&operator (ostream&s,const MyString&z)return s z str; int main() MyString x(abe), y(ede); eout (x+=y) end1; return 0; 运行这个程序的输出结果是 ( )。 ( A) ahc ( B) Cde ( C) abCde ( D)
5、ahccde 25 下列关于 this指针的叙述中,正确的是 ( )。 ( A)任何与类相关的函数都有 this指针 ( B)类的成员函数都有 this指针 ( C)类的友元函数都有 this指针 ( D)类的非静态成员函数才有 this指针 26 有如下头文件: int f1(); static int f2(); class MA public: int f3(); static int f4(); ; 在所描述的函数中 ,具有隐含的 this指针的是 ( )。 ( A) fl ( B) f2 ( C) f3 ( D) f4 27 下列程序段中包含 4个函数。其中具有隐含 this指针的是
6、 ( )。 int fun1(); class Test public: int fun2(); friend int fun3(): static int fun4(); ( A) fun1 ( B) fun2 ( C) fun3 ( D) fun4 国家二级 C+机试(类和对象)模拟试卷 19答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 此题考查的是构造函数和析构函数。一个类可以有多个构造函数,但只能有一个析构函数。每一个对象在被创建时,都会隐含调用众多构造函数中的一个,而在销毁时又会隐含调用唯一的析构函数。此题中,主函数创建对象 A是会隐含调用。 test(int a)这个
7、构造函数,输出 3;接着主函数结束,对象 A销毁又隐含调用 test()析构函数输出 destructor。 【知识模块】 类和对象 2 【正确答案】 B 【试题解析】 此题考查的是构造函数。 如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数。但只要定义了一个任意的构造函数,就不会生成缺省构造函数了。 【知识模块】 类和对象 3 【正确答案】 B 【试题解析】 此题考查的是类的构造与析构。建立类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序 (自左向右 )接着执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺
8、序,最后执行自身的构造函数。析构顺序与之相反。本题中, Whole类中有两个 Part类的成员 p1和 p2,根据它们定义的顺序,先构造 p1再构造 p2。所以,首先被构造的是 p1(y),输出 2;第二个被构造的是 p2(x),输出 1;最后调用析构函数,输出 val的值 3;析构函数调用顺序与构造函数相反。故最后输出 213312。 【知识模块】 类和对象 4 【正确答案】 D 【试题解析】 此题考查的是类的构造。建立类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序 (自左向右 )-执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺
9、序 -执行自身的构 造函数。本题中,首先会构造基类 Base,调用 Base类的构造函数,输出 0:然后还定义了一个 Base类的对象,再次调用 Base类的默认构造函数输出 0;最后构造自身,因主函数中传入了构造参数 1,所以输出 1。故最后输出结果是: 001。 【知识模块】 类和对象 5 【正确答案】 A 【试题解析】 此题考查的是构造函数的概念。构造函数的名字必须与类名相同;构造函数不指定返回值类型;构造函数可以重载;在创建对象时,系统会自动调用构造函数。 【知识模块】 类和对象 6 【正确答案】 C 【 试题解析】 如果一个类中定义了一个缺省的构造函数,则使用该函数。如果一个类中没有
10、定义任何构造函数,编译器将生成一个不带参数的共有缺省构造函数。 【知识模块】 类和对象 7 【正确答案】 B 【试题解析】 在 main函数中,定义了 Sample temp2的一个包含两个对象的数组,还定义了一个 *pTemp2,是包含两个指向类对象的指针的数组,故定义的指针当 main函数结束后是不会调用析构函数的,只有包含两个对象的数组 temp2会调用析构函数,因此只输出两个 *。 【知识模块】 类 和对象 8 【正确答案】 A 【试题解析】 当创建 MyClass类对象 obj1(1)和 obj2(2)时候,调用类构造函数会输出两个 1,然后创建类对象 obj3(obj(1)时,会调
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 对象 模拟 19 答案 解析 DOC
