您的当前位置:首页正文

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

2023-06-03 来源:小奈知识网
《面向对象程序设计》第03章在线测试

《面向对象程序设计》第03章在线测试 剩余时间:5 3:29 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、类的指针成员的初始化是通过函数完成的,这个函数通常是 A、析构函数 C、其它成员函数 B、构造函数 D、友元函数 2、在 c++ 中实现封装是借助于 ( ) A、枚举 C、数组 B、类 D、函数 3、一段程序的定义如下,在函数f()中将动态对象的成员n的值改为34的语句应该为 ( ) class A { int n; public: setn(int nl) {n=nl;} A(int x) {n = x; } } int f() {A * ptr = new A(45);... } A、A.n=34; C、ptr->setn(34); B、ptr.setn(34); D、setn(34); 4、假定AB为一个类,则执行“AB *p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。 A、0 C、2 B、1 D、3 5、假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“del_ete []px;”语句时共调用该类析构函数的次数为( )。 A、0 C、n B、1 D、n+1 第二题、多项选择题(每题2分,5道题共10分) 1、下面有关类说法正确的是( ) A、一个类可以有多个构造函数 B、一个类只有一个析构函数 C、析构函数需要指定参数 D、在一个类中可以说明具有类类型的数据成员

2、构造函数的初始化表一般用来( )

A、初始化常量数据成员 B、初始化子对象 C、初始化引用成员 D、初始化静态数据成员

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

A、构造函数的函数名与类名相同 B、构造函数可以重载

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

4、假定AB为一个类,则执行 “AB *s=new AB(a,5);”语句的结果是

A、动态生成对象AB赋值给变量s B、动态生成对象s

C、如果对象AB中有公有成员a,则s->a可以访问该成员 D、动态生成对象AB,该对象的地址赋值给变量s

5、假定一个类的构造函数为A ( int aa, int bb) { a = aa; b = bb; } ,则执行 A x(4,5); 语句后, x.a 和 x.b 的值分别为 ( ) 。

A、4 B、5 C、20 D、0

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

1、若Sample类中的一个成员函数说明如下: Void set(Sample &a) 其中Sample &a表示的含义是.a是类Sample的对象引用,用来作函数Set()的形参。

正确

错误

2、C++允许使用友元,但是友元会破坏封装性。 正确 错误 3、静态成员函数允许访问类的数据成员。 正确 错误 4、如果类A的声明中将类B的对象作为数据成员,则称类A和类B之间是一种has-a关系,类B是类A的子对象。 正确 错误 5、静态数据成员不从属于任何一个具体对象,所以必须在构造函数对它初始化。 正确 错误 交卷

因篇幅问题不能全部显示,请点此查看更多更全内容