第 1 页:选择题 |
第 5 页:填空题 |
21设有以下定义程序:
#include
class A1
{
public:
void show1()
{
cout << "class A1" << endl;
}
};
class A2:public A1
{
public:
void show2()
{
cout<<"class A2"<
}
};
class A3:protected A2
{
public:
void show3()
{
cout<<"class A1"<
}
};
void main()
{
A1 obj1;
A2 obj2;
A3 obj3;
}
则以下不合法的调用语句是( )。
A.obj1.show1();B.obj2.show1();C.obj3.show1();D.obj2.show2();
参考答案:C
参考解析:由于 class A3:protected A2,所以类 A3 的对象 obj3 不能直接访问基类 A1 的成员函数 show1(),所以选项 C 是错误的;其他选项均有访问的权限,正确。
22有如下程序:
#include
using namespace std;
class A
{
public:
A(){cout<<"A";}
};
class B{public:B(){cout<<"B";}
};
class C:public A
{
B b;
public:C(){cout<<"C";}
};
int main()
{
C obj;
return 0;
}
执行后的输出结果是( )。
A.CBAB.BACC.ACBD.ABC
参考答案:D
参考解析:语句C obj 对象初始化首先调用基类的构造函数 A(),输出“A”,其次是C类中对象的构造函数的调用,即调用B(),输出“B”;最后是调用自身的构造函数 C(),输出“C”。
23下面的描述中,不属于面向对象方法的是( )。
A.多态B.继承C.类D.过程调用
参考答案:D
参考解析:面向对象方法是运用对象、类和实例、消息、继承、多态等概念来构造。
24
A.
B.
C.
D.
参考答案:B
参考解析:
25有三个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为( )。
A.并B.自然连接C.笛卡尔积D.交
参考答案:D
参考解析:
26
A.
B.
C.
D.
参考答案:A
参考解析:
27以下关于数据的逻辑结构的叙述中,不正确的是( )。
A.数据的逻辑结构是数据间关系的描述
B.数据的逻辑结构不仅反映数据间的逻辑关系,而且反映其在计算机中的存储方式
C.数据的逻辑结构分为线性结构和非线性结构
D.树形结构是典型的非线性结构
参考答案:B
参考解析:数据的逻辑结构是数据间关系的描述,它仅抽象地反映数据间的逻辑关系,并不管其在计算机中的存储方式。数据的逻辑结构分为线性结构和非线性结构。若各数据元素之间的逻辑关系可以用一个线性序列简单地表示出来则称之为线性结构,否则称为非线性结构。线性表是典型的线性结构,而树形结构是典型的非线性结构。
【知识拓展】对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较log2n次,而顺序查找需要比较n次。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |