二级C++试题及答案(周末汇总)

发布于 2019-05-20 15:19  编辑:simi
0
计算机等级考试题库 扫码微信刷题


二级C++试题及答案.jpg


不论你在什么时候开始刷计算机等级考试题库,重要的是开始之后就不要轻言放弃;不论你在什么时候结束,重要的是结束之后就不要后悔。


二级C++试题及答案

【1】

综合应用题

使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示个人基本信息的类PInfo,但类PInfo的定义并不完整。请按要求完成下列操作,将类Pin-fo的定义补充完成:

(1)定义私有数据成员bloodType用于表示血型,血型为char型的数据。请在注释1之后添加适当的语句。

(2)完成构造函数的定义,要求具有默认值,默认值为

身高175,体重70,血型A。请在注释2之后添加适当的语句。

(3)完成类PInfo外成员函数SetInfo的定义。请在注

释3之后添加适当的语句。

(4)在主函数main中调用成员函数Setlnfo,把对象d2的3个私有数据成员分别设定为身高170,体重64,血型B。

请在注释4之后添加适当的语句。

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

试题程序:

#include

classPlnfo

{

private

intheight;

intweight;

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

public

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

:height(ht),weight(wt),bloodType(bt){};

Plnfo(Plnfo&h1):height(h1.height),

weight(h1.weight),bloodType(h1.bloodType){}

intGetHeight()

{

returnheight;

}

intGetWeight()

{

returnweight;

}

intGetBloodType()

{

returnbloodType;

}

voidSetlnfo(intht,intwt,charbt);

voidDisplay();

};

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

{

height=ht;

weight=wt;

bloodType=bt;

}

voidPlnfo::Display()

{

cout<<"Humanlnf0:";

cout<<HEIGHT<<"CM,"<<WEIGHT<<"KG,BLOOD-< p>

Type"<<BLOODTYPE<<ENDL;< p>

}

voidmain()

{

PInfoh1(169,61,'A');

Plnfoh2;

Plnfoh3(h1);

Plnfoh4(h2);

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

h1.Display();

h2.Display();

h3.Display()

h4.Display();

}

答案:(1)应添加“charbloodType;”。

(2)应添加“Plnfo(intht=175,intwt=70,charbt='A')”。

(3)应添加“voidPlnf0::Setlnfo(intht,intwt,charbt)”。

(4)应添加“h2.SetInfo(170,64,'B');”。

 

 

 

【2】

程序改错题

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正程序中的错误,使程序输出的结果为

10

6

30

2

2

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

试题程序:

#include

classTC

{

private

intnumber;

intAdd(inti)

{

returnnumber+=i

}

intSub(inti)

{

returnnumber-=i

}

intMul(inti)

{

returnnumber*=i

}

intDiv(inti)

{

if(i!=O)

{

returnnumber/=i;

}

else

returnnumber;

}

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

typedefint(FUNC)(int);

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

FUNCfunc[];

public

TC()

{

fune[0]=TC::Add;,

fund[1]=TC::Sub;

func[2]=TC::Mul;

func[3]=TC::Div;

number=0;

}

intCallFunetion(inti,intj)

{

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

return(func[i])(j);

}

};

voidmain()

{

TCmyobj;

cout<<MYOBJ.CALLFUNCTION(0,10)<<ENDL;< p>

cout<<MYOBJ.CALLFUNCTION(1,4)<<ENDL;< p>

cout<<MYOBJ.CALLFUNCTION(2,5)<<ENDL;< p>

cout<<MYOBJ.CALLFUNCTION(3,15)<<ENDL;< p>

cout<<MYOBJ.CALLFUNCTION(3,O)<<ENDL;< p>

}

答案:(1)应改为:“typedefint(TC::*FUNC)(int);”。

(2)应改为:“FUNCfunc[4];”。

(3)应改为:“return(this->*fund[i])(j);”。

 

 

 

【3】

简单应用题

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码。

函数func(intd口,intn)的功能是将长度为num的数组d中的奇数扩大1倍,并存储到数组d中。

例如:2,15,6,-3,8,-11,9,24,50

返回4,30,12,-6,16,-22,18,48,100

将func(intd[],intnum)函数补充完整。

注意:请勿改动主函数main。

试题程序:

#include

voidfunc(intd[],intnum)

{

}

intmain()

{

intData[]={2,15,6,-3,8,-11,9,24,50};

func(Data,9);

for(inti=0;i(sizeof(Data)/sizeof(int);i++)

{

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

}

cout<<ENDL;< p>

return0;

}

答案:for(inti=0;i<NUM;I++)< p>

{

if(d[i]%2!=O)

d[i]=2*d[i];

}

 

 

 

 

【4】

综合应用题

使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。

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

(2)定义类A1的构造函数,该构造函数有两个整型的参数x和y,在构造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数值传人。请在注释“//********2********”之后添加适当的语句。

(3)定义类A2的构造函数,该构造函数有3个整型的参数x,y和z,在构造函数中请将x赋值给数据成员C,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//********3********”之后添加适当的语句。

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

程序输出结果如下:

7

3

738

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

试题程序:

#include

classA

{

inta;

public

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

intgeta(){returna;}

};

classA1:publicA

{

intb;

public

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

intgetb(){returnb;}

};

classA2:publicA1

{

intC;

public

//****,****3********

voidshow()

{

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

}

};

voidmain()

{

A2a(8.3.7)

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

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

a.show();

}

答案:(1)“A(intx){a=x;}”。

(2)“A1(intx,inty):A(y){b=x;}”。

(3)“A2(intx,inty,intz):A1(y,z){c=x;}”。

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

 

 

 

 

【5】

程序改错题

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,其输出的结果为

30

130

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

试题程序:

#include

inta=10;

classTC

{

public

TC()

{

a=b=0

}

voiddisplay()

{

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

cout<<A<<B<ENDL:< p>

}

voidfunc(inta)

{

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

a+=a

}

voidfunc2()

{

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

a+=a

}

private

inta,b;

};

voidmain()

{

TCobj;

obj.func(3);

obj.display();

obj.func2();

obj.display();

}

答案:(1)应改为“cout<<A<<B<<ENDL;”。< p>

(2)应改为“this->a+=a;”。

(3)应改为“a+=::a;”。



赶紧复习以上的计算机二级,收获是与付出成正比的。千万不要忘记刷计算机等级考试题库哦!预祝大家都能够顺利考取计算机等级证书~加油吧!考无忧小编等着你们的好消息~





文章推荐:

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

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

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


温馨提示:

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

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

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


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