当前位置: 首页 > 计算机二级 > 计算机二级模拟试题 > 2020年全国计算机二级C++模拟练习题(七)

2020年全国计算机二级C++模拟练习题(七)

更新时间:2020-01-10 09:43:36 来源:环球网校 浏览56 收藏11
摘要 备考2020年全国计算机二级C++考试的小伙伴们,复习的都怎么样了呢?环球网校小编整理了2020年全国计算机二级C++模拟练习题供大家参考复习,小伙伴们快来做一做,测试一下自己吧!了解更多全国计算机二级C++敬请关注环球网校计算机二级频道。

2020年全国计算机二级C++模拟练习题

1[单选题]下面关于函数模板的表述中不正确的是(  )。

A.类模板的成员函数都是模板函数

B.类模板本身在编译过程中不会产生任何代码

C.类模板只能有虚拟类型的参数

D.用类模板定义一个对象时,实参不能省略

参考答案:C

2[单选题] 在软件开发中,需求分析阶段产生的主要文档是(  )。

A.软件集成测试计划

B.软件详细设计说明书

C.用户手册

D.软件需求规格说明书

参考答案:D

参考解析:需求分析阶段只能产生需求分析规格说明书,A测试说明书是软件测试阶段生成的,B软件详细设计说明数是设计阶段生产,C用户手册是软件发布时随软件一同交付给用户的。

3[单选题] 有下列程序:

#include

voidmain(  )

{inti=5;

do

{if(i%3=1)

if(i%5==2)

{printf("*%d",i);break;}

i++:

}while(i!=O);

printf("\n");

}

程序的运行结果是(  )。

A.*7B.*3*5C.*5D.*2*6

参考答案:A

参考解析:本题考查d0…while循环,先执行循环体,再判断条件是否成立,函数实现的功能是找出满足一个数,它除3时余1,除5时余2,然后打印“*”和这个数从5开始,等于7时恰好符合条件,输出,最后循环结束。

4[简答题]使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:

sizeof(S1)=5

sizeof(s2)=10

sizeof(s3)=1

注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。

(1)不能删除assert()语句。

(2)只能修改后面的数字。

提示:assert函数如果为假,则会产生一个中断异常。

试题程序:

#include

#include

voidmain()

{

char*s1="abc":

//********error********

assert(sizeof(s1)==3):

cout<<"sizeof(s1)=5"<

chars2[10]="ab":

//********error********

assert(sizeof(s2)==2);

cout<<"sizeof(s2)=10"<

chars3=23:

//********error********

assert(sizeof(s3)==4);

cout<<"sizeof(s3)=1"<

return;

}

参考解析:

(1)应改为“assert(sizeof(s1)==4);”。

(2)应改为“assert(sizeof(s2)==1O);”。

(3)应改为“assert(sizeof(s3)==1);”。

【解析】assert函数如果为假,则会产生一个中断异常。所以要让它正常执行输出结果,那么assert函数只有为真,才不会产生中断异常。“assert(sizeof(s1)==3);”语句中“sizeof(s1)==3”为假,这会使程序产生异常,不能正常执行。因为str1的值为abc,但是它还有一个尾符,它的长度应该是4,而不是3,所以在第1处修改为“assert(sizeof(s1)==4);”。str2[10]说明,str2的空间为10,在第2处修改为“assert(sizeof(s2)==10);”。charstr3=23;语句说明23是字符,所占存储空间为1,所以修改为“assert(sizeof(s3)==1);”。

5[简答题]请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数0perator=,以实现深层复制。

要求:

补充编制的内容写在“//************333************”与“//****************666*************”之间。不得修改程序的其他部分。

注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。

//CDeepCopy.h

#include

#include

using namespace std;

class CDeepCopy

{

public:

int n;//动态数组的元素个数

int *p;//动态数组首地址

CDeepCopy(int);

~CDeepCopy();

CDeepCopy&operator=(const CDeepCopy&r);//赋值运算符函数

};

void writeToFile(char});

//main.cpp

#include”CDeepCopy.h”

CDeepCopy::一CDeepCopy(){delete[]P;}

CDeepCopy::CDeepCopy(int k){n=k;p=new int[n];}//构造函数实现

CDeepCopy&CDeepCopy::0perator=(const CDeepCopy&r)//赋值运算符函数实现

{

//***********333*********

//***********666***********

}

int main()

{

CDeepCopy a(2),d(3);

a.p[O]=1;d.p[O]=666;//对象a,d数组元素的赋值

{

CDeepCopy b(3);//调用赋值运算符函数

a.p[O]=88;b=a;

cout<

}

cout<

cout<<”d fade away;\n”;

cout<

writeToFile(””);

return 0;

}

参考解析:

lq=r.n;//把对象r字符长度赋值给n

delete[]P;//删除动态数组P

P=new int[n];//给动态数组P分配空间为n

for(int i=0;i

//遍历对象r中的数组P

P[i]=r.P[i];//把r.P[i]赋值给P[i]

retum*this://返回被赋值的对象

更多2020年全国计算机二级C++模拟练习题,请继续关注环球网校计算机二级频道。需要及时了解考试动态的小伙伴可“ 免费预约短信提醒”届时环球网校会及时为大家推送2020年计算机二级考试相关信息提醒。环球网校友情提示:对于想要参加计算机二级考试的小伙伴们,环球网校特地为您准备了计算机二级考试资料,如有需要请点击文章下方“免费下载>>>计算机二级考试资料”下载学习。

编辑推荐

分享到: 编辑:环球网校

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

计算机二级资格查询

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

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

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

预计用时3分钟

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

安卓版

下载

iPhone版

下载

返回顶部