面向对象程序设计郑大网上测试 下载本文

《面向对象程序设计》第05章在线测试

《面向对象程序设计》第05章在线测试

剩余时间:5 9:53

第一题、单项选择题(每题1分,5道题共5分)

1、为了实现两个复数类对象c1,c2相加c1+c2,下面的语句正确的是()

B、class Complex { Complex operator+(Complex &);}

C、class Complex { Complex operator+(Complex, Complex);}

A、class Complex { Complex operator+();}

D、Complex operator+(Complex &);

2、如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。

A、a.operator==(b) C、operator==(a,b)

B、b.operator==(a) D、operator==(b,a)

3、如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。

A、a.operator++(1) C、operator++(a,1)

B、operator++(a) D、a.operator++()

4、假定M是一个类名,且M中重载了操作符=,可以实现M对象间的连续赋值,如“m1=m2=m3;”。重载操作符=的函数原型最好是( )。

A、int operaotor=(M); C、M operator=(M&);

B、int operator=(M&); D、M& operator=(M);

5、下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是( )。

A、Value operator+(Value, Value); C、Value &operator+(Value, Value);

B、Value operator+(Value,int); D、Value &operator+(Value&, Value&);

第二题、多项选择题(每题2分,5道题共10分) 1、下面运算符不能重载的是( )

A、<< B、:: C、. D、,

2、关于运算符重载,下列说法错误的是( )。

A、所有的运算符都可以重载。

B、通过重载,可以使运算符应用于自定义的数据类型。 C、通过重载,可以创造原来没有的运算符。 D、通过重载,可以改变运算符的优先级。

3、在重载一个运算符时,其参数表中没有任何参数,这表明该运算符不可能是( )。

A、作为友元函数重载的1元运算符 B、作为成员函数重载的1元运算符 C、作为友元函数重载的2元运算符 D、作为成员函数重载的2元运算符

4、类A中重载运算符new为成员函数的定义如下: void * operator new ( size_t size, int x, int y){?} 则使用重载new的方法错误的是:( )

A、new A;

B、new (1,2,3); C、new (1,2,3)A; D、new A (1,2,3);

5、重载del_ete运算符的格式错误的是( )

A、void * operator del_ete(void*); B、void * operator del_ete(void*,参数表); C、void * operator del_ete(参数表); D、void * operator del_ete();

第三题、判断题(每题1分,5道题共5分)

1、多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。

正确

错误

2、单目运算符->只能被重载为成员函数。

正确

错误

3、双目运算符重载为成员函数的时候,一个运算对象由this指针给出,另一个运算对象通过重载运算符的形参传递。

正确 错误 4、双目运算符op重载为A类的成员函数后,表达式“ obj1 op obj2”可以解释为:operator op(obj1,obj2)。 正确 错误 5、重载=运算符没有实际意义,因为系统会为每一个类自动生成赋值运算符。 正确 错误

《面向对象程序设计》第06章在线测试

剩余时间: 58:51

第一题、单项选择题(每题1分,5道题共5分)

1、模板参数在函数参数表中出现的次数不可能是( )。

A、1 C、0

B、2 D、任意

2、关于函数模板的说法错误的是( )

B、函数模板是具体的函数,在系统遇到具体函数调用时生成

C、函数模板是一组函数的抽象

A、函数模板是一个模板,其中用到通用类型参数

D、函数模板不能执行

3、下面函数模板的声明正确的是( )

A、template void fun(int x){?}

B、template < class T> void fun(int x){?} D、template <class T> void fun(class T x){?}

C、template < class T> void fun(T x){?}

4、下面关于函数调用的顺序说法正确的是( )

A、函数调用时首先匹配参数完全相同的函数 C、函数调用时如果没有找到对应的函数模板生成模板函数就查找参数相同的函数

5、下面的说法错误的是( )

A、类模板或类模板的引用可以作为函数的形参 C、调用带有类模板参数的函数时对应的实参应该是该类模板实例化的模板类对象

B、函数调用时首先寻找匹配的函数模板

D、函数调用时如果函数模板和函数都没有对应的,函数调用错误

B、带有类模板参数的函数与普通函数相同

D、类模板中可以设计友元函数

第二题、多项选择题(每题2分,5道题共10分) 1、关于模板函数的说法正确的是( )

A、模板函数是编译系统在编译时根据函数模板自动生成的。 B、模板函数是函数的模板

C、模板函数是程序员用代码写出来的 D、模板函数是函数模板的实例化

2、模板函数与函数模板的区别是( )