2019年下半年二级C++试题(总)

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


二级C++试题.jpg


真正成功的考生,不在于成绩的多少,而在于你是否努力地去实现自我、努力地去刷二级C++试题,喊出自己的声音,走出属于自己的道路。


二级C++试题

【1】

综合应用题

使用VC++6.0打开考生文件夹下的源程序文件3.cpp,阅读下列程序说明和代码,功能如下:

从屏幕输入数字,然后由大到小插入到指定的链中。当输入0时,表示输出的数据已经输入完成,把数据打印到屏幕,并释放内存。

其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。

(1)在父结点的Next中保存新插入的结点的指针,请在注释1后添加适当的语句。

(2)把pNext的子结点赋给pNext本身,请在注释2后添加适当的语句。

(3)判定P的子结点不为空,如果不为空,则打印P中的数据到屏幕,请在注释3后添加适当的语句。

(4)用t1保存动态申请内存结点的链表头,请在注释4

后添加适当的语句。

注意:仅在函数指定位置添加语句,请勿改动主函数

main与其他函数中的任何内容。

试题程序:

#include

classTC

{

public

TC(intdata=O)

{

this->data=data;

this->next=NULL;

}

intdata;

TC*next;

};

voidInsert(TC*P,intdata)

{

TC*temp=newTC(data);

TC*pParent=P

TC*pNext=p-)next

while(pNext)

{

if(data>pNext->data)

{

//********1********

temp->next=pNexti

return;

}

else

{

pParent=pNext;

//********2********

}

}

if(pNext==NULL)

{

pParent->next=temp;

return;

}

}

voidprintf(TC*p)

{

//********3********

while()

{

cout<next->data<<"";

P=P->next;

}

cout<<ENDL;< p>

}

voidDelete(TC*p)

{

//********4********

TC*t1=;

TC*t2;

while(t1!=NULL)

{

t2=t1->next

deletetl;

t1=t2

}

}

voidmain()

{

inti=0;

TChead

do

{

intdata;

cout<<"请输入一个数字:"<<ENDL;< p>

cin>>data;

if(data==O)break;

Insert(&head,data);

}while(1);

printf(&head);

Delete(&head)

return;

}

}

答案:(1)应添加“pParenl->next=telnp;”。

(2)应添加“pNext=pNext->next;”。

(3)将“while()”补充完整为“while(P->next!=NULL)”。

(4)将“TC*t1=;”补充完整为“TC*t1=P->next;”。

 

 

 

 

【2】

程序改错题

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正其中的错误,使得程序正确运行。

程序输出:

s1:n=20

s2:n=10

执行s3.add(s1,s2)

s3:n=30

s4:n=30

注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。

试题程序:

#include<IOSTREAM.H)< p>

classTC

{

intn;

public

TC(){}

TC(intm)

{

n=m

}

//********error********

TCadd(TCs1,s2)

{

this->n=s1.n+s2.n;

//********error********

return(this);

}

voiddisp()

{

cout<<"n一="<<N<<ENDL;< p>

}

//********error********

}

voidmain()

{

TCs1(20),s2(10),s3,s4;

cout<<"s1:";

s1.disp();

cout<<"s2:";

s2.disp();

s4=s3.add(s1,s2);

cout<("执行s3.add(s1,s2)\ns3:";

s3.disp();

COUt<<"s4:";s4.disp();

}

答案:(1)应改为“TCadd(TCs1,TCs2)”。

(2)应改为“return(*this);”。

(3)应改为“};”。

 

 

 

【3】

简单应用题

使用vC++6.0打开考生文件夹下的源程序文件2.cpp,请实现函数fun(doublea[],intlen)的如下功能:

(1)a[]是一个数组,长度为len。

(2)a[0]=0,a[1]=1。

(3)a[i+2]=a[i]+a[i+1]

注意:不能修改函数的其他部分。

试题程序:

#include(iostream)

voidfun(doublea[],intlen)

{

}

voidmain()

{

doublea[20];

fun(a,20);

for(inti=0;i<20;i++)

{

std::cout<<A[I]<<'';< p>

if(i%6==5)

std::eout<<STD::ENDL;< p>

}

return;

)

答案:voidfun(doublea[],intlen)

{

if(1en>O)

a[0]=0

if(1en>1)

a[1]=1;

for(inti=2;i<1en;i++)

a[i]=a[i-1]+a[i-2];

}

 

 

 

【4】

综合应用题

使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。

(1)在类TC中定义name为字符串类型,age为int型,请在注释1之后添加语句。

(2)设置类TC0的基类为TC类的定义,请在注释2后添加语句。

(3)在类TC的派生类TC0的公有成员中定义析构函数TC0,请在注释3后添加语句。

(4)设置类TCl的基类为TC类的定义,请在注释4后添加语句。

程序输出结果为

TCclassconstructor

TC0classconstructor

TConclassconstructor

TClclassconstructor

TClclassconstructor

TCclassconstructor

TC0classconstructor

TCclassconstructor

注意:增加或者修改代码的位置已经用符号表示出来一请不要修改其他的程序代码。

试题程序:

#include

classTC

{

//********1********

public

TC(){cout<<"TCclassconstructor"<<ENDL;)~< p>

TC(){tout<<"TCclassconstructor"<<ENDL;)< p>

};

//********2********

{

char*departmert;

intlevel;

public

TCO()

{cout<<"TCOclassconstructor"<<ENDL;)< p>

//********3********

{cout<<"TC0classconstructor"<<ENDL;)< p>

};

//********4********

{

char*maior

floatsalary;

public

TCl(){cOUt<<"TClclassconstructor"<<ENDL;)~< p>

TCI(){COUt<<"TClclassconstructor"<<ENDL;)< p>

};

voidmain()

{

TC0sl;

TCItl;

}

答案:(1)应添加“char*name;intage;”。

(2)应添加“classTC0:publicTC”。

(3)应添加“~TCO()”。

(4)应添加“classTC1:publicTC”。

 

 

 

 

【5】

程序改错题

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:

9,8,7,6,5

注意:错误的语句在/********error********/的下面,修改该语句即可。其他的语句不能修改。

试题程序:

#include(iostream.h>

classTC

{

/********error********/

TC(inti)

{

m_i=i;

}

voidprint()

{

cout<<--m_i<<',';

}

public

intm_i;

};

intmain()

{

/********error********/

inti();

TC04(10);

while(i>5)

{

/********errOr********/

i++

04.print();

}

cout<<ENDL;< p>

return0;

}

答案:(1)应添加“public:”。

(2)“inti()”应改为“inti(10);”。

(3)“i++;”应改为“i--;”。



考无忧小编tips

开始备考做二级C++试题吧!在这过程中你必须放弃很多东西,但你要明白它们都不是你最终想要的,你要相信在你成功以后,总有一天它们会再回来,而且比现在更美好!






文章推荐:

全国计算机等级考试可以不考一级直接考二级吗?

2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”

全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)


温馨提示:

考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office

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

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


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