1、国家二级( C+)笔试模拟试卷 199及答案与解析 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 某二叉树中度为 2的结点有 18个,则该二又树中有 _个叶子结点。 37 在面向对象方法中,类的实例称为 _。 38 诊断和改正程序中错误的工作通常称为 _。 39 在关系数据库中,把数据表示成二维表,每一个二维表称为 _。 40 问题处理方案的正确而完整的描述称为 _。 41 下列程序的输出结果是 _。 #include iostream #in
2、clude cstring using namespace std; void fun(const char*S, char C) e=sstrlen(s)/2; int main( ) char str =“ABCDE“; char ch=str1; fun(str, ch); cout ch; return 0; 42 补充完整下面的类定义: const double PI=3.14; class Circle /圆形物体的抽象基类 protected: double r; /半径 public: Circle(double radius=0): r(radius) (13) ; /计算圆
3、形物体表面积的纯虚函数声明 ; class Cylinder: public Circle /圆柱体类 double h; /高度 public: Cylinder(double radius=0, double height=0); Circle(radius), h(height) Virtual double Area( )return 2*PI*r*(r+h); /计算圆柱体的表面积 ; 43 如下程序声明了一个使用两个通用数据类型的模板类 dataClass,其中构造函数用于初始化两个数据成员,成员函数 show用于输出两个数据成员的数值。 #include iostream usi
4、ng namespaee std; _ T1 i: T2 j; public: dataClass(T1 a, T2B) i=a; j=b; void show( )tout i “, “ j n; ; int main( ) dataClass int, double obl(10, 0.23); dataClass char, char* ob2(X, “my data“); obl show( ); ob2 show( ); return 0; 请将程序补充完整,使程序在运行时输出: 10, 0.23 X, my data 44 下列程序的输出结果为: Ohject id=0 Objec
5、t id=1 请将程序补充完整。 #include iostream using namespaee std; class Point public: Point(int xx=0, intyy=0)X=xx; Y=yy; countP+; Point( )countP-; int GetX( )return X; int GetY( )return Y; static void GetC( ) cout “Object id=“ countP endl; private: int X, Y; static int countP; ; _ /静态数据成员的初始化 int main( ) Poi
6、nt:GetC( ); Point A(4, 5); A GetC( ); return 0; 45 一个项目具有一个项目主管,一个项目主管只可管理一个项目,则实体 “项目主管 ”与实体 “项目 ”的联系属于 _的联系。 46 在最坏情况下,冒泡排序的时间复杂度为 _。 47 在结构化分析使用的数据流图中,使用用 _解释其中的图形元素。 48 二叉树的遍历分为三种,它们是前序遍历、 _遍历和后序遍历。 49 数据流的类型有 _和事务型。 50 执行下列语句后,变量 n的值是 _。 int n=0; for(int i=1;i =3;i+) for(int j=1;j =i;j+) n+; 国家
7、二级( C+)笔试模拟试卷 199答案与解析 1 【正确答案】 B 【试题解析】 算法的空间复杂度一般是指:执行这个算法所需要的存储空间,其中包括算法程序所占的空间、输入的初始数据所占用的存储空间以及算法执行过程中所需要的额外空间。 2 【正确答案】 A 【试题解析】 线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。 3 【正确答案】 B 【试题解析】 栈是限定只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,它们的操作特点是先进后出,因此具有记忆作用。栈可以采用顺序存储,也可以采用链式存储。 4 【正确答案】 C 【试题解析】
8、 线性结构,是指数据元素只有一个直接前件元素和直接后件元素。线性表是线性结构。栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。 5 【正确答案】 A 【试题解析】 二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性 链表,都只能采用顺序查找。 6 【正确答案】 D 【试题解析】 在实际应用中,最常用的连接是一个叫自然连接的特例。它满足下面的条件:两关系间有公共域;通过公共域的相等值进行连接。通过观察三个关系 R, s, T的结果可知关系 T是由关系 R和 s进行自然连接得到的。 7 【正确答案】 C 【试题解析】 树具有明显的层次关系,即树是一种层次结构。
9、在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为 0。 8 【正确答案】 C 9 【正确答案】 D 【试题解析】 在软件开发中,需求分析阶段常使用的工具有数据流图 (DFD),数据字典 (DD)、判断树和判断表。 10 【正确答案】 D 【试题解析】 DBA(数据库管理员 )的主要工作可以概括为 3种: 数据库设计; 数据库维护; 改善系统性能,提高系统效率。 11 【正确答案】 C 【试题解析】 面向对象中的多态性是指当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为:而封装性是指将数据和算法捆绑成一个整体,这个整体就是对象,描
10、述对象的数据被封装在其内部。 c+是起源于 c语 言的一种面向对象的程序设计语言,因此 c+语言既保留了传统的结构化程序设计方法,又支持面向对象程序设计方法:派生类不可访问基类中的私有成员,因此在派生类中直接引用基类的私有变量成员是不允许的,但可以通过基类的公用成员函数来引用基类的私有变量成员。 12 【正确答案】 B 【试题解析】 声明一个函数模板格式是: template 其中 是由一个或多个 组成 (如果是多个需要用逗号隔开 )。其中, 可以换成 class,函数的声明部分 和一般函数的声明部分类似,只有某些类型修饰符被虚拟类型参数替代。 13 【正确答案】 D 14 【正确答案】 C
11、15 【正确答案】 B 16 【正确答案】 A 17 【正确答案】 B 18 【正确答案】 A 19 【正确答案】 C 20 【正确答案】 A 21 【正确答案】 C 22 【正确答案】 C 23 【正确答案】 A 24 【正确答案】 A 25 【正确答案】 B 26 【正确答案】 C 27 【正确答案】 C 28 【正确答案】 C 29 【正确答案】 D 30 【正确答案】 D 31 【正确答案】 B 32 【正确答案】 B 33 【正确答案】 B 34 【正确答案】 B 35 【正确答案】 D 36 【正确答案】 19 37 【正确答案】 对象 38 【正确答案】 程序调试 39 【正确答
12、案】 关系 40 【正确答案】 算法 41 【正确答案】 C 42 【正确答案】 virtual double Area( )=0 43 【正确答案】 template class T1, class T2 class dataClass 44 【正确答案】 int P0int:counfP=0; 45 【正确答案】 一对一 或 1:1 【试题解析】 实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。两个实体间的联系可以归结为三种类型:一对一联系表现为某一实体与另一实体一一对应相关联;一对多联系表现为某一实体与相关多个实体相关联;多对多联系表现为多个实体与相关多个实体相联系。所以实
13、体 “项目主管 ”与实体 “项目 ”的联系属于一对一的联系。 46 【正确答案】 n(n-1)/2 【试题解析】 冒泡排序法是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为 n,则在最坏的情况下,冒泡排序需要经过 n/2遍的从前往后的扫描和 n/2遍的从后往前的扫描,需要的比较次数为 n(n-1)/2。 47 【正确答案】 数据字典 48 【正确答案】 中序 【试题解析】 二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。 前序遍历是指在访问根结点、遍历左予树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子 树;并且遍历左、右子树时,仍然先访问根结点,然
14、后遍历左子树,最后遍历右子树。 中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。 后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。 49 【正确答案】 变换型 【试题解析】 典型的数据 流类型有两种:变换型和事务型。变换型:指信息沿输入通路进入系统,同时由外部形式变换为内部形式,进入系统的信息通过变换中心。经加工处理以后冉沿输出通路变换成外部形式离开软件系统。事务型:在很多软件应用中,存在某种作业数据流,它可以引发个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。 50 【正确答案】 6