首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj2,此工程包含一个源程序文件proj2.cpp。其中定义了Score类。 Score是一个用于管理考试成绩的类。其中,数据成员_s指向存储成绩的数组,_n表示成绩的个数;成员函数Sort使用冒泡排序法将全部成
请打开考生文件夹下的解决方案文件proj2,此工程包含一个源程序文件proj2.cpp。其中定义了Score类。 Score是一个用于管理考试成绩的类。其中,数据成员_s指向存储成绩的数组,_n表示成绩的个数;成员函数Sort使用冒泡排序法将全部成
admin
2019-04-24
41
问题
请打开考生文件夹下的解决方案文件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
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
非成员函数应该声明为类______函数才能访问该类的私有成员。
下列关于派生类构造函数和析构函数的说法中,错误的是()。
有以下程序段:#include<iostream.h>#defineMAX(x,y)(x)>(y)?(x):(y)voidmain(){inti,j,k;i=10;j=15;k=MAX(i
数据流图中带有箭头的线段表示的是()
不能作为函数重载的判断依据的是()。
纯虚函数的声明总是以______结束。
已知下列程序的输出结果是42,请将画线处缺失的部分补充完整。#include<iostream>usingnamespacestd;classTestClass{intvalue;public:Tes
如下函数的作用是以双倍行距输出文件:voiddouble_space(ifstream&f,ofstream&t){charc;while(______){______;if(c==’\n’)t.put(c)
下面的符号中可以用作C++标识符的是()。
A、 B、 C、 D、 Dc++语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键字。所以正确的形式应该是~Myclass()。
随机试题
将数据转换为信息的过程中需要
A、 B、 C、 D、 B
铁减少期:
A.60℃,4小时B.60℃,2小时C.100℃,10分钟D.100℃,5分钟E.100℃,3分钟灭活甲型肝炎病毒的最低温度条件是
血液净化技术不仅仅用于慢性肾衰竭的替代治疗,且已广泛用于下列多种危重病的治疗,除外
A、出生后6个月~6岁B、7~10岁C、6~12岁D、10~12岁E、13~15岁乳牙列时期
重大科技专项中的集成电路布图设计登记主要包括的内容有()。
甲公司是2015年6月25日由乙公司和丙公司共同出资设立的,注册资本为200万元,乙公司以一台设备进行投资,该台设备的原价为84万元,已计提折旧24.93万元,投资双方经协商确认的价值为65万元,设备投资当日公允价值为60万元。投资后,乙公司占甲公司注册资
人际关系的建立与发展要经过哪四个阶段?()
体检表中有日期/时间型数据“体检时间”,若规定在体检3个月后复检,建立生成表查询,生成列“复检时间”并自动给出复检日期,正确的表达式是()。
最新回复
(
0
)