27.下列程序的输出结果是()。#include<iostream.h>classMyClass{public:MyClass(){cout<<'A';}MyClass(charc){cout<<c;}~MyClass(){cout<<'B';}};intmain(){MyClassp1,*p2;p2=newMyClass('X');deletep2;return0;
A.ABX
B.ABXB
C.AXB
D.AXBB
28.下列关于堆运算符的描述中,错误的是()。
A.使用堆运算符可以动态建立或删除对象
B.可以在使用new[]创建数组时,为每个数组元素指定初始值
C.new运算符创建对象时要调用构造函数
D.delete运算符可以作用于空指针
29.在下列的各类函数中,______不是类的成员函数。
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
30.下列关于运算符重载的描述中,______是正确的。
A.运算符重载可以改变运算数的个数;
B.运算符重载可以改变优先级;
C.运算符重载可以改变结合性;
D.运算符重载不可以改变语法结构。
31.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。
A.int*p=newint[30]
B.int*p=newint(30)
C.int*p=new[30]int*p=new[30]
D.*p=newint[30]
32.派生类对象对它的基类成员中()是可以访问的。
A.公有继承的私有成员
B.公有继承的保护成员
C.公有继承的公有成员
D.私有继承的公有成员
33.下列函数参数默认值定义错误的是()。
A.Fun(int x=0,int y=0)
B.Fun(int x,int y)
C.Fun(int x,int y=0)
D.Fun(int x=0,int y)
34.下列对引用的陈述中不正确的是()。
A.每一个引用都是其所引用对象的别名,因此必须初始化
B.形式上针对引用的操作实际上作用于它所引用的对象
C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
D.不需要单独为引用分配存储空间
35.有如下类声明:classMyClass{public:MyClass(){cout<<1;}};执行语句MyClassa,b[2],*p[2];后,程序的输出结果是()。
A.11
B.111
C.1111
D.11111
36.有如下类定义:classMyClass{public:intgetRef()const{return&a;}intgetValue()const{returna;}voidset(intn)const{a=n;}friendvoidshow(MyClassobj)const{cout<<a;}};下列函数中,定义正确的是()。
A.getRef
B.getValue
C.set
D.show
37.下列关于派生类的描述中,错误的是()。
A.派生类继承了基类的所有成员
B.派生类能够作为基类继续派生新类
C.派生类可以有多个直接基类
D.派生类的默认继承方式是public
38.设置虚基类的目的是_____。
A.简化程序;
B.消除二义性;
C.提高运行效率;
D.减少目标代码;
二、 多选题 (共 4 道试题,共 8 分)
1.配置图中通常包含两种元素,分别是()
A.节点
B.依赖关系
C.关联关系
D.接口
2.时序图包含的元素分别是()
A.对象
B.生命线
C.消息
D.激活
3.状态机由()和动作组成
A.状态
B.转换
C.事件
D.活动
4.实际的建模过程中,可以把节点分()
A.处理器
B.设备
C.应用软件
D.系统软件
三、 判断题 (共 8 道试题,共 16 分)
1.一个类的构造函数中可以不包含对其子对象的初始化
A.错误
B.正确
2.可以在类的构造函数中对静态数据成员进行初始化。
A.错误
B.正确
3.派生类从基类派生而来,不能再生成ABC派生类。
A.错误
B.正确
4.某类中的友元类的所有成员函数都可以存取或修改该类中的私有成员。
A.错误
B.正确
5.单继承时,派生类中对基类成员的访问也会出现二义性。
A.错误
B.正确
6.动态联编在运行时选定调用的成员函数。
A.错误
B.正确
7.只要是类M继承了类N,那么类M就是类N的子类型。
A.错误
B.正确
8.构造函数可以被继承
A.错误
B.正确