国家二级C++机试(选择题)模拟试卷464
选择题
1.下列关于栈叙述正确的是(A)
A. 栈顶元素能最先被删除
B. 栈顶元素最后才能被删除
C. 栈底元素永远不能被删除
D. 以上三种说法都不对
解析:栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。
2.下列叙述中正确的是( )。(D)
A. 栈是一种先进先出的线性表
B. 队列是一种后进先出的线性表
C. 栈与队列都是非线性结构
D. 栈与队列都是线性结构
解析:栈是先进后出,队列是先进先出。栈和队列都是一种线性表,属于线性结构。
3.下列叙述中正确的是( )。(B)
A. 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B. 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C. 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D. 以上都不正确
解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。
4.有如下类定义:
class MyBase{
int k;
public:
MyBase(int n=0):k(n){}
int value()const{return k;}
};
class MyDerived:MyBase{
int j;
public:
MyDerived(int i):j(i){}
int getK()const{return k;}
int getJ()const{return j;}
};
编译时发现有一处语法错误,对这个错误最准确的描述是( )。(A)
A. 函数getK试图访问基类的私有成员变量k
B. 在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private
C. 类MyDerived缺少一个无参的构造函数
D. 类MyDerived的构造函数没有对基类数据成员k进行初始化
解析:默认继承方式为私有继承,私有继承将基类的公用成员和保护成员都变为了私有成员,基类的私有成员依然属于基类私有,派生类不能访问基类的私有成员。所以A选项正确。
5.结构化程序设计的基本原则不包括( )。(A)
A. 多元性
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。
6.软件需求规格说明书的作用不包括( )。(D)
A. 软件验收的依据
B. 用户与开发人员对软件要做什么的共同理解
C. 软件设计的依据
D. 软件可行性研究的依据
解析:软件规格说明书主要有三个作用:①用户和软件开发人员之间的合同;②开发人员进行设计和编程的依据;③软件工程项目验收的依据。
7.程序流程图中带有箭头的线段表示的是( )。(C)
A. 图元关系
B. 数据流
C. 控制流
D. 调用关系
解析:程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为程序框图。其中,用带箭头的线段表示控制流,用柜形表示加工步骤,用菱形表示逻辑条件。
8.下列关于this指针的叙述中,正确的是( )。(D)
A. 任何与类相关的函数都有this指针
B. 类的成员函数都有this指针
C. 类的友元函数都有this指针
D. 类的非静态成员函数才有this指针
解析:此题考查的是this指针的使用。类的每一个成员函数都有一个隐含的常量指针,即this指针。类的静态成员函数不能含有this指针,因为this指针是一个指向本对象的指针。
9.在关系数据库中,用来表示实体间联系的是( )。(B)
A. 属性
B. 二维表
C. 网状结构
D. 树状结构
解析:在关系数据库中,实体间的联系由一个二维表来表示。
10.负责数据库中查询操作的数据库语言是( )。(C)
A. 数据定义语言
B. 数据管理语言
C. 数据操纵语言
D. 数据控制语言
解析:负责数据库中查询操作的数据库语言是数据操纵语言。
11.已知类IMS中两个成员函数的声明为“void listen()const;”与“void speak();”,另有两个对象的定义为“IMS objl;”与“const IMS obj2;”,则下列语句中,产生编译错误的是( )。(D)
A. objl.1isten();
B. objl.speak();
C. obj2.1isten();
D. obj2.speak();
解析:函数:listen(、)作为类IMS的常成员函数,一般对象obi和常对象obj2都可以调用它,而函数speak()作为IMS的一般成员函数,则只有一般对象objl可以调用,而常对象obi2调用会产生编译错误。
12.有如下程序:
#include
using namespace std;
class Sample
{
friend long fun(Sample s);
Sample(10ng a){x=a;}
private:
long x;
);
long fun(Sample S)
{
if(s.x<2)return l:
return s.x*fun(Sample(s.X-1)):
)
int main()
{
int sum=0;
for(int i=0;i<6;i++){sum+=fun(Sample(i));)
return 0:
}
运行时输出的结果是( )。(C)
A. 16
B. 154
C. 34
解析:此题考查的是友元函数和递归函数。因为fun函数是Sample类的友元函数,所以fun函数可以直接访问Sample类对象的私有成员x。主函数调用fun函数,构造参数为0~5。当n小于2时,fun函数返回l,其余返回值为n*fun(n-1)。n取0~5的值时fun(n)依次为1,l,2,6,24,120,累加结果为154。
13.有三个关系R、S和T如下:
(A)
A. 自然连接
B. 交
本文档预览:3600字符,共6659字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载