1、国家二级( C+)笔试模拟试卷 115及答案与解析 1 下列关于栈的叙述中正确的是 ( A)在栈中只能插入数据 ( B)在栈中只能删除数据 ( C)栈是先进先出的线性表 ( D)栈是先进后出的线性表 2 下列数据结构中,插入时不需要移动其他元素的是 ( A)有序线性链表 ( B)无序线性链表 ( C)栈和队列 ( D)以上三种都是 3 下列叙述中正确的是 ( A)同一个数据结构不管是采用何种存储方式,其所占的存储容量一定是相同的 ( B)同一个数据结构采用不同的存储方式,其所占的存储容量一般是不同 的 ( C)同一个有序表不管是采用何种存储方式,都可以使用对分查找法 ( D)同一个有序表不管是
2、采用何种存储方式,都不能使用对分查找法 4 数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是 ( A)线性链表 ( B)二叉链表 ( C)栈与队列 ( D)循环队列 5 下列数据结构中,能直接使用堆排序法进行排序的是 ( A)完全二叉树 ( B)线性链表 ( C)带链的栈 ( D)带链的队列 6 下列关于队列的叙述中正确的是 ( A)只能插入元素,而不能删除元素 ( B)可以插入元素, 也能删除元素 ( C)插入元素时需要移动队列中所有的元素 ( D)删除元素时需要移动队列中所有的元素 7 下列叙述中正确的是 ( A)在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信
3、息 ( B)在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节 ( C)在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则 ( D)在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法 8 数据独立性是数据库技术的重要特点之一。所谓数据独立性是指 ( A)数据与程序独立 存放 ( B)不同的数据被存放在不同的文件中 ( C)不同的数据只能被对应的应用程序所使用 ( D)以上三种说法都不对 9 用树形结构来表示实体之间联系的模型称为 ( A)关系模型 ( B)层次模型 ( C)网状模型 ( D)格式化模型 10 下列叙述中正确的是 ( A)用 E-R图能够
4、表示实体集之间一对一的联系、一对多的联系、多对多的联系 ( B)用 E-R图只能表示实体集之间一对一的联系 ( C)用 E-R图只能表示实体集之间一对多的联系 ( D)用 E-R图表示的概念数据模型只能转换为关系数据模型 11 在一个被调用函数中,关于 return语句使用描述, ( )是正确的。 ( A)函数返回值的类型是在定义函数时确定,在函数调用时是可能改变的 ( B)函数返回值的类型就是返回值表达式的值 ( C)函数返回值的类型决定了返回值表达式的类型 ( D)函数返回值的类型可以与返回值表达式的类型不一致 12 下面叙述不正确的是 ( )。 ( A)在函数中,通过 return语句传
5、回函数值 ( B)在函数中,可以有多条 return语句 ( C)主函数名 main()后的一对圆括号中也可以带有参数 ( D)调用函数 必须在一条独立的语句中完成 13 形如 A:A(A 中, ptr应是 ( )。 ( A)指向常量的指针 ( B)指针常量 ( C)指针常数 ( D)常指针 22 下列不是派生类对基类的继承方式的是 ( )。 ( A) public ( B) static ( C) public ( D) protected 23 公有派生类对象可以访问基类中的 ( )。 ( A)公有成员 ( B)私有成员 ( C)保护成员 ( D)任何成员 24 下面哪些函数采用动态联编
6、( )? ( A)重载函数 ( B)嵌套函数 ( C)虚函数 ( D)递 归函数 25 如在类中有如下函数定义 Void fun(int a,int b,int c=0);则下列调用中,正确的是 ( )。 ( A) fun(1) ( B) fun(1,1) ( C) fun() ( D) fun(2,2,3,4) 26 在 10S中提供格式控制标志位中,转换为十六进制形式的标志位是 ( )。 ( A) hex ( B) oct ( C) dec ( D) left 27 下面关于友元的叙述正确的是 ( )。 ( A)友元可以提高程序的执行效率 ( B)友元加强了类的继承性 ( C)友元加强了类
7、的多态性 ( D)友元提高了程序的封装性 28 可以通过下面哪些函数实现类的多态性 ( )。 ( A)友元函数 ( B)虚函数 ( C)嵌套函数 ( D)递归函数 29 下面正确的函数定义是 ( )。 ( A) Fun() ( B) void fun ( C) void fun() ( D) void fun() 30 下面四个关键字中,说明友元函数的是 ( )。 ( A) friend ( B) virtual ( C) public ( D) base 31 下面 C+带有默认参数函数 的叙述,正确的是 ( )。 ( A)不允许设置函数的默认值 ( B)函数的默认值只能有一个 ( C)函数
8、的默认值应该先设置右边然后再设置左边 ( D)函数的默认值应该先设置左边然后再设置右边 32 在传值调用中,要求 ( )。 ( A)形参和实参类型任意,个数相等 ( B)形参和实参类型一致,个数相等 ( C)形参和实参类型一致,个数不等 ( D)形参和实参类型任意,个数任意。 33 设 x是一个类名,下列的形参 ( )是引用调用 ( A) X &a ( B) &X a ( C) X *a ( D) *X a 34 “:”符号的功能是 ( )。 ( A)标识某个成员是属于哪个对象的 ( B)标识对某个成员的引用 ( C)标识某个成员属于哪个类的 ( D)无意义 35 通常拷贝构造函数的参数是 (
9、 )。 ( A)某个对象名 ( B)某个对象的引用 ( C)某个对象的指针 ( D)某个对象的成员 36 算法的计算量的大小称为计算的【 】。 37 在一个图中,所有顶点的度数之和等于所有边数的【 】倍。 38 一个向量 (即一批地址连续的存储单元 )第一个元素的存储地址是 100,每个元素的长度为 2,则 第 5个元素的地址是【 】。 39 生产一个最终能满足需求并且达到工程目标的软件产品所需要的步骤被称为【 】。 40 关系的三类完整性规则分别是:实体完整性规则、参照完整性规则和【 】规则。 41 数组元素 ai是该数组的第【 】个元素。 42 为 int *p; 动态分配内存空间并且赋初
10、始值 0的语句是【 】。 43 C+语言提供的 “: ”运算符的作用是在同名局部变量的作用域中访问【 】。 44 一个类中有【 】个析构函数。 45 下面程序的运行结果为【 】。 class A public: int num; A(int i)num=i; A(A &a)num=+a.num; void print()cout num; ; void main() A a(1), b(a); a print(); b print(); 46 函数不能直接引用类中说明的非静态成员,这里指的成员是【 】。 47 若类 B是类 A的私有派生类,类 C是类 B的公有派生类,则类 C【 】访问基类 A
11、的公有成员。 国家二级( C+)笔试模拟试卷 115答案与解析 1 【正确答案】 D 【试题解析】 栈是特殊的线性表,在栈顶可以插入元素,称为入栈,也可以删除元素,称为退栈。因此,栈是一种先进后出的线性表。 2 【正确答案】 D 【试题解析】 在线性链表中插入或删除元素都不需要移动其他元素,只需改变指针即可;栈只能在一端插入或删除元素,也不需要移动其他元素;队列只能在一端插入元素,在另一端删除元素,也不需要移 动其他元素。 3 【正确答案】 B 【试题解析】 同一个数据结构可以有多种存储结构;其所占的存储容量一般是不同的。而对分查找法只适用于顺序存储的有序表。 4 【正确答案】 C 【试题解析
12、】 线性链表是线性表的链式存储结构;二叉链表是二叉树的链式存储结构;栈与队列都是特殊的线性表,属于逻辑结构;循环队列是队列的一种存储结构。 5 【正确答案】 A 【试题解析】 堆可以用完全二叉树表示,因此,完全二叉树能直接使用堆排序法进行排序。 6 【正确答案】 B 【试题解析】 队列 是一种特殊的线性表,只能在一端插入元素,在另一端删除元素,并且在插入与删除操作时都不需要移动其他元素。 7 【正确答案】 C 【试题解析】 在模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模块都能易于理解,各模块的功能尽量单一,各模块之间的联系尽量的少。因此,选项 A中的说法是错误的。自顶
13、向下、逐步细化的设计过程,主要包括两个方面:一是将一个复杂问题的解法分解和细化成由若干模块组成的层次结构;二是将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机 器指令。即在自顶向下、逐步细化的设计过程中,是按照先全局后局部,先整体后细节、先抽象后具体的方法设计程序。因此选项B 中的说法也是错误的。 在模块化程序设计中每一个模块完成一个功能,相对独立,要求一个模块内部的控制结构也要符合结构化原则。因此,选项 C中的说法是正确的。由于在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,因此,在程序设计过程中,结构化程序设计方法与模块化程序设计方法是要同时
14、采用的。因此,选项 D中的说法是错误的。 8 【正确答案】 D 【试题解析】 在数据库系统中,通过 系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构 (它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改 )与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。由此可知,选项 A B 与 C中
15、的说法都是错误的。 9 【正确答案】 B 【试题解析】 用树形结构来表示实体之间联系的模型称为层次模型。 10 【正确答案】 A 【试题解析】 用 E-R图可以简单明了地描述实体及其相互之间的联系,用 E-R图还可以方便地描述多个实体集之间的联系和一个实体集内部实体之间的联系。因此,选项 A中的说法是正确的,而选项 B与 C中的说法都是错误的。 为了建立用户所要求的数据库必须把概念结构 (用 E-R图表示的概念数据模型 )转换为某个具体的数据库管理系统所支持的数据模型,这就是逻辑结构设计所要完成的任务。 在已给定数据 库管理系统的情况下,数据库的逻辑设计可以分两步来进行: 将概念模型转换成一般
16、的数据模型; 将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。 由此可知,用 E-R图表示的概念数据模型不仅能转换为关系数据模型,还可以转换为其他数据模型,如网状模型和层次模型等。因此,选项 D中的说法也是错误的。 11 【正确答案】 C 【试题解析】 函数返回值的类型决定了返回值表达式的类型。 12 【正确答案】 D 【试题解析】 调用函数不必在一条独立的语句中完成。 13 【 正确答案】 D 【试题解析】 参数是一个类引用。 14 【正确答案】 B 【试题解析】 符号是一个重载的用于输出的成员函数。 15 【正确答案】 C 【试题解析】 与构造函数一样,析构函数没有返回值。 1
17、6 【正确答案】 C 【试题解析】 C+支持多重继承。 17 【正确答案】 C 【试题解析】 在某些情况下,内联函数可以提高程序的效率。 18 【正确答案】 B 【试题解析】 静态成员不可以在类的内部初始化。 19 【正确答案】 D 【 试题解析】 成员函数可以是静态的。 20 【正确答案】 B 【试题解析】 先执行派生类的构造函数,然后执行基类的构造函数。 21 【正确答案】 D 【试题解析】 此处是常指针格式。 22 【正确答案】 B 【试题解析】 其余的三种是继承方式。 23 【正确答案】 A 【试题解析】 公有派生类对象只能访问基类中的公有成员。 24 【正确答案】 C 【试题解析】
18、虚函数采用动态联编的方式。 25 【正确答案】 B 【试题解析】 fun 函数中第三个参数有 默认值,故只需给出前两个参数即可。 26 【正确答案】 A 【试题解析】 hex 是十六进制的标志。 27 【正确答案】 A 【试题解析】 友元提高了程序的效率,但破坏了程序的封装性。 28 【正确答案】 B 【试题解析】 虚函数是多态性的体现。 29 【正确答案】 D 【试题解析】 见函数定义的格式。 30 【正确答案】 A 【试题解析】 firend 是友元成员的关键字。 31 【正确答案】 C 【试题解析】 函数的默认值应该先设置右边然后再设置左 边。 32 【正确答案】 B 【试题解析】 在传
19、值调用中,形参和实参类型一致,个数相等。 33 【正确答案】 A 【试题解析】 引用的格式。 34 【正确答案】 C 【试题解析】 “:”是类作用域符。 35 【正确答案】 B 【试题解析】 拷贝构造函数 X(X&)是一种特殊的构造函数,由编译器调用来完成一些基于同 类的其他对象的初始化,拷贝构造函数的参数是某个对象的引用。 36 【正确答案】 复杂度 【试题解析】 算法计算量的大小称为计算的复杂度。 37 【正确答案】 2 【试题解析】 在一个图中,所有顶点的度数之和等于所有边数的 2倍。 38 【正确答案】 108 【试题解析】 第一个元素占用 100和 101,第二个元素占用 102和
20、103,第三个元素占用 104和 105,第四个元素占用 106和 107,第五个元素占用 108和109 39 【正确答案】 软件工程过程 【试题解析】 生产一个最终能满足需求并且达到工程目标的软件产品所需要的步骤被称为软件工程过程。 40 【正确答案】 用户定义完整性 【试题解析】 为了维护数据 库中的数据与现实世界的一致性,关系数据库必须遵循三类完整性约束规则,分别是:实体完整性规则、参照完整性规则 (又称引用完整性规则 )和用户定义完整性规则。 41 【正确答案】 i+1 【试题解析】 数组下标从 0开始。 42 【正确答案】 p=new int(0); 【试题解析】 参考 new 的
21、用法。 43 【正确答案】 全局变量 【试题解析】 C+语言提供的 “: ”运算符的作用是在同名局部变量的作用域中访问全局变量。 44 【正确答案】 1 【试题解析】 一个类中可以有多 个构造函数,但只能由一个析构函数。如果没有特殊定义构造函数或者析构函数,系统都会自动建立一个默认的构造函数或者析构函数。 45 【正确答案】 静态 【试题解析】 在 C+类的规定中,静态函数只能给引用类的静态成员和非数据成员。 46 【正确答案】 不能 【试题解析】 类 B是类 A的私有继承类,则将 A的公有成员变为私有成员,类C是类 B 的派生类,无法访问基类 A中成员。 47 【正确答案】 成员名限定法、支配规则、虚基类 【试题解析】 多继承中解决二义性的三种方法是:成员名限定法、支配 规则和虚基类。