运算符重载自考习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2000.10

19、重载的运算符仍然保持其原来的优先级、结合性和____________。

25、下面程序希望产生的输出为4+3i,但是运行输出是3+3i,请指出错误并改正

#include

class complex {

int real; // 实部

int imag; // 虚部

public:

complex(int r=0,int i=0): real(r),imag(i) {}

void show() { cout<

complex operator++() { real++; return * this; }

};

void main() {

complex c(2,3);

++++c;

c.show();

}

Key:complex &operator++() { real++; return * this; }

2001.10

29.下面是类fraction(分数)的定义,其中重载的运算符<<以分数形式输出结果,例如将三分之二输出为2/3。在横线处

填上适当字句。

class fraction{

int den; //分子

int num; //分母

friend ostream& operator<<(ostream&,fraction);

};

ostream& operator <<(ostream& os,fraction fr){

_________;

return _________;

}

29.os<

2002.10

6.如果表达式++i*k中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达

式还可表示为( )

A.operator*(i.operator++(),k)

B.operator*(operator++(i),k)

C.i.operator++().operator*(k)

D.k.operator*(operator++(i))

33.写出下面程序的输出结果。

#include

class FUN{

friend ostream& operator <<(ostream&,FUN);

}fun;

ostream& operator<<(ostream& os,FUN f){

os.setf(ios::left);

return os;

}

void main()

{

cout<

cout<

}

输出为:

2003.10

3.在下列成对的表达式中,运算符“+”的意义不相同

...的一对是( )

A.5.0+2.0和5.0+2

B.5.0+2.0和5+2.0

C.5.0+2.0和5+2

D.5+2.0和5.0+2

31.写出下面程序的输出结果:

# include

class FunArray{

int *pa; //指向一个数组空间

int size; //数组元素个数

public:

FunArray(int a[ ],int thesize):pa(a),size(thesize){ }

int Size( ){return size;}

int& operator[ ](int index){return pa[index-1];}

};

void main( ){

int s[ ]={3,7,2,1,5,4};

FunArray ma(s,sizeof(s)/sizeof(int));

ma[3]=9;

for(int i=1;i<=ma.Size( );i++) cout<

}

2004.10

3.在下列成对的表达式中,运算结果类型相同的一对是()

A.9.0/2.0和9.0/2 B.9/2.0和9/2

C.9.0/2和9/2 D.9/2和9.0/2.0

14.如果重载了运算符+,则相应的运算符函数名是___________________。

21.下面的类Complex 定义中有一处错误,如更正了错误,程序的输出是5+8i。请用下横线标出错误所在行并给出修改意见。

#include //1

#include //2

class Complex{ //3

double real; //4

double imag; //5 public: //6

Complex (double r=0.0, double i=0.0): real (r), imag (i){} //7

void show(){cout<=0?'+': '-') <

friend Complex& operator += (Complex c1, Complex c2){ //9 c1.real+=c2.real; c1.imag+=c2.imag; //10

相关文档
最新文档