国家二级C++机试(选择题)模拟试卷442
选择题
1.下列数据结构中,属于非线性结构的是( )。(C)
A. 循环队列
B. 带链队列
C. 二叉树
D. 带链栈
解析:根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类:线性结构和非线性结构。循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。
2.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。(B)
A. 12345ABCDE
B. EDCBA54321
C. ABCDE12345
D. 54321EDCBA
解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是EDCBA54321。
3.下列对于线性链表的描述中正确的是(A)
A. 存储空间不一定连续,且各元素的存储顺序是任意的
B. 存储空间不一定连续,且前件元素一定存储在后件元素的前面
C. 存储空间必须连续,且前件元素一定存储在后件元素的前面
D. 存储空间必须连续,且各元素的存储顺序是任意的
解析:一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针head称为头指针,当head=NULL(或0)时称为空表。
4.通过运算符重载,可以改变运算符原有的( )。(A)
A. 操作数类型
B. 操作数个数
C. 优先级
D. 结合性
解析:重载运算符的规则如下:①c++不允许用户自己定义新的运算符,只能对已有的c++运算符进行重载;②c++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是c++的标准类型。故本题答案为A。
5.已知函数f的原型是void fi(int*a,long&b);,变量v1、v2的定义是:
int v1;loong v2;
下列调用语句中正确的是( )。(D)
A. f(v1,&v2);
B. f(v1,v2);
C. f(&v1,&v2);
D. f(&v1,v2);
解析:此题考查的是函数的调用。因为变量的定义是im v1;long v2,而函数f()的第一个参数是指针,第二个参数是引用,所以选项D为正确引用。
6.下面不属于需求分析阶段任务的是( )。(D)
A. 确定软件系统的功能需求
B. 确定软件系统的性能需求
C. 需求规格说明书评审
D. 制定软件集成测试计划
解析:需求分析阶段的工作可分为4个阶段:需求获取、需求分析、编写需求规格说明书、需求评审。
7.若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是( )。(B)
A. —对一
B. 一对多
C. 多对一
D. 多对多
解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间也是一对多的联系。
8.有如下类声明:
class MyBASE
{int k;
public:
void set(int n){k=n;}
int get()const{return k;}
};
class MyDERIVED:protected MyBASE
{protected:
int j;
public:
void set(int m,int n){MyBASE::set(m);j=n;}
int get()const{return MyBASE::get()+j;}
};
则类MyDERIVED中保护的数据成员和成员函数的个数是( )。(B)
A. 4
B. 3
C. 2
D. 1
解析:因为在保护继承的情况下,基类中的公有成员void set(int n)和int get()const在派生类中是保护成员,再加上派生类自身的保护成员i,一共是三个保护成员。
9.在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明( )。(A)
A. f()是基类的私有成员
B. f()是基类的保护成员
C. 派生类的继承方式为私有
D. 派生类的继承方式为保护
解析:在派生类对基类的三种继承形式中,都无法对基类的私有成员访问A正确。在B中,三种继承方式都能访问基类的保护成员,故B不正确。C选项的情况在f()是基类私有成员情况下是对的,但是还有别的可能,并不一定正确。同样D也不一定正确。
10.下列各组类型声明符中,含义相同的一组是( )。(B)
A. unsigned long int和long
B. signed short int和short
C. unsigned short和short
D. short int和int
解析:此题考查的是基本类型和派生型。C++语言中,基本类型的字长及其取值范围可以放大和缩小,改变后的类型就叫做基本类型和派生类型。本题A选项中,unsigned long int的省略形式为unsigned long:选项B中,signed short int的省略形式是short;选项C中,unsigned short的省略形式是unsigned short:选项D中,short int的省略形式是short。
11.在一棵二叉树上,第5层的结点数最多是( )。(D)
A. 8
B. 9
C. 15
D. 16
解析:根据二叉树的性质:二叉树第i(i≥1)层上至多有2i-1个结点。得到第5层的结点数最多是16个。
12.下列关于派生类和基类的描述中,正确的是( )。(B)
A. 派生类成员函数只能访问基类的公有成员
B. 派生类成员函数只能访问基类的公有和保护成员
C. 派生类成员函数可以访问基类的所有成员
D. 派生类对基类的默认继承方式是公有继承
解析:派生类不论是采用那种继承方式继承基类,它的成员函数只能访问基类的公有成员和保护成员。
13.有如下两个类定义:
class AA{};
class BB{
AA v1,*v2;
BB v3:
int*v4;
};
其中有一个成员变量的定义是错误的,这个变量是( )。(C)
A. vl
B. v2
C. v3
D. v4
解析:在定义类的
本文档预览:3600字符,共6290字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载