问题 填空题

阅读以下说明和C++代码,将应填入______处的语句或语句成分写在对应栏内。
[说明]
某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前30%的学生。
[C++代码]
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Student
private:
string sNO; //学号
int credit;//分数
public:
Student(string a,int b)sNO=a;credit=b;
Student()
int getCredit();
void out();
;
______::getCredit()
return credit;

______::out()
Cout<<"SNO:"<<sNO<<",Credit="<<credit<<endl;

class SortStudent
public:
void sort(Student *s,int n);
SortStudent()
;
void SortStudent::sort(Student *s,int n)
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(s[i].______<s[j].______>
Student temp=s[i];s[i]=s[j];s[j]=temp;



int main(int argc,char* argv[])

const int number=100; //学生总数
ifstream students;
students.open("students.txt");
if(!students.is open())
throw 0;

Student *testStudent=______[number];
int k=0;
string s;
while(getline(students,s,’\n’))//每次读取一个学生的学号和成绩
Student student(s.substr(0,s.find(’,’)),atoi(s.substr(s.find(’,’)+1).c_str()));
testStudent[k++]=student;

Students.closeo;
______;
ss.sort(testStudent,k);
cout<<"top 30%:"+endl;
for(k=0;k<number*0.3;k++)
testStudent[k].out();

delete[]testStudent;
return 0;

答案

参考答案:SortStudent ss=new SortStudent

解析: 本题考查类和对象的概念。类的成员函数在类外部进行定义,其格式为:<返回类型><类名>::<成员函数名>(<参数表>)。同时返回类型应当与声明时的类型一致。因此第一空中应填“int Student”,第二空中应填“void Student”。第三空和第四空两空显然要填写成绩的信息,Student类中有两个成员可以获得成绩信息。数据成员credit和成员函数getCredit()。而数据成员credit是private权限的,只能由该类中的函数和友元函数访问。从SortStudent类的定义中可以知道Student是其成员对象,因此可以访问public权限的成员函数getCredit()。因此,第三空和第四空填“getCredit()”。类的对象首次出现时,需要新建,因此第五空中填“new Student”。ss对象引用了sort函数,因此它应该是SortStudent类的对象,在使用前需要新建,因此,第六空填“SortStudent ss=new SortSmdent”。

单项选择题
单项选择题