你今天的努力,是幸运的伏笔,当下的付出,是明日的花开。让我们怀揣希望去努力刷二级C++试题,静待美好的出现。
2019年3月二级C++试题
【1】
综合应用题
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。程序通过继承关系,实现对姓名的控制。类TC1实现对名字访问的接口,TC2实现对名字的设置和输出。
程序输出为
TC2Name
May
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)在类TCl中定义接口函数GetName为纯虚函数。请在注释1后添加适当的语句。
(2)函数GetName2用于获得名字的缓存,但只获得允许读操作这个缓存,请在注释2后添加适当的语句。
(3)实现TC2的构造函数,请在注释3后添加适当的语句。
(4)完成TC2的构造函数,实现对名字的处理。请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include
classTC1
{
public:
//********1********
};
classTC2:publicTCl
{
public:
voidGetName()
{
cout<<"TC2Name"<<ENDL;< p>
}
//********2********
{
returnm_str;
}
//********3********
{
inti:
for(i=0;str[i]!=0;i++)
m_str[i]=str[i];
//********4********
}
private:
charm_str[32];
};
voidmain()
{
TCl*P;
TC20bj1("May");
p=&objl;
p->GetName();
cout<<OBJ1.GETNAMC2()<<ENDL;< p>
return;
}
答案:(1)应添加“virtualvoidGetNamt!()=0;”。
(2)应添加“constchar*GetName2()”。
(3)应添加“TC2(char*str)”。
(4)应添加“m_str[i]=0;”。
【2】
程序改错题
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:
number=1
number=10
number=100
注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include
classTC
{
public:
TC(inti)
{
number=i;
}
voidSetNumber(intm)
{
number=m;
}
intGetNumber()const
{
returnnumber;
}
voidPrint()const
{
cout<<"number="<<NUMBER<<ENDL;< p>
}
private:
intnumber;
};
voidmain()
{
//********error********
TCobjl;
objl.Print();
TCobj2(3);
//********error********
objl.number=10;
//********error*‰******
TC.SetNumber(100);
objl.Print();
obj2.Print();
}
答案:(1)应改为“TCobjl(1);”。
(2)应改为“0bj1.SetNumber(10);”。
(3)应改为“0bj2.SelNumber(100);”。
【3】
简单应用题
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请补充完整程序fun(inti),使其完成以下功能:如果i=5,则输出如下5行#号。
#
##
###
####
#####
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
voidfun(inti)
{
}
intmain()
{
fun(5);
return0;
}
答案:for(intj=0;j(i;j++)//行循环
{
for(intk=0;k<=j;k++)//列循环
cout<<"#";//输出“#”
cout<<ENDL;< p>
}
【4】
综合应用题
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。类People包括姓名和年龄两个字段。函数fun获得年龄比较大的人的姓名,然后输出这个姓名到屏幕。
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成类的构造函数功能,请在注释1后添加适当的语句。
(2)完成构造函数对姓名的赋值,请在注释2后添加适当的语句。
(3)定义类的友元函数fun,请在注释3后添加适当的语句。
(4)补充函数fun的年龄比较功能,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include
classPeople
{
public:
//********1********
{
inti;
for(i=0;sUserName[i]!=0;i++)
{m_UserName[i]=sUserName[i];
}
//********2********
m_Old=nOld;
}
private:
charm_UserName[32];
intm_Old;
//********3********
};
voidfun(char*s,People&personl,People&person2
{
//********4********
if()
{
for(inti=0;personl.m_UserName[i]!=0;i+
+)
{
s[i]=personl.m_UserName[i];
s[i+1]=0;
}
}
else
{
for(inti=0;person2.m_UserName[i]!=0;i+
+)
{s[i]=person2.m_UserName[i];
s[i+1]=0;
}
}
}
voidmain()
{
chars[32];
Peoplepl("abc",20);
Peoplep2("def",30):
fun(S,p1,p2);
cout<<S<<ENDL:< p>
return;
}
答案:(1)应添加“People(char*sUserName,intnOld)”。
(2)应添加“m_UserName[i]=0;”。
(3)应添加“friendvoidfun(char*s,People&personl,People&person2);”。
(4)将“if()”补充完整为“if(personl.m_Old)person2.mOld)”。
【5】
程序改错题
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错.请改正其中的错误,使程序正常运行,并使程序输出的结果为
Maxis7
提示:max函数用于找出两个数中的最大值,并作为函
数值返回。
注意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:
#include
usingnamespacestd;
//******error******
intmax(inta,intb)
{
if(a<B)< p>
{
intt=a;
a=b:
b=t;
}
returnb;
}
intmain()
{
intm=-3:
intn=7:
//******error******
max(-3,n);
cout<<"Maxis"<<M<<ENDL;< p>
return0;
}
答案:(1)应改为“intmax(int&a,int&b)”。
(2)应改为“max(m,n);”。
文章推荐:
2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯