《面向对象程序设计》期末复习题及答案4 下载本文

public:

fract(int d=0,int n=1):den(d),num(n){} //1行 friend fract &operator+=(fract,fract&); //2行 void show(){ cout<

}; //4行 friend fract &operator+=(fract f1,fract f2) //5行 { //7行 f1.den=f1.den*f2.num+f1.num*f2.den; //8行 f1.num*=f2.num; //9行 return f1; //10行 }

void main(){

fract fr(3,4); fr+=fract(5,7); fr.show(); }

错误行的行号为______和________。(2分)

分别改正为_____________________________________(4分) 和_____________________________________(4分) 参考答案: 一、单选题

1. B 2. B 3.A 4.C 5. D 6. D 7. A 8.A 9. B 10. C

二、填空题

1. void 2. ‘x’ 3.contiune 4. 4 5. 不会

6. ple 7. 多继承(或多重继承) 8. 类型 9. 不会 10. 2

三、程序填充题,根据题意在横线上填写合适的内容。 评分标准:每空4分

1. (1) AA::MaxA() (2) x=a[i] (3) return x 2. (1)a[i]=aa[i] (2)delete []a

3. (1) Base::output() (2) Base(m1,m2) (3) mem3=m3

四、理解问答题,写出程序运行结果或程序(或函数)所能实现的功能。

(?1)i1. 计算并输出1+?2的值,其中a的值由键盘输入。

i?2ia2.实现strcat函数的功能,把str2所指字符串连接到str1所指字符串的后面,并返回str1指针。 3. x,y=10, 26 x,y=26, 10 x,y=10, 26 x,y=25, 11

五、程序改错,请根据程序段或函数模块的功能改写个别地方的错误。 2 5

friend fract &operator+=(fract&,fract); fract &operator+=(fract &f1,fract f2);