考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > C++语言程序设计 > C++模拟试题 > 文章内容
  

全国计算机二级考试C++考前押密试卷(3)

中华IT学院   【 】  [ 2017年8月25日 ]

  二、程序改错题

  (1)应改为“TC(inti):Number(i)”。

  (2)应删除“returnNumber;”。

  (3)应改为“TC*p=newTC(7);”

  【解析】本题第1处是声明构造函数,并使用初始化列表完成成员变量的初始化,可知第1处的初始化列表错误,正确的应该是“TC(inti):Number(i)”。构造函数不能有返回值,不能用return来返回值,故第2处应将“returnNumber;”删除。类实例在不指定构造函数的情况下,调用的是默认无参数的构造函数,此时成员变量Number是不确定的,在定义对象时,应使用已定义的构造函数,根据输出结果可知,P指向的对象的Number初始化值为7,故第3处应改为“TC*p=newTC(7);”。

  三、简单应用题

  intresult=0;

  for(inti=11;i<=n;i++)

  {

  if((i%7==O)&&(i==0))

  {

  result+=i:

  }

  }

  returnresult;

  【解析】本题利用循环查找所有小于等于n的能被7和11整除的数,循环变量i从最小值11开始,到n结束,即11<=i<=n。在函数中定义累加变量result用来保存求和结果,在循环体内,逐个判断每个i是否能被7和11整除,即(i%7==0)和(i==0)都满足的话,说明i能同时被7和11整除,将该值加到resuh上,循环结束返回result。

  四、综合应用题

  (1)应添加“virtualdoubleGetArea()=0;”。

  (2)应添加“virtualdoubleGetGirth()=0;”。

  (3)应添加“myShape=myCircle;”。

  (4)应添加“myShape=myRectangle;”。

  【解析】本题在第1处声明纯虚函数,纯虚函数的定义格式为“virtual<函数类型><函数名>(<参数表>)=0”,由程序后面的函数体实现可知求面积纯虚函数的函数名称为GetAr-ea,因此第1处应添加“virtualdoubleGetArea()=0;”。声明格式和1处相同,由求周长的函数具体实现可知该函数的名称为GetGirth,因此第2处应添加“virtualdoubleGetGirth()=0;”。主函数中定义了CMyShape类对象指针myShape,CCir-cle类对象指针myCirele,CRectangle类对象指针myRectan-gle。由类继承关系知,在调用子类的构造函数时,编译器会自动调用父类的默认构造函数来初始化父类,因此在实例化类CRectangle和类CCircle的实例时,抽象父类CMyShape的默认构造函数会先被调用,因此在屏幕上先输出“在CMy-Shape类构造函数内”.然后输出“在CCircle类构造函数内”,实例化CRectangle对象的过程也是如此。同时由纯虚函数的性质知,抽象基类不需要实现纯虚函数,它的实现是在子类中完成的,但通过用子类实例隐式转换成基类实例,可以使得基类实例具有子类实例的特性,因此可以访问子类的成员函数,myShape是基类指针,其虚函数GetArea和GetGirth没有实现,要求程序输出的面积值和周长值,只可能是myShape指向子类对象,调用子类的函数GetArea和GetGirth打印输出,显然在第3处是myShape指向子类CCircle对象,即“myShape=myCirele;”。同理第4处myShape指向子类CRectangle对象,即第4处应添加“myShape=myRectangle;”。

首页 1 2 3 4 5 6 7 8 9 尾页
分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved