国家二级C++机试(选择题)模拟试卷493
选择题
1.算法的有穷性是指(A)
A. 算法程序的运行时间是有限的
B. 算法程序所处理的数据量是有限的
C. 算法程序的长度是有限的
D. 算法只能被有限的用户使用
解析:算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
2.下列叙述中正确的是( )。(D)
A. 栈是一种先进先出的线性表
B. 队列是一种后进先出的线性表
C. 栈与队列都是非线性结构
D. 以上三种说法都不对
解析:栈是先进后出的线性表,队列是先进先出的线性表。二者均为线性结构。
3.下列叙述中正确的是( )。(C)
A. 线性表链式存储结构的存储空间一般要少于顺序存储结构
B. 线性表链式存储结构与顺序存储结构的存储空间都是连续的
C. 线性表链式存储结构的存储空间可以是连续的,也可以是不连续的
D. 以上都不正确
解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。
4.有如下函数模板:
template<class T>T square(T x){return x,x;}
其中T是( )。(C)
A. 函数形参
B. 函数实参
C. 模板形参
D. 模板实参
解析:此题考查的是函数模板。声明一个函数模板的格式是:
template<模板形参表声明>函数声明,{函数体}
其中的<模板形参表声明>是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:typename参数名;class参数名;类型修饰参数名。
5.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为(B)
A. 63
B. 64
C. 6
D. 7
解析:顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。
6.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )。(B)
A. 63
B. 64
C. 6
D. 7
解析:顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。
7.在软件生命周期中,能准确确定软件系统必须做什么和必须具备哪些功能的阶段是( )。(D)
A. 概要设计
B. 详细设计
C. 可行性分析
D. 需求分析
解析:软件需求是指用户对目标软件系统在功能、行为、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求的过程。
8.对于int*pa[5];的描述,正确的是( )。(A)
A. pa是一个指向数组的指针,所指向的数组是5个int型元素
B. pa是一个指向某个数组中第5个元素的指针,该元素是int型变量
C. pa[5]表示某个数组的第5个元素的值
D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针
解析:语句“int*p[5]”表示一个数组p,它的大小是5,里面存放的数据类型是int*,也就是整型指针。称之为指针数组(从右向左解析这个表示)。
9.在关系模型中,每一个二维表称为一个( )。(A)
A. 关系
B. 属性
C. 元组
D. 主码(键)
解析:每个二维表代表一个关系,由表框架及表的元组组成。
10.用树形结构表示实体之间联系的模型是( )。(C)
A. 关系模型
B. 网状模型
C. 层次模型
D. 以上三个都是
解析:层次模型的基本结构是树形结构,这种结构方式在现实世界中很普遍,它们自顶向下、层次分明。
11.已知类Myclass的定义如下:
class MyClass{
public:
MyClass(int d){data=d;)
MyClass 0 {)
private:
int data;
};
下列对Myclass类对象数组的定义和初始化语句中,正确的是( )。(C)
A. MyClass arrays[2];
B. MyClass arrays[2]={MyClass(5)};
C. MyClass arrays[2]={MyClass(5),MyClass(6)};
D. MyClass*arrays:new MyClass[2];
解析:在选项C)中定义了类MyC:lass对象数组arrays[2],并用对象MyClass(5)和MyClass(6)对这个数组中的两个元素赋初值。
12.有如下类声明:
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,一共是三个保护成员。
13.下列选项中,不是C++关键字的是( )。(B)
A. class
B. f
本文档预览:3600字符,共8452字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载