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

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

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

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

选择题

1.有如下程序:

#include<iostream>

using narnespace std;

class test{

private:

int a;

public:

test0{cout+’’constructor’’+endl;}

test(int a){cout+a+endl;}

test(const test&test)

{

a=test.a;

cout+’’copy constructor’’+en.d1;

}

test(){ cout+’’destructor\\(D)

A. 3

B. constructor

destructor

C. copy constructor

destructor

D. 3

destructor

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

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

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

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

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

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

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

3.有如下程序:

#include<iostream>

using namespace std;

class Part{

public:

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

~Part(){cout<<val;}

private:

int val;

};

class 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。

4.有如下程序:

#include<iostream>

using namespace std;

class Base {

public:

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

};

class Derived:public Base {

public:

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

private:

Base val;

};

int main(){

Derived d(1);

return 0;

}

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

A. 0

B. 1

C. 01

D. 001

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

5.有如下类定义:

class MyClass{

Int value;

public;

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

int gerValueoconst{return value;}

};

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

A. 1个

B. 2个

C. 3个

D. 4个

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

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

A. 该类没有定义任何有参构造函数

B. 该类没有定义任何无参构造函数

C. 该类没有定义任何构造函数

D. 该类没有定义任何成员函数

解析:如果一个类中定义了一个缺省的构造函数,则使用该函数。如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的共有缺省构造函数。

7.有如下程序:

#include<iostream>

using namespace std;

class Sample{

public:

Sample(){}

~Sample(){cout<<’*’;)

};

int main(){

Sample temp[2],*pTemp[2];

return 0;

}

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号