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

全国计算机二级考试C++语言程序设计上机考试试题及答案(10)

中华IT学院   【 】  [ 2017年7月4日 ]

  上机考试试题答案与解析

  一、程序改错题

  (1)应改为“TC::TC()”。

  (2)应改为“voidTC::display()”。

  (3)应改为“TC::~TC()”。

  【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“::”,作用域运算符用采表示某个成员属于哪个类,使用格式为“(类名)::<成员函数>((参数函数)),因此第1处应改为“TC::TC()”,默认构造函数没有参数。由第2处“TC::display()”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void,因此第2处的语句应改为“voidTC::display()”。由第3处的语句“TC::TC()”可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加“~”字符,用采与构造函数加以区别,因此第3处的语句应改为“TC::~TC()”。

  二、简单应用题

  inti,j;

  for(i=O;i  {

  for(j=0;j  {

  if(A[j]>A[j+1])//如果前面的数比后面的大则

  进行交换

  {

  intt=A[j];//进行交换

  A[j]=A[j+1];

  A[j+1]=t;

  }

  }

  }

  【解析】数组A[N]中有n个数,进行n-1次比较,在每一次比较中两两比较的次数逐渐减少,比如若有6个数9,

  8,5,4,2,0。第一次将8和9对调,第二次将第2个数9和第3个数5对调,如此共进行5次,得到8-5-4-2-0-9的顺序,可以看到:最大的数9已“沉底”,成为最下面一个数,而小的数“上升”。最小的数0已向上“浮起”一个位置。经第一趟(共5次)后,已得到最大的数,然后进行第二趟比较,对余下的前面5个数按上面的方法进行比较,经过4次比较,得到次大的数8。如此进行下去。可以推知,6个数要比较5趟。在第一趟中要进行两两比较5次,在第二趟中比较4次,……第5趟比较1次。因此设置两层循环,外层循环变量i从O变化大到n-1,内层循环变量j从0到n-j,在内层循环体内,比较相邻两数,如果前面比后面的大则交换。在内层循环体内,如果前面的元素比后面的元素大,则用一个临时变量记录前面的第j个元素,然后将第j+1个元素赋值给第j个元素,临时变量值赋给第j+1个元素,如此完成两个元素的交换。

  三、综合应用题

  (1)应添加“staticfloatAllWeight;”。

  (2)应添加“Weight=w;”。

  (3)应添加“AllNo--;”。

  (4)应添加“intTCFruit::AllNo=0;”。

  【解析】静态数据成员声明时需使用关键字static,因此第1处应添加“staticfloatAllWeight;”。构造函数用来对类成员进行初始化,在TCFruit类的构造函数TCFruit(floatw)中,完成weight的初始化,并把这个w加到AllWeight中,并且AllNo自加,因此第2处应添加“weight=w;”。调用析构函数相当于退出,这时AllWeight中减去weight,然后AllNo自减,因此第3处应添加“AllNo--;”。静态数据成员的初始化格式为“<数据类型><类名>::(静态数据成员>=(初始值)”,因此第4处应添加“intTCFruit::AllNo=0;”。

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