请打开考生文件夹下的解决方案文件proj2,此工程包含一个源程序文件proj2.cpp。其中定义了Score类。 Score是一个用于管理考试成绩的类。其中,数据成员_s指向存储成绩的数组,_n表示成绩的个数;成员函数Sort使用冒泡排序法将全部成

admin2019-04-24  34

问题 请打开考生文件夹下的解决方案文件proj2,此工程包含一个源程序文件proj2.cpp。其中定义了Score类。
    Score是一个用于管理考试成绩的类。其中,数据成员_s指向存储成绩的数组,_n表示成绩的个数;成员函数Sort使用冒泡排序法将全部成绩按升序进行排列。
    请在程序中的横线处填写适当的代码,然后删除横线,以实现Score类的成员函数Sort。
    注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
    1  //proj2.cpp
    2    #include
    3    #include
    4    #include
    5  using namespace std;
    6    class Score {
    7 public:
    8    Score(double  * s,  int n)  :    s(s),  n(n)  {}
    9 double GetScore(int i)const
    10  {return s;}
    11    void Sort();
    12 private:
    13 double*s;
    14    int;n ;
    15    };
    16  void Score::Sort()
    17  {
    18    //********found********
    19    for(int i=0 ; i<_n-1;____________)
    20    //********found********
    21    for(int j=___________;j>i;j--)
    22    if  (  s[j]  <    s[j-1]  )
    23    {    //交换 s[j]和 s[j-1]
    24 double t=s[j];
    25    //********found********
    26  __________;
    27    //********found********
    28  ____________;
    29    }
    30  }
    31
    32  int main()
    33  {
    34    const int NUH=10;
    35 double s[NUM];
    36    srand(time(0));
    37    for(int i=0 ; i    38    s=double(rand())/RAND_MAX * 100 ;
    39    score ss(s,NUM);
    40    ss.Sort();
    41    for(int j=0;j    42    cout<    43    return 0;
    44    }

选项

答案(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—。
    (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://kaotiyun.com/show/QOAp777K
0

最新回复(0)