是不是急于做大量的二级C++试题,却因测试结果不尽人意而心慌不安?不要急!考无忧小编为大家准备了一些提分经验,希望能帮助大家高效复习,轻松通关!
二级C++试题及答案
【1】
简单应用题
使用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;
【2】
综合应用题
使用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;”。< p>
【3】
程序改错题
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正程序中的错误,使程序输出的结果为
150
200
注意:错误的语句在//******error******的下面,修改该语句即可。
提示:定义Numl为一个整型数据位长的变量。
试题程序:
#include
//******error******
struct
{
//******error******
intNuml:1;
intNum2;
}
MyStruct;
voidmain()
{
MyStructmstr;
mstr.Num1=150;
mstr.Num2=15;
//******error******
int*ptr=&mstr.Numl;
cout<<*ptr<<ENDL;< p>
*ptr=200;
cout<<*ptr<<ENDL;< p>
}
答案:(1)“typedefstruct”。
(2)“intNuml:32;”或“intNuml;”。
(3)“int*ptr=(int*)&mstr;”。
【4】
简单应用题
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。使sum(intn)能计算所有n的因子之和(不包括1和自身)。
注意:不能修改程序的其他部分,只能补充sum函数。
试题程序:
#include
intsum(intn)
{
}
voidmain()
{
cout<<SUM(10)<<ENDL;< p>
cout<<SUM(200)<<ENDL;< p>
cout<<SUM(400)<<ENDL;< p>
return;
}
答案:intall=0:
for(inti=2;i<N;I++)< p>
{
if(n%i==0)
{
all+=i:
}
}
returnall;
【5】
综合应用题
使用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);”。
有时候,我们距离成功只需要一个转角的距离。但是多少人,却在那个转角之前,自己选择了放弃。在最后的冲刺时间,我们要坚持刷计算机等级考试题库,复习二级C++试题。
文章推荐:
2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的近期资讯吗?点击进入>>>计算机等级考试题库资讯