1、面向对象程序设计第04章在线测试面向对象程序设计第04章在线测试剩余时间:55:21窗体顶端答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分)1、当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的( )。A、只能是公有成员B、只能是保护成员C、只能是除私有成员之外的任何成员D、具有任何权限的成员2、引入友元的主要目的是为了( )。A、增强数据安全性B、提高程序的可靠性C、提高程序的效率和灵活性D、
2、保证类的封装性3、关于友元的说法正确的是( )A、友元关系可以继承B、友元关系是双向的C、友元关系不可以传递D、友元关系可以取消4、下面对于友元函数描述正确的是A、友元函数的实现必须在类的内部定义B、友元函数是类的成员函数C、友元函数破坏了类的封装性和隐藏性D、友元函数不能访问类的私有成员5、关于友元类的定义正确的说法是( )A、如果在类B中定义友元类A ,必须先定义类AB、如果在类B中定义友元类A ,必须先定义类BC、如果在类B中定义友元类A ,可以定义类B,后定义类A,但是必须在类B的定义之前,对类A向前引用说明D、类A是类B的友元,类A 和类B 的定义顺序没有先后之分第二题、多项选择题(
3、每题2分,5道题共10分)1、下面关于友元函数正确的说法是( )A、在类中用关键词friend声明友元函数B、友元函数说明的位置只能在类的public区C、友元函数的定义只能放在类的外部D、友元函数不是类的成员函数2、定义类B的构造函数为类A的友元函数的语句是( )A、class A friend B();B、class A friend B:B();C、class A friend void B:B();D、class A friend double B:B();3、若B类为A类的友元类,则下面的说法错误的是( )A、B类的所有成员函数都是A类的友元函数B、B类指定的成员函数才是A类的友元C
4、、A类的所有成员函数可以访问B类的成员D、B类的私有成员函数不能可以访问A类的私有成员4、已知类 A 是类 B 的友元,类 B 是类 C 的友元,下面说法正确的是 ( )A、类 A 的成员函数一定是类 B 的友元函数B、类 C 一定是类 A 的友元C、类 C 的成员函数可以访问类 B 的对象的任何成员D、类 A 的成员函数可以访问类 B 的对象的任何成员5、友元函数在类中的定义位置是( )A、只能在public区B、可以在任意区域C、只能在protected区D、只要在类中就可以第三题、判断题(每题1分,5道题共5分)1、友元函数只能访问一个类的私有和保护的成员。正确错误2、C允许使用友元,但是友元会破坏封装性。正确错误3、友元类是使用friend关键字声明的类,它的所有成员函数都是相应类的友元函数。正确错误4、友元类的所有成员函数都是友元函数。正确错误5、友元函数的返回值如果是某个类的对象的话,返回值类型必须是类对象的引用。正确错误窗体底端