1、国家二级 C+机试(类和对象)模拟试卷 19及答案解析(总分:54.00,做题时间:90 分钟)一、选择题(总题数:27,分数:54.00)1.有如下程序: #includeiostream using narnespace std; class test private: int a; public: test0cout+constructor+endl; test(int a)cout+a+endl; test(const test调用 PAT的构造函数的次数是( )。(分数:2.00)A.0B.1C.2D.321.有如下程序: #includeiostream using namespa
2、ce std; class MyClass public: MyClass () cout *; MyClass (MyClass调用 PAT的构造函数的次数是( )。(分数:2.00)A.0 B.1C.2D.3解析:解析:语句“PAT(*ad)3”定义了含有 3个元素的指向类 PAT类型的指针数组 ad。21.有如下程序: #includeiostream using namespace std; class MyClass public: MyClass () cout *; MyClass (MyClass&a) cout #; MyClass() cout; ; int main();
3、 MyClass a; Myclass b(a); return 0; 运行时的输出结果是( )。(分数:2.00)A.*#B.#*C.*# D.#*解析:解析:程序在执行时,先创建类对象 a,输出*,再创建类对象 b,输出#,然后再依次调用类对象b和 a的析构函数,输出两个。22.有如下程序: #includeiostream using namespace std; class Monkey public: Monkey() coutM; Monkey(char n) coutn; Monkey() coutY; ; int main() Monkey p1,*p2; p2=new Mon
4、key(X); delete p2; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.MYXB.MYMYC.MXYD.MXYY 解析:解析:在类 Monkey中定义了默认的构造函数和带参数的构造函数,所以在主函数中,定义 Monkey的对象 p1时,调用默认的构造函数,输出 M;定义 Monkty的对象 p2讨,调用带参数的构造函数,输出X;在执行“delete p2;”语句时,调用析构函数,输出 Y,在退出程序时,调用析构函数输出 Y。23.下列关于类成员对象构造函数调用顺序的叙述中,正确的是( )。(分数:2.00)A.与它们在初始化列表中的顺序相同B.与它们在类
5、中声明的顺序相同 C.与析构函数的调用顺序相同D.顺序不确定解析:解析:类成员对象构造函数的调用是按照在类中定义的顺序进行的,而不是按照构造函数说明后的冒号顺序进行构造的。24.有如下程序: #includeiostream #includecstring using namespace std; class MyString public: char str80; MyString(const char*s)strcpy(str,s); MyString&operator+=(MySring a) strcat(str,astr); return*this; ; ostream&operat
6、or(ostream&s,const MyString&z)return szstr; int main() MyString x(abe),y(ede); eout(x+=y)end1; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.ahcB.CdeC.abCdeD.ahccde 解析:解析:在类 MyString中,定义了带参数的构造函数 MyString(const char*s),其作用是把 s指向的字符串拷贝到字符组 str中。在类中还对运算+=进行重载定义,其作用是把字符串 s仃和 a相连接并赋给 str,所以在主函数中执行 x+=y时,结果为 abcc
7、de。25.下列关于 this指针的叙述中,正确的是( )。(分数:2.00)A.任何与类相关的函数都有 this指针B.类的成员函数都有 this指针C.类的友元函数都有 this指针D.类的非静态成员函数才有 this指针 解析:解析:此题考查的是 this指针的使用。类的每一个成员函数都有一个隐含的常量指针,即 this指针。类的静态成员函数不能含有 this指针,因为 this指针是一个指向本对象的指针。26.有如下头文件: int f1(); static int f2(); class MA public: int f3(); static int f4(); 在所描述的函数中,具
8、有隐含的 this指针的是( )。(分数:2.00)A.flB.f2C.f3 D.f4解析:解析:此题考查的是。this 指针。this 指针是一个隐含的指针,它隐含于每个类的非静态成员函数中,它明确地表示出了成员函数当前操作的数据所属的对象。题目中,只有 f3()满足“类的非静态成员函数”的要求,故应选 C选项。27.下列程序段中包含 4个函数。其中具有隐含 this指针的是( )。 int fun1(); class Test public: int fun2(); friend int fun3(): static int fun4();(分数:2.00)A.fun1B.fun2 C.fun3D.fun4解析:解析:this 指针是成员函数所属对象的指针,它指向类对象的地址。成员函数通过这个指针知道自己属于哪一个对象。this 指针是一个隐含的指针,它隐含于每个类的非静态成员函数中,它明确的地表示出了成员函数当前操作的数据所属的对象。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1