对自己狠一点,逼自己努力刷二级C++试题,再过五年你将会感谢今天发狠的自己、恨透今天懒惰自卑的自己。我坚信一句话:只有自己足够强大,才有可能成功。
二级C++试题
【1】
综合应用题
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成TC的构造函数,请改正注释1后的错误。
(2)完成func函数定义,请改正注释2后的错误。
(3)初始化CmyClass的成员变量Num3为4,请改正注释3后的错误。
(4)完成func函数,请改正注释4后的错误。
输出的结果为
Num1=12
Num2=18
Num3=16
Num1=4
Num2=2
Num3=19
注意:除在指定位置添加语句之外,不要改动程序中的其他内容。
试题程序:
#include
classTC
{
public:
//********1********
TC(inti,intj)
{
Numl=i;
Num3+=i:
}
voiddisplay()
{
cout<<"Num1="<<NUML<<ENDL:< p>
cout<<"Num2="<<NUM2<<ENDL;< p>
cout<<"Num3="<<NUM3<<ENDL;< p>
}
voidAddNum(inti)
{
Num3+=i;
}
private:
intNum1;
constintNum2;
staticintNum3;
//********2********
};
//********3********
voidfunc()
{
TCobj(1,2);
obj.Num1=4;
//********4********
obj.AddNum();
ohj.display();
}
voidmain()
{
TCmyObj(12,18);
myObj.display();
rune();
return;
}
答案:(1)将“TC(inti,intj)”补充完整为“TC(inti,intj):Num2(j)”。
(2)应添加“friendvoidfunc();”。
(3)应添加“intTC::Num3=4;”。
(4)将“obi.AddNum()”补充完整为“obj.AddNum(2);”。
【2】
程序改错题
使用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;”。
【3】
简单应用题
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码。函数num(ehar*str)用于返回字符串中非数字的个数。
例如:abcl23abc45
返回值为:6
将函数num补充完整。
注意:请勿改动主函数main。
试题程序:
#include
intnum(char*str)
{
}
intmain()
{
charstr[1024];
cout<<"pleaseinputastring:"<<ENDL;< p>
cin.getline(str,1024);
cout<<"charnumberis"<<NUM(STR)<<ENDL:< p>
return0;
}
答案:intnumber=0;
for(inti=0;sir[i]!=0;i++)
if(str[i]>'9'‖str[i]<'0')//非数字字符
number++:
returnnumber;
【4】
综合应用题
使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义私有成员变量year、month、day,分别表示年、月、日,类型为int。请在注释1后添加适当的语句。
(2)完成构造函数,分别给year、month、day赋值,请在注释2后添加适当的语句。
(3)完成重载符号“+=”的定义,请在注释3后添加适当的语句。
(4)完成函数print打印函数,如2005年1月5日到屏幕和文件out3.txt格式相同,请在注释4后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
试题程序:
#include
#include
#include
#include
usingnamespacestd;
voidWriteFile(intc)
{
ofstreamout1;
out1.open("out3.txt",ios_base::app);out1<<C<<'';< p>
out1.close();
}
voidWriteFile(char*str)
{
ofstreamout1;
out1.open("out3.txt",ios_base::app);out1<<STR;< p>
out1.close();
}
voidClearFile()
{
ofstreamout1;
out1.open("out3.txt"):
outl.close();
}
classDate
{
public:
Date(inty,intm,intd)
{
//********1*********}
voidprint();
//********2********
{
month+=m:
inti=month/12;
intj=month%12;
if(j==0)
{
year+=(i-1):
month=12;
}
else
{
year+=i:
month=j;
}
return*this:
}
private:
//********3********
};
voidDate::print()
{
//********4********
WriteFile(year);
WriteFile("年");
WriteFile(month);
WriteFile("月");
WriteFile(day);
WriteFile("日");
}
intmain()
{
ClearFile();
DateNationa1_day(2004,10,5);
National_day+=3;
National_day.print();
return0;
}
答案:(1)应添加“year=y;month=m;day=d;”。
(2)应添加“Date&operator+=(intm)”。
(3)应添加“intyear,month,day;”。
(4)应添加“cout<<YEAR<<"年"<<MONTH<<"月"<<DAY<<"日"<<ENDL;”。
【5】
程序改错题
使用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);”。
考无忧小编tips:
大多数人挂了计算机考试,根源不在于你的资质不行,而是你压根就没刷几套计算机等级考试题库就去考试!懒得备考才是你挂科的罪魁祸首!赶紧复习以上的二级C++试题,还有点击下方链接,把题目刷起来吧!
文章推荐:
2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的近期资讯吗?点击进入>>>计算机等级考试题库资讯