《面向对象程序设计》第02章在线测试
第一题、单项选择题(每题1分,5道题共5分)
1、类的指针成员的初始化是通过函数完成的,这个函数通常是 ( B )
A、析构函数 B、构造函数
C、其它成员函数 D、友元函数
2、假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为( A )。
A、a B、AA::a
C、a() D、AA::a()
3、当一个类对象结束它的生存期的时侯,系统自动调用该类的( D )。
A、无参构造函数 B、带参构造函数
C、拷贝构造函数 D、析构函数
4、假定AB为一个类,则执行 “AB a(2), b[3], *p[4];”语句时共调用该类构造函数的次数为( C )。
A、3 B、4
C、5 D、9
5、假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为( B )。
A、abc B、*this
C、this D、this&
第二题、多项选择题(每题2分,5道题共10分)
1、下列可以作为类的成员的是( ACD )
A、自身类对象的指针
B、自身类对象
C、自身类对象的引用
D、另一个类的对象
2、定义析构函数时,错误的说法是 ( ABD ) 。
A、其名与类名完全相同
B、返回类型是 void 类型
C、无形参,也不可重载
D、函数体中必须有 delete 语句
3、下面关于构造函数的说法正确的是( AB )
A、构造函数的函数名与类名相同
B、构造函数可以重载
C、构造函数不可以设置默认参数
D、构造函数必须指定类型说明
4、下面关于成员函数的说法错误的是( ACD )
A、类定义中只能说明函数成员的函数头,不能定义函数体
B、类中的函数成员可以在类体中定义,也可以在类体之外定义
C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中
D、在类体之外定义的函数成员不能操作该类的私有数据成员
5、假定一个类的构造函数为A ( int aa, int bb) { a = aa; b = bb; } ,则执行 A x(4,5); 语句后, x.a 和 x.b 的值分别为 ( AB ) 。
A、4
B、5
C、20
D、0
第三题、判断题(每题1分,5道题共5分)
1、 若Sample类中的一个成员函数说明如下: Void set(Sample &a) 其中Sample &a表示的含义是.a是类Sample的对象引用,用来作函数Set()的形参。 T
正确 错误
2、 对类中引用成员的初始化是通过构造函数中给出的初始化表实现的。 T
正确 错误
3、 C++允许使用友元,但是友元会破坏封装性。 T
正确 错误
4、 静态数据成员不从属于任何一个具体对象,所以必须在构造函数对它初始化。 F
正确 错误
5、 this是一个隐含于每一个类的成员函数的特殊指针,它是一个指向正在被某个成员函数操作的对象的指针。 T
正确 错误