问答题 请使用VC6或使用【答题】菜单打开考生文件夹prog1下的工程prog1。此工程中包含程序文件main.cpp,其中有类Score(“成绩”)和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: 学号:12345678 课程:英语 总评成绩:85 注意:只修改每个“//ERROR****found****”下的一行,不要改动程序中的其他内容。#include<iostream>using namespace std;class Score{public: Score(const char*the course,const char*the id,int the normal,int the midterm,int the end of term) :course(the course),normal(the normal),midterm(the midterm),end of term(the end of term){ //ERROR**********found********** strcpy(the id,student_id); } const char*getCourse()const{return course;)//返回课程名称//ERROR**********found********** const char*getID()const{return&student id;) //返回学号 int getNormal()const { return normal;) //返回平时成绩 int getMidterm()const f return midterm;}//返回期中考试成绩 int getEnd0fTerm《)const{return end_of_term;) //返回期末考试成绩 int getFinal()const;//返回总评成绩private: const char*course;//课程名称 char student id[12]; //学号 int normal;//4时成绩 int midterm; //期中考试成绩 int end of term; //期末考试成绩 }; //总评成绩中平时成绩占20%,期中考试占 30%,期末考试占50%,最后结果四舍五入为 一个整数 //ERROR**********found********** int getFinal()const{ return normal*0.2+midterm*0.3+end_of_term*0.5+0.5;}int main(){ char English[]=”英语”; Score score(English,”12345678”,68,83,92);cout<<”学号:”<<score.getID()<<"";cout<<”课程:”<<score.getCourse()<<””; cout<<”总评成绩:”<<score.getFi—nal()<<endl; return 0;}
【正确答案】正确答案:(1)strcpy(student_id,the_id); (2)const char*getID()const{retum student_id;} (3)int Score::getFinal()const{
【答案解析】解析:(1)主要考查考生对strcpy()函数的掌握情况,strcpy(参数一,参数二)函数的功能是将参数二的字符串复制给参数一,因此在这里student_id应该位于参数一的位置,即strcpy(student_id,the_id);。 (2)主要考查考生对函数返回值的掌握情况,根据注释:返回学号可知学号应该由一个字符串组成。再看函数要返回的类型:const char*,可知要返回一个char型指针,也就是一个char型数组,而&student_id是一个char型数组指针,因此直接写student_id即可。 (3)主要考查考生对类的成员函数的掌握情况,因为getFinal函数是Score类的成员函数,所以在定义时要加上类名和作用域符,即Score::。