(盘点)2019年3月二级C++试题

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


你今天的努力,是幸运的伏笔,当下的付出,是明日的花开。让我们怀揣希望去努力刷二级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

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

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


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