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

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


对自己狠一点,逼自己努力刷二级C++试题,再过五年你将会感谢今天发狠的自己、恨透今天懒惰自卑的自己。我坚信一句话:只有自己足够强大,才有可能成功。


二级C++试题.jpg


二级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

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

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


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