内容发布更新时间 : 2024/12/23 8:30:44星期一 下面是文章的全部内容请认真阅读。
C. 对象是类的一个变量
D. 对象之间的信息传递是通过消息进行的 答案:A
解析: A对象在C++中才有,包括数据和操作两项,而C中的变量只有数据,没有操作。所 以A项错误。
18. 派生类的构造函数的成员初始化列表中,不能包含() A. 基类的构造函数 B. 基类的对象初始化 C. 派生类对象的初始化
D. 派生类中一般数据成员的初始化 答案:C
解析:派生类的构造函数的成员初始化,包括基类成员、基类对象成员和派生类成员。因
为本身就是初始化定义的对象,在构造函数中再进行该类对象的初始化产生了循环定义,或者类 中不能包括本身类的成员对象。所以选择C项。 19. 关于new运算符的下列描述中,错误的是() A. 它可以用来动态创建对象和对象数组
B. 使用它创建的对象或对象数组可以使用运算符delete删除 C. 使用它创建对象时要调用构造函数
D. 使用它创建对象数组时必须指定初始值 答案:D
解析: new创建的对象数组不能指定初始值,所以调用无参的构造函数,选择D项。
20. 假定一个类的构造函数为A(int aa,int bb){a=aa++;b=a*++bb;},则执行A x(4,5);语句 后,x.a和x.b的值分别为() A. 4和5 B. 4和20 C. 4和24 D. 20和5 答案:C
解析:执行构造函数将数据成员进行赋值,aa++是后加,先赋值a=4,++bb,bb变量值先自 加为6,再与a相乘,所以b=24。
二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答 案。错填、不填均无分。
1. 在C++中,编译指令都是以___(符号)开始。 答案:#
C++的源程序可包括各种编译指令,以指示编译器对源代码进行编译之前先对其进行预处理。所 有的编译指令都以#开始,每条指令单独占用一行,同一行不能有其他编译指令和C++语句(注释 例外)
2. 在函数前面用___保留字修饰时,则表示该函数表为内联函数。 答案: inline
[解析]内联函数,用来提高程序运行速度。在类内部定义的函数也是内联函数。 3. 执行下列程序 int a=21,j=16;