当前位置: 首页 > 计算机二级 > 计算机二级模拟试题 > 2021年12月计算机二级C++考前模拟练习(11月18日)

2021年12月计算机二级C++考前模拟练习(11月18日)

更新时间:2021-11-18 13:13:27 来源:网络 浏览46 收藏23
摘要 不到20天,即将迎来2021年12月计算机二级考试了,大家都准备的怎么样了呢?为了帮助大家更好地备考,环球网校小编整理了“2021年12月计算机二级C++考前模拟练习(11月18日)”,更多考试科目模拟练习敬请持续关注环球网校计算机二级频道。

2021年12月计算机二级C++考前模拟练习(11月18日)

1.在下列程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD(  )。

#include

usingnamespacestd;

classA

{

public:A(){cout<<’A’;}

};

classB:

{

public:B(){cout<<’B’;}

};

classC:virtualpublicA

{

public:C(){cout<<’C’;}

};

classD:publicB,publicD

{

public:D(){cout<<’D’;}

};

voidmain(){D04;}

A.publicA

B.privateA

C.protectedA

D.virtualpublicA

2.有如下程序:

#include

usingnamespacestd;

classAA{

intn;

public:

AA(intk):n(k){}

intget(){returnn;}

intget()const{returnn+1;}

};

intmain()

{

AAa(5);

constAAb(6);

cout<  return0;

}

执行后的输出结果是(  )。

A.55

B.57

C.75

D.77

3.有如下程序:

#include

usingnamespacestd;

classDemo

{

public:

Demo(){cout<<"defaultconstructor ";}

Demo(constDemo&x){cont<<"copyconstruc-

tor ";}

};

DemouserCode(Demob){Democ(b);returnC;}

intmain()

{

Demoa;d;

cout<<"callinguserCode() ";

d=userCode(a):

return0;

}

执行上面程序的过程中,构造函数Demo(  )和Demo(constDem0&x)被调用的次数分别是(  )。

A.1和1

B.1和2

C.2和3

D.2和4

4.有如下程序:

#include

usingnamespacestd;

classDA{

intk;

public:

DA(intx=1):k(x){}

~DA(){cout<  };

intmain(){

DAd[]={DA(3),DA(3),DA(3));

DA+p=newDA[2];

delete[]p;

return();

}

这个程序的输出结果是(  )。

A.111

B.333

C.11333

D.11133

5.有如下程序:

#include

usingnamespacestd;

classMyClass{

public:

MyClass(intx):val(x){}

voidPrint()const{cout<<"const:val="<<  voidPrint(){cout<<"val="<  private:

intval;

};

intmain(){

constMyClassobj1(10);

MyClassobj2(20);

obj1.Print();

obj2.Print();

return0;

}

程序的输出结果是(  )。

A.va1=10const:va1=20

B.const:va1=10const:va1=20

C.const:va1=10val=20

D.val=10va1=20

参考答案:

1.D。【解析】由主函数main入手,定义了类D对象obi。其中D为类B和C的公有继承,A是C的虚基类。题目中要求的输出结果为ABCD,依次为类A、类B、类C、类D中构造函数的输出语句。为了保证基类通过多条路径被派生类继承,即保证A只被继承一次,输出一个A,所以不但需要声明A为C的虚基类,同样也要声明A为B的虚基类。

2.B。【解析】所谓函数重载,是指同一个函数名可以对应着多个函数的实现,类AA中定义了两个9et()函数,一个为普通成员函数,另一个为常成员函数。一般对象a既可以调用普通成员函数get,也可以调用常成员函数get,但是由于常成员函数不能更新对象的数据成员,所以题中通过对象a调用的函数为普通成员函数get(),返回值为5。常对象b只能调用常成员函数,所以题中通过对象b调用的函数为常成员函数get(),返回值为7。

3.C。【解析】函数Demo()为构造函数,而Demo(constDemo&x)为复制构造函数。C++在创建一个对象时,会自动调用类的构造函数,所以语句"Demoa,d;"将调用函数Demo()2次。当一个对象作为实参传递给函数时为初始化形参,要调用拷贝构造函数;在函数返回一个对象时调用拷贝构造函数。由此可知语句d=userCode(a);调用拷贝构造函数3次。

4.C。【解析】本题考查的是析构函数和对象的生存期。在主函数中,首先定义了一个DA类对象数组d,从初始化列表中可以看出,它包含三个对象;然后通过new运算符动态创建了一个DA类的对象数组,并将首地址赋给DA类指针P;接着通过delete[]运算符销毁指针P所指向的数组,故此时会输出11。最后函数结束,销毁前面定义的对象数组d,会输出333。故最后的输出结果是11333。

5.D。【解析】在建立类对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承的声明顺序;执行成员对象的构造函数,调用顺序按照各个成员在类中的声明顺序;执行自身的构造函数。根据以上总结以及题意可知答案选择D选项。

以上就是“2021年12月计算机二级C++考前模拟练习(11月18日)”及其相关内容,想及时获知2021年12月考试时间,大家可通过点击使用环球网校“ 免费预约短信提醒”,即可及时获得时间提醒。环球网校友情提示:为方便小伙伴们更好地备考,环球网校特地为大家准备了计算机二级复习资料,如有需要请点击文章下方“免费下载>>>2021年计算机二级考试真题及备考资料”下载学习。

编辑推荐

分享到: 编辑:环球网校

资料下载 精选课程 老师直播 真题练习

计算机二级资格查询

计算机二级历年真题下载 更多

计算机二级每日一练 打卡日历

0天
累计打卡
0人
打卡人数
去打卡

预计用时3分钟

计算机二级各地入口
环球网校移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载

返回顶部