郑州大学《面向对象程序设计》1-12章在线测试题库 联系客服

发布时间 : 星期三 文章郑州大学《面向对象程序设计》1-12章在线测试题库更新完毕开始阅读2523ea3a0640be1e650e52ea551810a6f524c80a

C、有this指针,不能执行默认操作 D、没有this指针,也就没有默认操作的对象

2、下面关于友元的说法正确的是( )

A、友元函数是拥有成员函数一切权利 B、友元是一种成员函数

C、友元可以直接访问类的所有成员 D、友元不能访问类的私有成员

3、下面关于友元函数正确的说法是( )

A、在类中用关键词friend声明友元函数 B、友元函数说明的位置只能在类的public区 C、友元函数的定义只能放在类的外部 D、友元函数不是类的成员函数

4、关于友元函数的说法正确的是( )

A、友元函数可以是普通函数,可以是其他类的成员函数,也可以是本类的成员函数 B、友元函数可以访问多个类的私有成员和保护成员 C、在调用友元函数的时候需要使用“.”运算符

D、如果友元函数是某个类的成员函数,在定义这个友元函数的时候要使用类前缀。

5、下面关于友元函数使用特点的说明正确的是( )

A、友元函数可以绕开成员函数直接访问类的私有和保护成员,避免调用成员函数相关的开销 B、友元函数虽然不是类的成员函数,但是因为友元函数是在类内说明的,所以也带有用this指针 C、友元函数可以以使用类内的所有成员,因此破坏了数据的安全性 D、友元函数的形参如果是类对象,可以用对象名,对象的引用或者对象指针

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

1、友元只能访问类中的公有成员,不能访问私有成员。 正确 错误 2、友元函数的定义只能放在类的外部,与类的成员函数放在一起。 正确 错误 3、如果函数f()要操作类A和类B的私有成员,可以把f()声明为类A的成员函数,把类A声明为类B的友元类。 正确 错误 4、友元具有传递性,单向性和继承性的特点。 正确 错误 5、一个函数可以是多个类的友元函数。 正确 错误 交卷

恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第04章在线测试的得分为 20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取最高分。

测试结果如下:

? ? ? ?

? ?

1.1 [单选] [对] 若B类为A类的友元类,则下面的说法正确的是( ) 1.2 [单选] [对] 一个类的友元不是该类的成员,与该类的关系密切,所以它( )。

1.3 [单选] [对] 下面的语句中能将类B 定义为类A的友元类的是( )

1.4 [单选] [对] 如果类B 是类A的友元类,n是类A的私有数据成员,函数f(A tmp)是类B的公有成员函数,a是类A的对象, b是B类的对象,下面语句正确的是( )

1.5 [单选] [对] 下面对于友元函数描述正确的是 2.1 [多选] [对] 一个类的友元不是该类的成员,与该类的关系密切,所以下面它的说法错误的是( )。

? ? ? ? ? ? ? ? ?

2.2 [多选] [对] 下面关于友元的说法正确的是( ) 2.3 [多选] [对] 下面关于友元函数正确的说法是( ) 2.4 [多选] [对] 关于友元函数的说法正确的是( )

2.5 [多选] [对] 下面关于友元函数使用特点的说明正确的是( ) 3.1 [判断] [对] 友元只能访问类中的公有成员,不能访问私有成员。 3.2 [判断] [对] 友元函数的定义只能放在类的外部,与类的成员函数放在一起。

3.3 [判断] [对] 如果函数f()要操作类A和类B的私有成员,可以把f()声明为类A的成员函数,把类A声明为类B的友元类。

3.4 [判断] [对] 友元具有传递性,单向性和继承性的特点。 3.5 [判断] [对] 一个函数可以是多个类的友元函数。

《面向对象程序设计》第05章在线测剩余时间: 试 59:56 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、为了实现两个复数类对象c1,c2相加c1+c2,下面的语句正确的是() B、class Complex { Complex operator+(CompA、class Complex { Complex operator+();} lex &);} C、class Complex { Complex operator+(CompD、Complex operator+(Complex &); lex, Complex);} 2、在成员函数中进行双目运算符重载时,其参数表中应带有( )个参数。 A、0 C、2 B、1 D、3 3、双目运算符重载为普通函数时,其参数表中应带有( )个参数。 A、0 C、2 B、1 D、3 4、如果表达式a++中的“++”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。

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

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

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

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

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

第二题、多项选择题(每题2分,5道题共10分)

1、在重载一运算符时,若运算符函数的形参表中没有参数,则可能的情况是( )。

A、该运算符是一个单目运算符。

B、该运算符函数有一个隐含的参数this。 C、该运算符函数是类的成员函数。 D、该运算符函数是类的友元函数。

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

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

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

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

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

4、下面关于类型转换运算符正确的说法是( )

A、重载类型转换运算符没有实际意义,因为C++中有强制类型转换机制。