全国计算机二级考试C++语言程序设计上机考试试题及答案
一、程序改错题
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正其中的错误,使得程序正确运行。
程序输出:
s1:n=20
s2:n=10
执行s3.add(s1,s2)
s3:n=30
s4:n=30
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#includeclassTC
{
intn;
public:
TC(){}
TC(intm)
{
n=m:
}
//********error********
TCadd(TCs1,s2)
{
this->n=s1.n+s2.n;
//********error********
return(this);
}
voiddisp()
{
cout<<"n一="<}
//********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();
}
二、简单应用题
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成fun函数,使其功能为将两个按小到大排序的数组a和b,复制合并成一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。
注意:不能修改程序的其他部分,只能修改fun函数。
试题程序:
#include
voidfun(inta[],intn,intb[],intm,int*c)
{
}
voidmain()
{
intA[]={3,5,7,9,11,18,21);
intB[]={6,15,19,21,39};
intC[25],i;
for(i=0;i<25;i++)C[i]=0;
cout<<"A[]=";
for(i=0;i<7;i++)
cout
三、综合应用题
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)将文件以追加的方式打开。请在注释l后添加适当的语句。
(2)定义m、n为类TC的公有int型数据成员。请在注释2后添加适当的语句。
(3)定义P为类TC的数据成员指针,并指向类TC的数据成员m。请在注释3后添加适当的语句。
(4)定义P指向类TC的数据成员n。请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include
#include(fstream)
#include
#include
usingnamespacestd;
voidWriteFile(intx)
{
ofstreamout1;
//********1********
out1.open("3.txt",);
out1 } voidClearFile() { ofstreamout1; outl.open("3.txt"); out1.close(); } classTC { public: voiddisp() { cout<<"m=" cout<<"n=" } //********2******** }; voidmain() { //********3******** ClearFile(); TCa; a.*p=30; //********4******** a.*p=45; a.disp(); }
一、程序改错题
(1)应改为“TCadd(TCs1,TCs2)”。
(2)应改为“return(*this);”。
(3)应改为“};”。
【解析】本题中的变量“s2”没有声明类型,所以补充“s2”的类型,即“TCadd(TCs1,TCs2)”,“this->n=s1.n+s2.n;”语句中的this变量为指针变量,所以第2处的“return(this);”返回语句中的this变量,应该返回指针型,所以修改为“return(*this);”。C++中类的定义格式应为“class类名{};”,以分号为结尾,所以在第3处的类结尾处补充分号“;”,即修改为“};”。
二、简单应用题
inti,j;
for(i=j=0;i(n&&j{
*c++=a[i]个数组中元素大小
}
while(iwhile(j(m)*c++=b[j++];
【解析】本题都指向数组的第一个元素。利用for循环对要合并的两个数组中的元素进行比较,直到两个数组结束。取比较结果小的元素,并将指向这个数组的位置向后移动一位。
三、综合应用题
(1)将“out1.open(”3.txt”,);”补充完整为“outl.open("3.txt",ios_base::app);"。
(2)应添加“intm,n;”。
(3)应添加“intTC::*p=&(TC::m);”。
(4)应添加“p=&(TC::n);”。
【解析】本题第1处要求“对文件以追加的方式打开”。文件输入输出方式的设置值,ios::app是以输出方式打开文件,写入的数据添加在文件末尾,即第1处的语句补全为“out1.open("3.tXt",ios_base::app);”。第2处要求“定义m、n为类TC的公有int型数据成员”。只需在程序中的TC类中的public区域添加m、n的定义即可。即在第2处添加“intm,n;”。第3处要求“定义P为类TC的数据成员指针,并指向类TC数据成员m”。程序中类TC数据成员m为“TC::m”定义P为类TC的数据成员指针语句为“TC::*P”,将其指向前面的数据成员m,即为“intTC::*P=&(TC::m);”。第4处要求“定义P指向类TC数据成员n”。定义类TC数据成员n的语句为“TC::n”,用P指向类TC数据成员n,添加的语句即“p=&(TC::n);”。
全国计算机等级考试计算机基础及Photoshop应用试题答案汇总(6套)
[Photoshop应用]2017年2月3日全国计算机等级考试四级数据库系统工程师试题及答案汇总(22套)
[数据库工程师]2017年2月2日全国计算机一级考试模拟试题及答案300题
[WPS Office应用]2017年1月22日2017年3月全国计算机等级考试报名时间及报名入口汇总
[考试动态]2017年1月3日2017全国计算机等级考试考试大纲专题
[政策大纲]2017年1月3日