1、1 下列各运算符中,(b)优先级最高。A. +(双目) B. *(单目) C. = D. *=2 下列各运算符中,( a)优先级最低。A?: B. | C. | D. !=3 运算符重载是对已有的运算符赋予多重含义,因此( c)。A)可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义。B)可以改变一个已有运算符的优先级和操作数个数。C)只能重载C+中已经有的运算符,不能定义新运算符。D)C+中已经有的所有运算符都可以重载。4 有自定义类型A,其赋值函数的函数原型为 A operator =( const A&);有A类型的对象a, b, c,下列语句不合法的是(d )Aa=b;
2、Ba=a; Ca=b=c; D(a=b)=c;5 下列运算符中,哪一个不能重载(a )。A?: B C( ) D+6 下列运算符中,哪一个必须使用成员函数重载(a )A= B C- D+7 有自定义类型A,其赋值函数的函数原型为 const A& operator =( const A&);有A类型的对象a, b, c,下列语句不合法的是( d)Aa=b; Ba=a; Ca=b=c; D(a=b)=c;8 下列运算符中,哪一个可以使用全局函数重载(d )。A= B C( ) D+9 对于自定义类型来说,下列运算符中,需要重载才能使用的是( b)A = (赋值) ; B (下标) ; C& (取
3、地址) ; D , (逗号) ;10 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: ( b ) A. AB AB:operator+(const ABa,const AB & b)BAB AB:operator+(const ABa)CAB:operator+(AB a) DAB & AB:operator+()11 后缀-运算符的重载函数语法格式如下:函数类型 operator-(形参,int)函数体则下面关于第2 个虚参的叙述中,正确的说法是( c )(A)第2个参数必须给出参数名称(B)第2个参数不能给出参数名称(C)第2
4、个参数必须是int型参数,其参数名可有可无(D)第2个参数也可以是long型参数12 设分数的类型定义如下:struct Fractionint nume;int deno; ;则下面关于取自身的单目运算符“+”的运算符重载函数中,最合适是( a )。(A)Fraction operator +(const Fraction& x)return x;(B) Fraction operator +(Fraction &x)return x;(C)void operator +(Fraction x)return x;(D)void operator +(Fraction &x)return x;
5、13 下列说法中,正确的说法是bA所有的运算符都能被重载B运算符被重载时,它们的优先级与结合性不会改变C当需要时,我们可以自定义一个运算符来进行重载D每个运算符都可以被重载成成员函数和友元函数14 下列有关运算符重载的叙述正确的是 a 。 A非静态成员函数重载运算符时带有this指针 B友元函数重载运算符时带有this指针 C成员函数与友元函数重载运算符时都不带有this指针 D用成员函数或友元函数重载同一运算符时,两者的参数类型与参数个数相同15 在下面的运算符重载函数的原型中,错误的是a A) Volume operator - (double, double);B) double Vol
6、ume:operator- (double);C) Volume Volume: :operator - (Volume);D) Volume operator - (Volume, Volume);16 若通过类的成员函数和友元函数所实现的运算符重载的功能是一样的,下列说法正确的是 d 。 A这两种函数的参数相同,函数体实现过程不同 B编译器对这两种函数编译时所作的解释相同 C这两种函数都带有this指针D友元函数比成员函数多一个参数17 下列运算符中,不能被重载的是( c) 。A)B)!= C). D)+18 下面程序中对一维坐标点类Point进行运算符重载 #includeusing n
7、amespace std;class point public:point (int val) x=val;point& operator+()x+;return *this;point operator+(int) point old=*this;+(*this);return old;int GetX() const return x;private: int x;int main()point a(10);cout(+a).GetX();cout=b 中的“=”是作为非成员函数重载的运算符,则可以等效地表示为(c)。A)a.operator=(b) B)b.operatotr=(a)C)operator=(a,b)D)operator=(b,a)