在这个天气凉爽的季节,考无忧小编想悄悄告诉你:下一次的计算机二级考试也很快到来的!赶紧刷二级C++试题及答案吧!
二级C++试题及答案
【1】
综合应用题
用vc++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了多个类,其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整;使其输出如下:
TC2
TC3
TCl
(1)类TC2公共继承于TC1,请在注释1后添加适当的语句。
(2)print函数为虚函数,请在注释2后添加适当的语句。
(3)修改语句,使得p指定对象0bj3,请在注释3后添加
适当的语句。
(4)修改语句,利用P调用print函数,完成输出信息,在注释4后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
试题程序:
#include
usingnamespacestd;
classTCl
{
public:
voidprint()
{
cout<<"TCl"<<ENDL:< p>
}
};
//********1********
classTC2
{
public:
//********2********
voidprint()
{
cout<<"TC2"<<ENDL;< p>
}
};
classTC3:publicTC2
{
public:
voidprint()
{
cout<<"TC3"<<ENDL;< p>
}
};
intmain()
{
TC20bj2;
TC30bj3;
TC1*P;
obj2.print();
obj3.print();
//********3********
p=obj3;
//********4********
P.print();
return0;
}
答案:(1)将“classTC2”补充完整为“classTC2:publicTCl”。
(2)将“voidprint()”补充完整为“virtualvoidprint()”。
(3)将“p=obj3;”修改为“p=&obj3;”。
(4)将“P.print();”修改为“p->print();”。
【2】
简单应用题
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,实现函数sort(intA[],intn),用选择排序法将数组从大到小排序。
提示:选择排序法的思想是
(1)反复从还未排好序的那部分线性表中选出关键字最小的结点。
(2)按照从线性表中选出的顺序排列结点,重新组成线性表。
(3)直到未排序的那部分为空,使得重新形成的线性表是一个有序的线性表。
补充函数sort(intA[],intn),实现选择排序。
注意:请勿改动主函数。
试题程序:
#include
#defineN10
voidsort(intA[N],intn)
{
}
intmain()
intA[N]={-72,54,-6,7,18,102,0,4,-11,1};
sort(A,10);
for(inti=0;i(sizeof(A)/sizeof(int);i++)
{
cout<<A[I]<<'';< p>
}
cout<<ENDL;< p>
return0;
}
答案:inti,j;
for(i=O;i<N-1;I++)< p>
{
for(j=0;j<N-1-I;J++)< p>
{
if(A[j]>A[j+1])//如果前面的数比后面的大则
进行交换
{
intt=A[j];//进行交换
A[j]=A[j+1];
A[j+1]=t;
}
}
}
【3】
综合应用题
使用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;”。
【4】
简单应用题
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成函数fun(char*sl,char*s2)的空出部分。函数fun(char*s1,char*s2)的功能是将在字符串s1中下标为偶数的字符,紧随其后重复出现一次,放在一个新串s2中,s2中字符按原字符串中字符的顺序排列。(注意0为偶数)
例如:当s1中的字符串为“abcdef”时,s2中的字符串应为“aaccee”。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include(iostream.h)
voidfun(char*s1,char*s2)
{
}
voidmain()
{
charsi[100】,s2【1OO];
cout<<"Pleaseenterstringstrin9:"<<ENDL;< p>
cin.getline(s1,100);
fun(s1,s2);
cout<<"Theresultis:"<<S2<<CNDL< p>
return;
}
答案:inti;
for(i=0;s1[i]!=0;i++)//循环判断每一个字符
{
if(i%2==0)//判断字符串中下标为偶数位置
{
s2[i]=s1[3];
s2[i+1]=s1[i];
s2[i+2]='\0';//新串添加尾符
}
}
【5】
简单应用题
使用VC++6.0打开考生文件夹下的源程序文件
2.cpp。请完成函数fun(intx),该函数的功能是将X的值转换成二进制数输出到屏幕,并且在函数中调用写函数WriteFile将结果输出到2.txt文件中。
例如x=6,6的二进制数为110,则输出到屏幕的数为110。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include(iostream)
#include(fstream)
#include(cmath)
usingnamespacestd;
voidWriteFile(char*str)
{
ofstreamout1;
out1.open("2.txt",ios—base::binary|ios_base::app);
for(inti=0;str[i]!=0;i++)
out1.put(str[i]);
out1.close();
}
voidfun(intx)
{
}
voidClearFile()
{
ofstreamout1;
out1.open("2.txt");
out1.close();
}
intmain()
{
ClearFile();
fun(13);
return0;
}
答案:charstr[32];
inti;
for(i=30;i>=0;i--)//计算二进制
{
if(x%2)str[i]='1';//求余,如果余不为零字符串
str第i位为1
elsestr[i]='0';//否则为0
x>>=1;
if(!x)break;
}
str[31]='\0';//串加尾符
cout<<&str[i]<<ENDL;< p>
writeFile(&str[i]);
考无忧小编tips:
只要一直走下去,一直坚持复习以上的二级C++试题,蓦然回首,你会发现,坚持的每一处,都是曾经想要放弃时以为到达不了的地方!
文章推荐:
2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯