(盘点)2019年9月二级C++试题及答案

发布于 2019-04-22 11:01  编辑:simi
0
计算机等级考试题库 扫码微信刷题


对自己狠一点,逼自己努力刷二级C++试题及答案,再过五年你将会感谢今天发狠的自己、恨透今天懒惰自卑的自己。我始终相信一句话:只有自己足够强大,才不会被别人践踏。


二级C++试题及答案

【1】

程序改错题

 

使用VC++6.0打开考生文件夹下的源程序文件

 

1.cpp,该程序运行时有误,请改正其中的错误,使程序正常运行,并使程序的输出结果为

 

平均值为29

 

最大值为112

 

最小值为-11

 

注意:错误的语句在//******error******的下面,修改该语句即可。

 

试题程序:

 

#include(iostream)

 

usingnamespacestd;

 

intmain()

 

{

 

inti,Ave,Min,Max;

 

intdata[8]={100,21,-73,86,14,0,-21,1};

 

Ave=0;

 

for(i=0:i<8:i++)

 

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

 

Ave=data[i];

 

Ave/=8

 

cout<<"平均值为:"<<AVE<<ENDL;< p>

 

Max=Min=data[O];

 

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

 

{

 

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

 

if(data[i](Max)Max=data[i];

 

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

 

if(data[i])Min)Min=data[i];

 

}

 

cout<<"最大值为:"<<MAX<<ENDL;< p>

 

cout<<"最小值为:"<<MIN<<ENDL;< p>

 

return0;

 

}

 

答案:(1)应改为“Ave+=data[i];”或“Ave=Ave+data[i];”。

 

(2)应改为“if(data[i])Max)Max=data[i];”。

 

(3)应改为“if(data[i](Min)Min=data[i];”。

 

 

 

【2】

简单应用题

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分的程序。实现函数sort(intA[],intn),用冒泡法对数组数据进行排序。所谓冒泡法,就是每次把相邻的两个数交换,较大的数交换到后面。这样下标从0到n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行n次下标从0到n-1的交换,则数组变成有序的,并且按由大到小排序。

 

注意:不能修改和删除程序的其他部分,也不能修改程序的结构。

 

试题程序:

 

#include

 

#defineN10

 

voidsort(intA[N],intn)

 

{

 

}

 

intmain()

 

{

 

intA[N]={1,50,17,69,87,42,90,-6,O,-11};

 

sort(A,10);

 

for(inti=0;i<SIZEOF(A) p sizeof(int);i++)<>

 

{

 

cout<<A[I]<<'';< p>

 

}

 

cout<<ENDL;< p>

 

return0;

 

}

 

答案:inti,j,k,t;

 

for(i=0;i(n-1;i++)

 

{

 

for(k=i,j=i+1;j<N;J++)< p>

 

if(A[k]<A[J]) p 如果前面的比后面的小则需要<>

 

交换

 

k=j;

 

if(k!=i)//交换

 

{

 

t=AEi3;

 

A[i]=A[k];

 

A[k]=t;

 

}

 

 

 

【3】

综合应用题

 

使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了类BA、PA1和PA2,其中PA1类由BA类公有派生,PA2类由PA1类公有派生。上述3个类的定义并不完整,请按要求完成下列操作,将程序补充完整。

 

程序输出结果如下:

 

1O

 

5

 

1057

 

(1)定义类BA的构造函数,该构造函数有一个整型的参数m,在构造函数中将m赋值给数据成员a。请在注释1之后添加适当的语句。

 

(2)定义类PA1的构造函数,该构造函数有两个整型的参数m和n,在构造函数中将m赋值给数据成员b,将n作为基类BA构造函数的参数值传人。请在注释2之后添加适当的语句。

 

(3)定义类PA2的构造函数,该构造函数有3个整型的参数m、n和k,在构造函数中请将m赋值给数据成员c,将n和k分别赋值给基类PA1构造函数的参数m和n。请在注释3之后添加适当的语句。

 

(4)完成类PA2的成员函数show的定义,该函数调用基类成员函数,输出基类私有成员a、b及类PA2自身的数据成员C的值,上述3个值在输出时用空格隔开。请在注释4之后添加适当的语句。

 

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

 

试题程序:

 

#include(iostream.h>

 

classBA

 

{

 

inta;

 

public

 

//********1********

 

intgeta(){returna;}

 

};

 

classPAl:publicBA

 

{

 

intb;

 

public

 

//********2********

 

intgetb(){returnb;}

 

};

 

classPA2:publicPAl

 

{

 

intC;

 

public

 

//********3********

 

voidshow()

 

{

 

//********4********

 

}

 

};

 

voidmain()

 

{

 

PA2a(7,5,10);

 

cout<<A.GETA()<<ENDL;< p>

 

cout<<A.GETB()<<ENDL;< p>

 

a.show();

 

}

 

答案:(1)应添加“BA(intm){a=m;}”。

 

(2)应添加“PAl(intm,intn):BA(n){b=m;}”。

 

(3)应添力Ⅱ“PA2(intm,intn,intk):PAl(n,k){C=m;)”。

 

(4)应添加“cout<<GETA()<<""<<GETB()<<""<<C<<ENDL;”。< p>

 

 

 

【4】

程序改错题

 

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。

 

本程序完成以下功能:

 

(1)获得输入的两个数字d1,d2(d1=6,d2=1)。

 

(2)输出两个中较大的一个(输出6)。

 

(3)计算d1/d2,如果d2等于0,返回-l(输出结果6)。

 

(4)输出d1+d2的结果(输出结果7)。

 

(5)输出d1+1的结果(输出结果7)。

 

(6)输出d2-1的结果(输出结果0)。

 

注意:错误的语句在/********error********/的下面。修改该语句即可。其他的语句不能修改。

 

试题程序:

 

#include(iostream.h>

 

voidmain()

 

{

 

intd1;

 

intd2;

 

intd3;

 

cout<<"pleaseinputtWOnumber:"<<ENDL;< p>

 

cin>>d1>>d2;

 

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

 

d3=(d1<D2)?DL:D2;< p>

 

cout<<"Maxdatais:"<<D3<<ENDL;< p>

 

//计算d1/d2如果d2等于0,返回-l

 

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

 

d3=(d2)?d1\d2:-l;

 

cout<<"d1/d2="<<D3<<ENDL;< p>

 

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

 

d3=(--dl)+(d2++);

 

cout<<"d1+d2="<<D3<<ENDL;< p>

 

cout<<"d1+1="<<D1<<ENDL;< p>

 

cout<<"d2-1="<<D2<<ENDL;< p>

 

return;

 

}

 

答案:(1)“d3=(d1<D2)?D1:D2;”应改为“D3=(D1)D2)?D1:D2;”。< p>

 

(2)“d3=(d2)?d1\d2:-l;”应改为“d3=(d2)?d1/d2:-l;”。

 

(3)“d3=(--dl)+(d2++);”应改为“d3=(d1++)+(d2--);或d3=(++d1)+(--d2);”。

 

 

 

 

【5】

简单应用题

 

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数sum(intA[NUM][NUM],intn)的功能是计算矩阵中所有非质数数字的和。

 

提示:函数isPrime(intn)的功能是判定当前数字是否为质数,如果是,则返回true。

 

注意:不能修改程序的其他部分,只能修改sum函数。

 

试题程序:

 

#include(iostream.h)

 

#include

 

#defineNUM50

 

intA[NUM][NUM]=

 

{

 

{1,3,5,7,9},

 

{11,13,15,17,19},

 

{21,23,25,27,29},

 

{31,33,35,37,39},

 

{41,43,45,47,49}

 

};

 

boolisPrime(intn)

 

{

 

if(n==1)

 

returnfalse;

 

if(n==2)

 

returntrue;

 

for(inti=2;i(n/2;i++)

 

{

 

if(n%i==0)

 

returnfalse;

 

}

 

returntrue;

 

}

 

intsum(intAENUM]ENUM],intn)

 

{

 

}

 

intmain()

 

{

 

cout<<SUM(A,5)<<ENDL;< p>

 

return0;

 

}

 

答案:intre=0:

 

for(inti=0;i<N;I++)< p>

 

{

 

for(intj=0;j<N;J++)< p>

 

{

 

if(!isPrime(A[i][j]))//判断是否是素数,不是

 

素数则累加

 

{

 

re=re+A[i][j];

 

}

 

}

 

}

 

returnre



考无忧小编tips

不求时时刻刻在刷计算机等级考试题库,但求记住要劳逸结合刷题、复习。今天,你刷了多少题?复习了以上的二级C++试题及答案了吗?



文章推荐:

全国计算机等级考试可以不考一级直接考二级吗?

2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”

全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)


温馨提示:

考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office

想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库

想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯


本文网址:http://www.k51.com.cn/info/jsjdjks/1904/2251419.html
选择分享到: