classStudent {//**1** intcomputer; inttotal; public:
voidgetinformation(); voidcomputesum(); intgetcode(); intgettotalscore(); ~Student();};
voidStudent::getinformation() {//**2**
cout<<\英语成绩:\ cin>>english;
cout<<\计算机成绩:\ cin>>computer;}
voidStudent::computesum() {total=english+computer; cout<<\编号\ intStudent::getcode() {returncode;}
intStudent::gettotalscore()
{returntotal;}
voidfirstname(Student*A[],intnum) { //**3**
tempsum=(*A[0]).gettotalscore(); for(inti=1;i {
if(((*A[i]).gettotalscore())>tempsum) {tempcode=(*A[i]).getcode(); tempsum=(*A[i]).gettotalscore();} }
cout<<\总分最高者--\ } voidmain() {Student*A[3]; inti,n=3; for(i=0;i
{A[i]=newStudent; A[i]->getinformation();} for(i=0;i
{A[i]->computesum();} firstname(A,3);}
【参考答案】 (1)int code; int english;
(2)cout<<\输入编号:\ cin>>code;
(3)int tempcode,tempsum; tempcode=(*A[0]).getcode(); 【试题解析】
本题是对C++程序设计的综合考查,其设计类的成员及成员函数的定义与调用,数据的输入输出,for循环语句,if条件判断语句等多个知识点,其中(3)中为指针数组的使用,指针数组是一组指针,每一个成员都按照指针的操作规则,但是整个访问规则仍然使用数组下标方式,如A[0]指的是第一个指针,而* A[0]是取出第一个指针指向的内容。
2
一、改错题
使用VC6打开考生文件夹下的工程kt7_1,此工程包含一个源程序文件kt7_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
Constructor1 Constructor1 Constructor1 Destructor Constructor2 Destructor x=0 x=5 Destructor Destructor
源程序文件kt21_1.cpp清单如下: #include classB {intx; public:
B(){x=0;cout<<\ B(inti){x=i;cout<<\ ~B(){cout<<\ /**********found**********/
~B(inti){cout<
{B*ptr; ptr=newB[2];
/**********found**********/ ptr[0]=B(0); ptr[1]=B(5);
/**********found**********/ for(inti=0;i<2;) ptr[i].print(); delete[]ptr;} 【参考答案】
(1)将~B(int i){cout< (2)将ptr[0]=B(0);改为:ptr[0]=B();
(3)将for (int i=0;i<2;)改为:for(int i=0;i<2;i++) B(inti){x=i;cout<<\ ~B(){cout<<\ /**********found**********/
~B(inti){cout<
/**********found**********/