国家二级C++机试(选择题)模拟试卷204
选择题
1.下列叙述中正确的是(D)
A. 一个算法的空间复杂度大,则其时间复杂度也必定大
B. 一个算法的空间复杂度大,则其时间复杂度必定小
C. 一个算法的时间复杂度大,则其空间复杂度必定小
D. 算法的时间复杂度与空间复杂度没有直接关系
解析:算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。
2.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。(B)
A. 循环队列
B. 栈
C. 队列
D. 二叉树
解析:栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据:队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。
3.下列叙述中正确的是( )。(D)
A. 栈是“先进先出”的线性表
B. 队列是“先进后出”的线性表
C. 循环队列是非线性结构
D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
解析:本题主要考查了栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。根据数据结构中各数据元素之间的前后件关系的复杂程度.一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。
4.有三个关系R、S和T如下:
(D)
A. 笛卡尔积
B. 交
C. 并
D. 自然连接
解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T关系中的有序组可知R与S进行的是自然连接操作。
5.已知递归函数fun的定义如下:
int fun(int n)
{
if(n<=1)return1;//递归结束情况
else return n*fun(n.2);//递归
}
则函数调用语句fun(5)的返回值是( )。(C)
A. 5
B. 12
C. 15
D. 30
解析:递归函数fun被定义为含有参数int n,返回整型。其中fun函数递归调用本身,当n=1时,fun返回1,如果大于1那么执行n*fun(n-2)。所以,当n等于5时,执行5*fun(3);当3时继续调用fun,3*fun(1),即fun(5)=5*(3*fun(1)),答案为15。
6.在三级模式之间引入两层映像,其主要功能之一是( )。(A)
A. 使数据与程序具有较高的独立性
B. 使系统具有较高的通道能力
C. 保持数据与程序的一致性
D. 提高存储空间的利用率
解析:数据库管理系统在数据库的三级模式之间提供了两层映像,保证了数据库中数据的较高的逻辑独立性和物理独立性。
7.下面不属于需求分析阶段任务的是( )。(D)
A. 确定软件系统的功能需求
B. 确定软件系统的性能需求
C. 需求规格说明书评审
D. 制定软件集成测试计划
解析:需求分析阶段的工作可分为4个阶段:需求获取、需求分析、编写需求规格说明书、需求评审。
8.有三个关系R、S和T如下:
(D)
A. 并
B. 自然连接
C. 笛卡尔积
D. 交
解析:关系R与S经交运算后所得到的关系是由那些既在R内又在S内的有序组组成的,记为R∩S。
9.在下列关键字中,不能用来表示继承方式的是( )。(B)
A. private
B. static
C. public
D. protected
解析:此题考查的是继承方式。继承方式有私有(private)、保护(protected)、公有(public)三种。
10.有如下程序:
#inc1ude<iostream>
void fun(int& x,int y) {int t=x;x=y;y=t; }
int main()
{
int a[2]= {23,42} ;
return 0,
}
执行后的输出结果是( )。(B)
A. 42, 42
B. 23, 23
C. 23, 42
D. 42, 23
解析:此题考查是是函数的调用以及参数值的传递。函数fun中的第一个参数是引用传值方式,是双向的;第二个参数是按值传递,是单向的。
11.下列描述中,不属于面向对象思想主要特征的是( )。(B)
A. 封装性
B. 跨平台性
C. 继承性
D. 多态性
解析:封装性、继承性和多态性是面向对象程序设计的三个基本特征。跨平台性不是面向对象程序设计的特征。
12.有如下类定义:
class Point{
private;
static int how_many;
};
_________how_many=0;
要初始化Point类的静态成员how_many,下划线处应填入的内容是( )。(C)
A. ing
B. static int
C. int Point::
D. static int Point::
解析:此题考查的是静态数据成员的初始化。静态数据成员应在类体外进行初始化,且初始化的一般格式为:数据类型类名::静态数据成员名=初始值。
13.有如下程序:
#inc1ude<iostream>
#inc1ude<cstring>
using namespace std;
class MyString{
public:
char str[80];
MyString(const char*s) {strcpy(str,s);}
MyString& operator+=(MyString a){
strcat(str,a.str);
return *this;
}
};
ostream& ope
本文档预览:3600字符,共5648字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载