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

admin2018-03-13  39

问题 请使用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-1])
    {  //交换 s[j]和 s[j-1]
    double t=s[j];
//********found********
  _______;
//********found********
  _______;
    }
}
int main()
{
  const int NUM=10 ;
  double s[NUN];
  stand(time(0));
  for(int i=0;i    s=double(rand())/
RAND MAX*100;
  Score ss(s,NUM);
  ss.Sort();
  for(int j=0 ; j    cout<endl;
  return 0;
  }

选项

答案(1)i++ (2)_n-1 (3)_s[j]=_s[j-1] (4)_s[j-1]=t

解析 (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/qLt0FFFM
0

最新回复(0)