首页 > 全部 > 二级C++ > 国家二级C++机试(类和对象)模拟试卷16

国家二级C++机试(类和对象)模拟试卷16

本单篇文档共10912字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C++ 章节练习 4912人下载
价格: 1.00 原价:¥9.60
收藏

国家二级C++机试(类和对象)模拟试卷16

选择题

1.有如下程序

#inc1ude<iostream>

#inc1ude<iomanip>

using namespace std;

c1ass MyClass{

public:

MyClass(){cout<<’A’;)

MyClass(charc){cout<<c;}

~MyClass(){cout<<’B’;}

};

int main(){

MyClass p1,*p2;

p2 newMyClass(’X’);

delete p2;

retum 0;

}

执行这个程序屏幕上将显示输出( )。(D)

A. ABX

B. ABXB

C. AXB

D. AXBB

解析:此题考查的是构造函数和析构函数。构造函数在对象被创建的时候由系统自动调用,而析构函数在对象的生存期即将结束的时候由系统自动调用。此题中,主程序在创建MayClass类的对象p1时,调用MayClass类的默认构造函数,输出字母A:然后在创建.p2对象时,调用带字母参数的构造函数,输出字母X;语句delete p2;调用析构函数,输出字母B:在主函数退出时,调用析构函数清除对象p1,输出字母B。

2.有如下程序:

#inc1ude<iostream>

using namespace std;

c1ass test{

private:

int a;

public:

test0 {cout+\\(D)

A. 3

B. constructor destructor

C. copy Destructor

D. 3 destructor

解析:此题考查的是构造函数和析构函数。一个类可以有多个构造函数,但只能有一个析构函数。每一个对象在被创建时,都会隐含调用众多构造函数中的一个,而在销毁时又会隐含调用唯一的析构函数。此题中,主函数创建对象A是会隐含调用test(int a)这个构造函数,输出3;接着主函数结束,对象A销毁又隐含调用~test()析构函数输出destructor。

3.对于一个类定义,下列叙述中错误的是( )。(B)

A. 如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

B. 如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数

C. 如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数

D. 如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数

解析:此题考查的是构造函数。如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数。但只要定义了一个任意的构造函数,就不会生成缺省构造函数了。

4.有如下程序:

#inc1ude<iostream>

using namespace std;

c1ass Part{

public:

Part(int x=0):val(x){cout<<val;}

~Part0 {cout<<val;)

private:

int val,

};

c1ass Whole{

public:

Whole(int x,int y,int z=0):p2(x),p1(y),val(z){cout<<val;)

~Whole(){cout<<val;}

private:

Part p1,p2;

int val;

};

int main(){

Whole obj(1,2,3);

return 0;

}

程序的输出结果是( )。(B)

A. 123321

B. 213312

C. 213

D. 123123

解析:此题考查的是类的构造与析构。建立类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右)接着执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序,最后执行自身的构造函数。析构顺序与之相反。本题中,Whole类中有两个Part类的成员p1和p2,根据它们定义的顺序,先构造p1再构造p2。所以,首先被构造的是p1(y),输出2;第二个被构造的是p2(x),输出1;最后调用析构函数,输出val的值3;析构函数调用顺序与构造函数相反。故最后输出213312。

5.有如下程序:

#inc1ude<iostream>

using namespace std;

c1ass Base{

public:

Base(int x=0){cout<<x;}

};

c1ass Derived:public Base{

public:

Derived(int x=0){cout<<x,}

private:

Base val;

};

int main(){

Derived d(1);

retum 0;

}

程序的输出结果是( )。(D)

A. 0

B. 1

C. 01

D. 001

解析:此题考查的是类的构造。建立类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右)—>执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序.>执行自身的构造函数。本题中,首先会构造基类Base,调用Base类的构造函数,输出0;然后还定义了一个Base类的对象,再次调用Base类的默认构造函数输出0;最后构造自身,因主函数中传入了构造参数1,所以输出1。故最后输出结果是:001。

6.有如下类定义:

c1ass MyClass{

Int value,

public;

MyClass(int n): value (n){}

int gerValue()const{ return value;}

};

则类MyClass的构造函数的个数是( )。(A)

A. 1个

B. 2个

C. 3个

D. 4个

解析:此题考查的是构造函数的概念。构造函数的名字必须与类名相同;构造函数不指定返回值类型;构造函数可以重载:在创建对象时,系统会自动调用构造函数。

7.在C++中,编译系统自动为一个类生成缺省构造函数的条件是( )。(C)

A. 该类没有定

本文档预览:3600字符,共10912字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C++机试(类和对象)模拟试卷16

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号