请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程包含一个源程序文件proj2.cpp。其中定义了Score类。 Score是一个用于管理考试成绩的类。其中,数据成员_s指向存储成绩的数组,一n表示成绩的个数;成员函数Sort

admin2019-05-29  32

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程包含一个源程序文件proj2.cpp。其中定义了Score类。
Score是一个用于管理考试成绩的类。其中,数据成员_s指向存储成绩的数组,一n表示成绩的个数;成员函数Sort使用冒泡排序法将全部成绩按升序进行排列。
请在程序中的横线处填写适当的代码,然后删除横线,以实现Score类的成员函数Sort。
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
//proj2.cpp
#include
#include
#include
using namespace std;
class Score{
public:
  Score(double*S,int n):  s(S),  n
  (n){)
  double GetScore(int i)const{return S;)
  void Sort();
private:
  double*  S;
  int n;
};
void Score::Sort()
{
//********** found**********
  for(int i=0;i<  n一1 ;
  }
**********  found**********
  for(int J=?J>i;J一一)
   ___________________。
if(一S[J]{  //交换_s[j]和一S[j一1]
double t=-s[j];
  //**********found**********
  __________;
  //**********found**********
  __________;:
}
}
int main()
{
  const int NUM=10;
  double S[NUM];
  srand(time(0));
  for(int i=0;i  S=double(rand())/RAND MAX
*100;
  Score SS(S,NUM);
  SS.Sort();
  for(int j=0;Jcout<  return 0;
}

选项

答案(1)i++ (2)一n—1 (3)一s[j]=一s[j—1] (4)一s[j一1] =t

解析 本题考查Score类,其中涉及构造函数、成员函数和排序算法。
【解题思路】
(1)主要考查for循环语句,从题目要求可知循环变量i要从0到一n一2,因此i要递增操作,即i++。
(2)主要考查考生对冒泡排序的掌握,这里要求从后往前扫描,比较相邻两个元素,若后者小则交换,因此在这里下标j要从最后开始,即int j=一n—1。
(3)考查交换算法,在if语句中一s[j]<一s[j—1]满足条件,则实现交换。因为已经把一s[j]的值赋给了中间变量t,所以这里要把一s[j一1]的值赋给一s[j],即一s[j]=一s[j一1];。
(4)考查交换算法,这里只需把中间变量t中的值赋给_s[j—1]即可。
【解题宝典】
本题考查的是考生对冒泡排序算法的掌握,要记住冒泡排序的思想是两两比较待排序序列中的元素,并交换不满足顺序要求的各对元素,直到全部满足顺序要求为止。
转载请注明原文地址:https://jikaoti.com/ti/r5A0FFFM
0

相关试题推荐
最新回复(0)