还没刷二级C++试题的小伙伴,don't worry!计算机等级考试题库送给你,要相信临阵磨枪,不快也光!
二级C++试题
【1】
程序改错题
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正其中的错误,使程序正常运行,并且输出以下结果:
(4,5)
7.8
(4,8)
注意:错误的语句在//******error****+*的下面,修改该语句即可。
试题程序:
#include
classTCO
{
public:
TCO(inti,intj)
{
x=i:
y=j;
}
//******error******
virtualvoidmove(inta;intb)
{
x+=a;
y+=b;
}
voidprint()
{
cout<<"("<<X<<","<<Y<<")"<<ENDL;< p>
}
public:
intx,Y;
);
classTCl:publicTCO
{
public:
//******error******
TCl(inti,intj,intk):(i,j)
{
m=k:
n=1:
}
voidprint()
{
cout<<M<<","<<N<<ENDL;< p>
}
voidrune()
{
move(3,5);
}
voiddisplay()
{
//******error******
print();
}
private:
intm,n;
};
voidmain()
{
TCOobj(4,5);
obj.print();
TClobjl(1,3,7,8);
obj1.func();
obj1.print();
obj1.display();
}
答案:(1)应改为“virtualvoidmove(inta,intb)”。
(2)应改为“TCl(inti,intj,intk,int1):TCO(i,j)”。
(3)应改为“TC0::print();”。
【2】
简单应用题
使用VC++6.0打开考生文件夹下的源程序文件2.epp。阅读下列函数说明和代码,补充空出的代码。函数fun(doubleA[5][5])返回二维数组中大于本行平均数的所有数之和。
注意:部分代码已经实现,请勿改动main函数代码。
试题程序:
#include<IOSTREAM.H)< p>
doublefun(doubleA[5][5])
{
}
voidmain()
{
doubleA[S][5]=
{4431.3,45.56,5697.65,768.678,122.45),
{444.4,34.545,5667.656,2548.678,1562.45},
{537.3,655.5456,5677.65,7168.678,1242,45},
{134.3,454.5486,5637.65,7687.678,1322.45),
{189.3,445.5786,5677.65,7528.678,142.45}
};
cout<<FUN(A)<<ENDL;< p>
return;
}
答案:doublefun(doubleA[S][5])
{
doublesum2=0.0;
for(inti=0;i<5;i++)
{
doublesuml=0.0;
intj=0;
for(j=0;j<5;j++)
{
suml+=A[i][j];
}
sum1/=5;
for(j=0;j<5;j++)
{
if(A[i][j]>suml)
}
}
returnsum2;
}
【3】
综合应用题
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成构造函数,设置数组元素的个数为0,请在注释1之后添加语句。
(2)完成函数AddMember(intn),如果参数n包含在类的数据成员数组中,则返回0,否则把数据写入数组,然后返回1,请在注释2之后添加语句。
(3)完成函数DelMember(intn),如果变量在数据中,则删除该变量,并且返回1,如果不存在,则返回0,请在注释3之后添加语句。
(4)完成成员函数Islnclude(intn)的定义,该函数检查参数n是否在类的数据成员数组array中,如果在,返回1,否则返回0。请在注释4之后添加语句。
注意:除在指定位置添加语句之外,不要改动程序中的其他内容。
试题程序:
#include
#defineMAXLENGTH500
classlCArr
{
public:
TCArr()
{
//********1********}
intAddMember(intn)
{
for(inti=0;i<LENGTH;I++)< p>
{
//********2********
return0;
}
Array[length++]=n;
return1:
}
intDelMember(intn)
{
inti:
for(i=0;i<LENGTH;I++)< p>
{
if(Array[i]==n)
{
break;
}
}
//********3********
{
for(;i<LENGTH-1;I++)< p>
{
Array[i]=Array[i+1];
}
length--;
return1;
}
return0;
}
intIslnclude(intn)
{
for(inti=0;i<LENGTH;I++)< p>
{
//********4********
{
return1;
}
}
return0;
}
private:
intArray[MAX_LENGTH];
intlength;//用来记录数组的个数
};
intmain()
{
TCArrobj;
cout<<OBJ.ADDMEMBER(1)<<ENDL;< p>
cout<<OBJ.ADDMEMBER(3)<<ENDL;< p>
cout<<OBJ.ADDMEMBER(8)<<ENDL;< p>
cout<<OBJ.ADDMEMBER(23)<<ENDL;< p>
cout<<OBJ.ISLNCLUDE(8),<<ENDL;< p>
cout<<OBJ.ISINCLUDE(11)<<ENDL;< p>
cout<<OBJ.DELMEMBER(3)<<ENDL;< p>
cout<<OBJ.DELMEMBER(8)<<ENDL;< p>
cout<<OBJ.ISINCLUDE(2)<<ENDL;< p>
cout<<OBJ.ISINCLUDE(1)<<ENDL;< p>
return0;
}
答案:(1)应添加“length=0;”。
(2)将“if(Array[i]=n)”补充完整为“if(Array[i]==n)”或“if(n==Array[i])”。
(3)将“if()”补充完整为“if(i<LENGTH)”或“IF(I!=LENGTH)”。< p>
(4)将“if()”补充完整为“if(Array[i]==n)”或“if(n==Array[i])”。
【4】
程序改错题
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出为
10
TC1
注意:不要改动main函数,不能增加或删除行,也不能
更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include
classTC1
{
public:
TC1()
{
}
//********error********
private:
virtual~TC1()
{
usingnamespacestd;
cout<<"TCl"<<ENDL;< p>
}
};
classTC2:publicTC1
{
public:
//********error********
explicitTC2(inti)
{
m_i=i;
}
TC2&operator()(inti)
{
this->m_i=i;
}
voidprint()
{
//********error********
cout<<M_J<<ENDL;< p>
}
private:
intm_i;
};
voidfun(TC2C1)
{
C1.print();
}
intmain()
{
fun(TC2(10));
return0;
}
答案:(1)删除“private:”语句。
(2)应改为“TC2(inti)”。
(3)应改为“std::cout<<M_I<<STD::ENDL;”或添加“USINGNAMESPACESTD;”。
【5】
简单应用题
使用VC++6.0打开考生文件夹下的源程序文件2.cpp.请完成函数fun(char*s),使其具有以下功能:
(1)把S中的大写字母转换成小写字母,把其中的小写字母转换成大写字母,并且在函数中调用写函数WriteFile()将结果输出到2.txt文件中。
例如:s="hellow0RLD",则结果为"s="HEL-LOworld””。
(2)完成函数writeFile(char*S),把字符串输入文件中。
提示:打开文件使用的第二参数为“ios_base::binary|ios_base::app”。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
usingnamespacestd;
voidWriteFile(char*s)
{
}
voidfun(char*s)
{
}
voidClearFile()
{
ofstreamout1;
out1.open("2.txt");
out1.close();
}
intmaid()
{
ClearFile();
chars[1024];
cout<<"pleaseinputastrin9:"<<ENDL;< p>
cin.getline(S,1024);
fun(s);
return0;
}
答案:(1)voidWriteFile(char*S)中的命令语句:
ofstreamout1;
out1.open("2.txt",ios_base::binary|los_base::app);
//打开文件2.txt
out1<<S; p 写入字符串S<>
out1.close();
(2)voidfun(char*s)中的命令语句:
for(inti=0;S[i]!=0;i++)//循环判断每一个字符
{
if(s[i]>='A'&&s[i]<='2')//如果是大写字符,
则转换为小写字符
{
s[i]=s[i]-'A'+'a';//'s[i]-'A'+'a'等于字
符s[i]+32'
elseif(s[i]>='a'&&s[i](='z')//如果是小写字
符,则转换为大写字符
{
s[i]=s[i]-'a+'A';//'s[i]-'a'+'A'等于字
符s[i]-32
}
}
WriteFile(s);
考无忧小编提醒您:
无论你今天要面对什么,既然走到了这一步,就坚持下去,坚持复习以上的二级C++试题,给自己一些肯定,你比自己想象中要坚强。
文章推荐:
2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的近期资讯吗?点击进入>>>计算机等级考试题库资讯