国家二级C++机试(选择题)模拟试卷227
选择题
1.下列关于栈和队列的描述中,正确的是( )。(D)
A. 栈是先进先出
B. 队列是先进后出
C. 队列允许在队头删除元素
D. 栈在栈顶删除元素
解析:栈实际也是线性表,只不过是一种特殊的线性表。栈是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。
2.算法的有穷性是指( )。(A)
A. 算法程序的运行时间是有限的
B. 算法程序所处理的数据量是有限的
C. 算法程序的长度是有限的
D. 算法只能被有限的用户使用
解析:算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
3.下列描述中正确的是( )。(A)
A. 线性链表是线性表的链式存储结构
B. 栈与队列是非线性结构
C. 双向链表是非线性结构
D. 只有根结点的二叉树是线性结构
解析:线性表的链式存储结构称为线性链表。线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一结点的指针HEAD称为头指针,当HEAD=NULL时称为空表。栈、队列和双向链表是线性结构,树是一种简单的非线性结构。在树这种数据结构中,所有数据元素的关系具有明显的层次特征。二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。
4.下列有关内联函数的叙述中,正确的是( )。(C)
A. 内联函数在调用时发生控制转移
B. 内联函数必须通过关键字inline来定义
C. 内联函数是通过编译器来实现的
D. 内联函数函数体的最后一条语句必须是return语句
解析:此题考查的是内联函数的概念。在调用时,内联函数会像宏函数一样的展开,将调用表达式用内联函数体来替换,所以它没有一般函数的参数压栈和退栈操作,所以选项A)错误;即使没有使用inline说明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以选项B)错误;内联函数只是比普通函数有更高的执行效率。
5.计算斐波那契数列第n项的函数定义如下:
int fib(int n){
if(n==0) return 1;
else if(n==1) return 2;
else return fib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是( )。(B)
A. 1
B. 2
C. 3
D. 4
解析:斐波那契数列是递归函数,所以fib(2)=fib(1)+fib(0)=2+1=3。因而执行函数调用表达式fib(2)时,函数fib被调用的次是2次。
6.有如下程序:
#include
using namespace std;
class test{
private:
im a;
public:
test(){cout<<”constructor”<<end;}
test(inta){cout<<a<<end];}
test(const test&_test){
a:_test.a;
cout<<”copy constructor”<<end];
}
一test(){cout<<”destructor”<<end];}
};
int main(){
test A(3);
return 0;
}
执行这个程序的输出结果是( )。(D)
A. 3
B. constructor
C. copy constructor
D. 3destructor destructor destructor
解析:本题考查默认构造函数和带参数的构造函数以及析构函数,本题中定义了一个对象A(3),对象带着参数,所以执行带参数的构造函数,输出3,然后执行析构函数,输出destructor,所以本题答案为D。
7.在软件设计中,不属于过程设计工具的是( )。(D)
A. PDL(过程设计语言)
B. PAD图
C. N一S图
D. DFD图
解析:DFD(数据流图Data一Flow一Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示。它直接支持系统功能建模。在软件详细设计的过程阶段,要对每个模块规定的功能以及算法的设计给出适当的算法描述。常见的过程设计工具有: 图形工具:程序流程图,N一S,PAD,HIPO。 表格工具:判定表。 语言工具:PDL(伪码)。
8.下列对于软件测试的描述中正确的是( )。(C)
A. 软件测试的目的是证明程序是否正确
B. 软件测试的目的是使程序运行结果正确
C. 软件测试的目的是尽可能多地发现程序中的错误
D. 软件测试的目的是使程序符合结构化原则
解析:软件测试是为了发现错误而执行程序的过程。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。软件测试的目的要以查找错误为中心,而不是为了演示软件的正确功能。
9.在下列double型常量表示中,错误的是( )。(A)
A. E15
B. 35
C. 3E5
D. 3E-5
解析:在C++中,科学计数法表示小数的方法:E(e)左右必须有数,且E(e)的右侧只能为整数。
10.数据库技术的根本目标是要解决数据的( )。(B)
A. 存储问题
B. 共享问题
C. 安全问题
D. 保护问题
解析:数据库中的数据具有“集成”、。“共享”之特点,即数据库集中了各种应用的数据,进行统一地构造与存储,而使它们能被不同的应用程序所使用。因而数据库技术的根本目标是解决数据的共享问题。
11.在E一R图中,用来表示实体的图形是( )。(A)
A. 矩形
B. 椭圆形
C. 菱形
D. 三角形
解析:在E一R图中,用矩形表示实体集,在矩形内写上该实体集的名字;用椭圆形表示属性;用菱形(内部写上联系名)表示联系。
12.有三个关系R、S和T如下:
(D)
A. 自然连接
B. 并
C. 交
D. 差
解析:由关系T中的数据可以看出,其数据由属于关系R但是不属于关系S的数据组成。所以关系T是由关系R和S通过差运算得到的。
13.有三个关系R、S和T
本文档预览:3600字符,共7089字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载