郑大远程面向对象程序设计试题 下载本文

C、operator==(a,b)

D、operator==(b,a)

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

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

B、operator++(a) D、operator++(1,a)

3、双目运算符的调用格式是( )

A、双目运算符 左运算对象 右运算对象 C、左运算对象 双目运算符 右运算对象

B、双目运算符 右运算对象 左运算对象 D、右运算对象 双目运算符 左运算对象

4、一个程序中数组a和变量k定义为“int a[5][10],k;”,且程序中包含有语句“a(2,5)=++k*3;”,则此语句中肯定属于重载操作符的是( )。

A、( ) C、++

B、= D、*

5、下面是重载单目运算符-的成员函数原形,其中最符合-原来含义的是( )。

A、Value Value::operator-(Value); C、Value& Value::operator-(Value);

B、Value Value::operator-(int); D、Value& Value::operator-(Value&);

第二题、多项选择题(每题2分,5道题共10分) 1、关于运算符重载,下列说法错误的是( )。

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

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

2、下面不是运算符new重载的正确格式的是( )

A、void *类名::operator new(size_t size, int x, int y); B、int *类名::operator new(size_t size, int x, int y); C、void *类名::operator new(size_t size);

D、void *类名::operator new(int x, int y,size_t size);

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

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

4、下面关于逗号运算符的说法正确的是( )

A、逗号运算符是多目运算符

B、逗号运算符的表达式为“左运算数,右运算数”,返回值为右运算数的值。 C、逗号运算符可以重载为成员函数,形参只带右运算数。 D、逗号运算符的返回值为左运算数的值。

5、下面重载类型转换运算符的语句正确的是( )

A、class X {X operator (int);}; B、class X {operator(X, int);}; C、class X {operator Z( );}; D、class X {operator Y( );};

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

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

正确

错误

2、对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数。

正确

错误

3、重载运算符保持原运算符的优先级和结合性不变。

正确

错误

4、重载比较运算符函数的返回值必须是bool类型。

正确

错误

5、重载=运算符没有实际意义,因为系统会为每一个类自动生成赋值运算符。

正确

错误

《面向对象程序设计》第03章在线测试 剩余时间: 36:03 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、假定AB为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的( )。 A、无参构造函数 C、赋值重载函数 B、带参构造函数 D、拷贝构造函数 2、当一个类对象结束它的生存期的时侯,系统自动调用该类的( )。 A、无参构造函数 C、拷贝构造函数 B、带参构造函数 D、析构函数 3、类的构造函数被自动调用执行的情况是在定义该类的 ( ) A、成员函数时 C、对象时 B、数据成员时 D、友元函数时 4、假定AB为一个类,则执行“AB *p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。 A、0 C、2 B、1 D、3 5、假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为( )。 A、abc C、this B、*this D、this& 第二题、多项选择题(每题2分,5道题共10分) 1、构造函数的初始化表一般用来( ) A、初始化常量数据成员 B、初始化子对象 C、初始化引用成员 D、初始化静态数据成员 2、下面关于构造函数的说法正确的是( ) A、构造函数的函数名与类名相同 B、构造函数可以重载

C、构造函数不可以设置默认参数 D、构造函数必须指定类型说明

3、下面关于静态数据成员的说法错误的是( )

A、静态数据成员是类的所有对象所共有的 B、静态数据成员要在构造函数内初始化 C、类的每个对象有自己的静态数据成员 D、静态数据成员不能通过类的对象调用

4、下列描述属于类的成员函数的是( )

A、构造函数 B、析构函数 C、友元函数 D、拷贝构造函数

5、下面关于常对象的说法正确的是()

A、在定义常对象时必须进行初始化。 B、常对象的数据成员不能被更新。 C、常对象不能作为类的成员。

D、通过常对象可以调用该对象的成员函数。

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

1、假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为x->a。

正确

错误

2、C++允许使用友元,但是友元会破坏封装性。

正确

错误

3、如果类A的声明中将类B的对象作为数据成员,则称类A和类B之间是一种has-a关系,类B是类A的子对象。