不论你在什么时候开始刷计算机等级考试题库,重要的是开始之后就不要轻言放弃;不论你在什么时候结束,重要的是结束之后就不要后悔。
二级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
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的近期资讯吗?点击进入>>>计算机等级考试题库资讯