国家二级(C++)机试模拟试卷513
选择题
1.下列运算符不能重载为友元函数的是( )。(A)
A. =( )( ) ->
B. + – ++ —
C. > = <=
D. += -= *=/=
解析:关于运算符重载为友元函数有如下规定:①一般情况下,单目运算符最好重载为类的成员函数,双目运算符则最好重载为类的友元函数;②双目运算符“=、()、[]、->”不能重载为类的友元函数。所以本题答案为A。
2.下列二叉树描述中,正确的是( )。(B)
A. 任何一棵二叉树必须有一个度为2的结点
B. 二叉树的度可以小于2
C. 非空二叉树有0个或1个根结点
D. 至少有2个根结点
解析:二叉树是由n≥0个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。二叉树可以是空集合,根可以有空的左子树或空的右子树。二叉树不是树的特殊情况,它们是两个概念。
二叉树具有如下两个特点:
①非空二叉树只有一个根结点;
②每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
3.下面叙述错误的是( )。(C)
A. 派生类可以使用private派生
B. 对基类成员的访问必须是无二义性的
C. 基类成员的访问能力在派生类中维持不变
D. 赋值兼容规则也适用于多继承的组合
解析:在建立派生类的时候,并不是简单地把基类的私有成员直接作为派生类的私有成员,把基类的公用成员直接作为派生类的公用成员。涉及如何确定基类的成员在派生类中的访问属性问题,不仅要考虑对基类成员所声明的访问属性,还要考虑派生类所声明的对基类的继承方式,根据这两个因素共同决定基类成员在派生类中的访问属性。所以本题选择C)。
4.有如下程序:
#include
using namespace std;
class A {
public:
virtual void func1(){cout<<\\(C)
A. B1B2
B. A1A2
C. B1A2
D. A1B2
解析:本题考查虚函数。虚函数指在基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数。题中定义了一个派生类对象B,并使用类A的对象指针指向B,由于基类A中的func1为虚函数,所以会执行派生类的func1,输出B1,而基类中的func2不是虚函数,所以p->func2()会执行基类的func2,输出A2。故答案为C。
5.以下数据结构中,属于非线性数据结构的是( )。(D )
A. 栈
B. 线性表
C. 队列
D. 二叉树
解析:二叉树属于非线性结构。栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作;队列可看作是插入在一端进行,删除在另一端进行的线性表。
6.将E-R图转换为关系模式时,实体和联系都可以表示为( )。(C)
A. 属性
B. 键
C. 关系
D. 域
解析:从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。
7.下列关于构造函数的描述中,错误的是( )。(D )
A. 构造函数可以设置默认的参数
B. 构造函数在定义类对象时自动执行
C. 构造函数可以是内联函数
D. 构造函数不可以重载
解析:在一个类中可以定义多个构造函数,以便对类对象提供不同的初始化的方法,供用户选用。这些构造函数具有相同的名字,而参数的个数或参数的类型不相同。
8.以下程序的输出的结果是( )。
#include
void main()
{
int a,b,C,d(5);
c=2,c+=10;
a=b=10:
a*=2:
b/=2:
c%=2:
cout<<a<<”,”<<b<<”,”<<c<<endl;
}(A )
A. 20,5,0
B. 20,7,0
C. 20,5,1
D. 5,20,0
解析:c+=10使得c=12;a=b=10,a*=2使得a=20;b/=2,b=10/2,使得b=5;c=12%2=0,所以输出值20,5,0。
9.设有如下关系表:
(C)
A. T=R/S
B. T=R×S
C. T=R∩S
D. T=R∪S
解析:T就是关系R中有的,同时S中也有的有序组(4、5、6),即交运算(n)。
10.有如下两个类定义:
class XX{
private:
double x1;
protected:
double x2;
public:
double x3;
};
class YY:protected XX{
private:
double y1;
protected:
double y2;
public:
double y3;
};
在类YY中保护成员变量的个数是( )。(C)
A. 1
B. 2
C. 3
D. 4
解析:本题考杏保护继承中派生类对基类的访问属性,在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,所以基类的成员x2、x3变成了保护成员,派生类中的y2也是保护成员,所以共有3个保护成员。本题答案为C。
11.下列选项中属于面向对象设计方法主要特征的是( )。(A)
A. 继承
B. 自顶向下
C. 模块化
D. 逐步求精
解析:面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A。
12.下列选项中不属于字符常量的是( )。(B)
A. ’C’
B. C
C. ’\xCC’
D. ’\072’
解析:字符常量是用一对单弓I号括起来的,而字符串常量是用双引号括起来的字符序列,所以选项B不正确;选项C中’\xCC’是十六进制表示的转义字符;选项D中’\072’是八进制表示的转义字符。
13.下列关于常成员的叙述中,正确的是( )。(B)
A. 常成员函数只能由常对象调用
B. 常成员函数不能更新对象的状态
C. 常数据成员可以被类对象共享
本文档预览:3600字符,共13395字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载