电话:0731-83595998
导航

2018年9月计算机二级C++考试上机练习题及答案(5)

来源: 2018-08-14 20:36

  一、程序改错题

  使用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);”。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端