首页 > 全部 > 二级C++ > 2020年3月国家二级C++机试(操作题)真题试卷汇编2

2020年3月国家二级C++机试(操作题)真题试卷汇编2

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

2020年3月国家二级C++机试(操作题)真题试卷汇编2

基本操作题

1.请打开考生文件夹下的解决方案文件proj1,其中的主程序文件main.cpp中定义有Xabc类和主函数main。在程序文本中位于每行“//ERROR******found******”下面的一行有错误,请加以更正。

更正后程序的输出为:

2 5 8 7 12

34

注意:只允许修改每个“//ERROR******found******”下面的一行语句,不允许改动程序中的其他任何内容。

#include<iostream>

using namespace std;

clasS Xabc {

int * a;int n;

public:

Xabc(int aa[],int nn):n(nn){//构造函数

//ERROR **********found**********

a=int[n];

for(int i=0;i<n;i++)

a[i]=aa[i];

}

int sum(){

int s=0;

for(int i=0;i<n;i++)

s+=a[i];

//ERROR **********found**********

return * s;

}

};

int main(){

int a[5]={2,5,8,7,12};

Xabc x(a,5);

int i;

for(i=0;i<5;i++)

cout<<a[i]<<’ ’;

cout<<endl;

//ERROR**********found**********

int b=sum();

cout<<b<<endl;

return 0;

}

(1)a=new int[n];

(2)retum s;

(3)int b=x.sum();

解析:(1)Xabe类定义中,a是int类型的整型指针,需要动态分配一段内存,将首地址赋给a,修改为:a=new int[n];

(2)成员函数sum的功能是求a指向的数组元素之和s,并将s返回,修改为:return s;

(3)main函数定义数组a,并使用a构造Xabe类型的对象x,然后调用sum成员函数求得数组a的元素之和,修改为:int b=x.sum();

【注】本题Xabc类还应该定义一个析构函数,用来释放成员a的内存,防止内存泄漏。

简单应用题

2.请打开考生文件夹下的解决方案文件proj2,其中的主程序文件main.cpp中定义有类XBase和XDerived,以及主函数main。程序文本中位于每行“//*********found*********”下面的一行内有一处下划线标记,请在每个下划线标记处填写合适的内容,并删除掉下划线标记。

经修改后运行程序,得到的输出结果为:61 29

#include<iostream>

using namespace std;

class XBase

{

private;

int mem1, mem2;

public:

//用m1和m2分别初始化数据成员mem1和mem2

//*******found*******

XBase(int m1,int m2):mem1(m1),__________{}

//squareSum函数定义,返回两个数据成员平方之和

//*******found*******

virtual int squareSum()

};

class XDerived:public XBase

{

private:

int mem3;

public:

//利用m1和m2作为调用基类构造函数的实际参数

//*******found*******

XDerived(int m1,int m2,int m3):_________,mem3(m3){}

//*******found*******

________{return XBase::squareSum()+mem3*mem3;}

};

int main(){

XDerived b(2,3,4);

XBase a(5,6),*p;

p=&a;

cout<<p一>squareSum()<<’ ’;

p=&b;

cout<<p一>squareSum()<<endl;

return 0;

}

(1)mem2(m2)

(2){return mem1 * meml+mem2 * mem2;}

(3)XBase(m1,m2)

(4)int squareSum()或virtual int squareSum()

解析:(1)XBase类的构造函数使用成员初始化列表完成对mem1和mem2的初始化,代码为:XBase(int m1,int m2):metal(m1),mere2(m2){}

(2根据题意,XBase类的成员函数squareSum要求返回两个成员变量meml和mem2的平方之和,代码为:virtual int squareSum(){return mem1 * mem1+mem2 * mem2;}

(3)XDerived类继承XBase,所以构造函数的成员初始化列表中首先要调用XBase的构造函数,完成基类的初始化,代码为:XDerived(int m1,int m2,int m3):XBase(m1,m2),mem3(m3){}

(4)XDerived类继承XBase,然后重写了基类的虚函数squareNum,使XDerived的成员函数squareNum返回三个成员的平方和,直接调用基类的squareNum计算mem1和mem2的平方和,然后将返回值再累加mem3的平方和,代码如下:

int squareSum(){return XBase::sq

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

剩余未完,查看全文
收藏
2020年3月国家二级C++机试(操作题)真题试卷汇编2

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号