itgle.com

有以下程序include using namespacestd;class Complex{public:Complex (doubler=0, d有以下程序 #include <iostream> using namespace std; class Complex { public: Complex (double r=0, double i =0 :re(r) ,im (i) {} double real() const {return re;} double imag() const { retu

题目
有以下程序include using namespacestd;class Complex{public:Complex (doubler=0, d

有以下程序 #include <iostream> using namespace std; class Complex { public: Complex (double r=0, double i =0 :re(r) ,im (i) {} double real() const {return re;} double imag() const { return im;} Complex operator + (Complex c} const {return Complex(re+c.re, im+c.im);} privane: double re,im; }; int main { Complex a =Complex (1,1)+Complex(5); cout<<a.real()<<'+'<<a.imag() << 'i' <<endl return 0; } 程序执行后的输出结果是

A.6+6i

B.6+1i

C.1+6i

D.1+1i


相似考题
参考答案和解析
正确答案:B
解析:本题考核类与对象、运算符重载。运算符“+”在类Complex中作为成员函数重载,实现两个对象的数据成员的相加。所以main函数中语句“Complexa=Complex(1,1)+Complex(5);”的作用相当于“Complexa(1+5,1);”即对象a的数据成员re的值为6,imag的值为1,所以输出为6+1i。
更多“有以下程序#include <iostream>using namespacestd;class Complex{public:Complex (doubler=0, d ”相关问题
  • 第1题:

    有以下程序; #include<iostream> usingnamespacestd; classComplex { public: Complex(doubler=0,doublei=O):re(r),im(i){} doublereal()const{returnre;} doubleimag()const{returnim;} Complexoperator+(Complexc)const {returnComplex(re+C.re,im+C.im);} private: doublere,im; }; intmain() { Complexa=Complex(1,1)+Complex(5); cout<<a.real()<<+<<a.imag()<<i<<endl; return0; } 程序执行后的输出结果是( )。

    A.6+6i

    B.6+1i

    C.1+6i

    D.1+1i


    正确答案:B
    B。【解析】运算符+在类Complex中作为成员函数重载,实现两个对象的数据成员的相加。所以main函数中语句Complexa=Complex(1,1)+Complex(5);的作用相当于Complexa(1+5,1);,即对象a的数据成员re的值为6,imag的值为1,所以输出为6+1i。

  • 第2题:

    有以下程序: include using namespace std; class Complex{public: Complex(double

    有以下程序: #include <iostream> using namespace std; class Complex { public: Complex(double r=0,double i=0):re(r),im(i){ double zeal() const {return re;} double imag() const {return im;} Complex operator+(Complex c) const { return Complex(re+c.re,im+c.im);} private: double re,im; }; int main() Complex a=Complex(1,1)+Complex(5); cout<<a.real()<<'+'<<a.imag()<<'i'<<end 1; return 0; }程序执行后的输出结果是______。

    A.6+6i

    B.6+1i

    C.1+6i

    D.1+1i


    正确答案:B
    解析:类对“+”重载后,对应的变量相加。

  • 第3题:

    (3)下列程序定义了一实部为real,虚部为imag的复数类complex,要求重载运算符“+”、“-”、“*”,实现复数对象的加法、减法、乘法运算,并编写测试程序。 class Complex { private: double real, imag; public: complex(double r, double i) { real=r; imag=i; } };


    virtual void fun()=0;

  • 第4题:

    有下列程序:includeusing namespace std;class Complex{double re,im;public:Complex

    有下列程序: #include<iostream> using namespace std; class Complex { double re,im; public: Complex(double r,double i):re(r),im(i){} double real()const{retum re;} double image()const{return im;} Complex& operator+=(Complex A) { r

    A.(1,-2)

    B.(2,3)

    C.(3,5)

    D.(3,1)


    正确答案:C
    解析: 此题考查的是“+”运算符的重载。重载后的“+”运算符的功能是对参数的两部分分别进行加法运算,然后返回复数值。所以x+=y使得对象x(1,2)与y(2,3)的re和im分别相加,最后输出结果(3,5)。

  • 第5题:

    有以下程序:includeusing namespace std;class Complex{public:Complex(dOuble r=0,d

    有以下程序: #include<iostream> using namespace std; class Complex { public: Complex(dOuble r=0,dOuble i=0):re(r),im(i){} doublereal()const{return re;} doubleimag()const{return im;} Complex operator+(Complex c)const {return Complex

    A.6+6i

    B.6+1i

    C.1+6i

    D.1+1i


    正确答案:B
    解析: 运算符”+”在类Complex中作为成员函数重载,实现两个对象的数据成员的相加。所以main函数中语句”Complexa=Complex(1,1)+Complex(5);”的作用相当于”Complexa(1+5,1);”即对象a的数据成员re的值为6,imag的值为l,所以输出为6+1i。