1、国家二级 C+机试(选择题)模拟试卷 88及答案与解析 一、选择题 1 下列程序的运行结果为 ( )。 #include void print(double a) cout class A public: A()cout= ( C): ( D) 13 当使用 fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ( )。 ( A) ios: in ( B) los: out ( C) ios: in | ios: out ( D)以上都不对 14 下列程序的运行结果是 ( )。 #include class A int a; public: A()a=0; A(int a
2、a) a=aa: cout class example int a; public: example(int b)a=b+; void print()a=a+l; cout using namespace std; int main() int sum=O; for(im i=0; i0; i-=3)n+; n的值是 ( )。 ( A) 23 ( B) 24 ( C) 25 ( D) 71 38 下列关于函数的叙述中,正确的是 ( )。 ( A) C+不允许函数嵌套定义 ( B) C+中所有函数都有返回值 ( C)函数的形参列表一定不能为空 ( D)调用函数时一定会执行完函数体的最后一条语句
3、39 下列关于运算符重载的叙述中,正确的是 ( )。 ( A)不能改变重载运算符的优先级 ( B)运算符只能重载为类的成员函数 ( C) C+中已有的任何运算符都可以重载 ( D)可以为重载运算符函数的参数设置默认值 40 下列运算符中,可以重载为类的友元函数的运算符是 ( )。 ( A) = ( B) () ( D) *”和 “?: ”。 13 【正确答案】 D 【试题解析】 使用 fstream类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。 14 【正确答案】 B 【试题解析】 本题考查的是对构造函数的掌握,另外 “+”运算符是右结合的,所以在进行输出的时候都是先把原
4、来的输出后再自加 1。 15 【正确答案】 C 【试题解析】 “+”是右结合的,所以先赋值为 3,最后 输出 3+1;常成员函数只有常对象才能调用,所以输出 2。 16 【正确答案】 C 【试题解析】 本题考查函数返回类型,函数如果返回为 void,那么函数体内可以没有 return语句,如果函数有返回值,那么在函数体中就必须有 return语句。 17 【正确答案】 C 【试题解析】 本题考查运算符重载,重载不能改变运算符运算对象的个数;不能改变运算符的优先级别;不能改变运算符的结合性;重载运算符的函数不能有默认值,否则就改变了运算符参数的个数;不能定义新的运算符,某些运算符不能重载。所以答
5、案为 C。 18 【正确答案】 C 【试题解析】 在类体中定义的成员函数, C+系统会自动将它们作为内联函数处理,而在类外定义的成员函数,系统并不把它们默认为内联函数,内联函数可以用 return,以可以不用,所以只有选项 C正确。 19 【正确答案】 B 【试题解析】 算法是指对解题方案的准确而完整的描述,算法不等于数学上的计算方法,也不等于程序, A选项错误。算法设计需要考虑可行性、确定性、有穷性与足够的情报,不能只考虑计算结果, C选项错误。算法设计有穷性是指操作步骤有限且能在有限时间内完成,如果 一个算法执行耗费的时间太长,即使最终得出了正确结果,也是没有意义的, D选项错误。算法在实
6、现时需要用具体的程序设计语言描述,所以程序可以作为算法的一种描述方法, B选项正确。 20 【正确答案】 C 【试题解析】 若有 n个元素的序列,将元素按顺序组成 _棵完全二叉树,当且仅当满足下列条件时称为堆:大根堆,所有结点的值大于或等于左右子结点的值;小根堆,所有结点的值小于或等于左右子结点的值。 A、 B、 D选项属于大根堆,C选项由于 4785,不满足条件,不是堆,故正确答案为 C选项。 21 【正确答案】 A 【试题解析】 在树结构中,定义一棵树的根结点所在的层次为 1,其他结点所在的层次等于它的父结点所在的层次加 1,树的最大层次称为树的深度。完全二叉树指除最后一层外,每一层上的结
7、点数均达到最大值,在最后一层上只缺少右边的若干结点。深度为 5的二叉树,结点个数最多为 25一 1=31,最少为 24=16,不可能是 15,故正确答案为 A选项。 22 【正确答案】 A 【试题解析】 二叉树遍历可以分为 3种:前序遍历 (访问根结点在访问左子树和访问右子树之前 )、中序遍历 (访问根结 点在访问左子树和访问右子树两者之间 )、后序遍历 (访问根结点在访问左子树和访问右子树之后 )。本题中前序遍历为ABDEGCFH,中序遍历为 DBGEAFHC,后序遍历为 DGEBHFCA,故 A选项正确。 23 【正确答案】 D 【试题解析】 软件具有以下特点:软件是一种逻辑实体,具有抽象
8、性;软件没有明显的制作过程;软件在使用期间不存在磨损、老化问题;对硬件和环境具有依赖性;软件复杂性高,成本昂贵;软件开发涉及诸多的社会因素,如知识产权等。故选项 D正确。 24 【正确答案】 A 【试题解析】 对象 的基本特点是:标识唯一性、分类性、多态性、封装性、模块独立性好。类是具有共同属性、共同方法的对象的集合,是关于对象的抽象描述,反映属于该对象类型的所有对象的性质。对象具有的性质,类也具有。故 A选项正确。 25 【正确答案】 A 【试题解析】 数据模型通常由数据结构、数据操作及数据约束 3部分组成。故 A选项正确。 26 【正确答案】 A 【试题解析】 一般来说,实体集之间必须通过
9、联系来建立联接关系,分为三类:一对一联系 (1: 1)、一对多联系 (1: m)、多对多联系 (m: n)。实体运动队和队员的关系为 1: m联系,故 A选项正确。 27 【正确答案】 D 【试题解析】 循环队列是队列的一种顺序存储结构,用队尾指针 rear指向队列中的队尾元素,用排头指针 front指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针 rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为 front=rear=m,当 front=30, rear=10时,队列中有 m一 30+10+1=m一 19个元素,比较次数为 m一 20次, D选
10、项正确。 28 【正确答案】 A 【试题解析】 用于查询的 3个操作无法用传统的集合运算表示,引入的运算为投影运算、选择运算、笛卡尔积。常用的扩充运算有交、除、连接及自然连接等。投影,从关系模式中指定若干个属性组成新的关系,题目中从 R中指定 AB组成新的关系 T,故 A选项正确。选择,从关系中找出满足给定条件的元组的操作称为选择,即结果 T应该包含 R中全部属性,故 C选项错误。假设, R与 S经过某种关系得到 T,则并: RuS是将 S中的记录追加到 R后面;交: RnS结果是既属于 R又属于 S的记录组成的集合。上述两种操作中,关系 R与 S以及 T要求有相同的结构,故 B、 D选项错误
11、。 29 【正确答案】 B 【试题解析】 C+的标识符由字母、数字和下划线组成,其中必须以字母或下划线开头。选项 B错误,答案选 B。 30 【正确答案】 D 【试题解析】 C+中使用 new表达式动态创建对象, new表达式返回指向新创建对象的指针, D选项将 new返回的指针赋给整型 const变量,语法错误,答案选D。 31 【正确答案】 D 【试题解析】 程序在 for循环中嵌套 while循环。 for循环的初始条件为: sum、 i初值为 0;进入 for循环之后,首先将 sum累加 i,此时 sum、 i仍为 0; while循环中,若 sum小于 100,则将 sum累加 i,
12、继续 while循环;当 sum不满足条件时,退出循环。由于 sum、 i初值为 0,所以 while循环中 sum始终为 0,始终满足循环条件 sum0不成立;由 70 3=23,可知循环最少执行 23次,之后 i取值为 1,仍然满足循环条件,所以循环总共执行 24次, n自增 24次,答案为 B。 38 【正确答案】 A 【试题解析】 C+中函数可以不返回任何值,不返回任何值指定返回类型为 void类型;函数形参表可以为空,但不能省略;函数调用过程中,可能会由于 return语句或者异常终止执行,不一定会执行完最后一条语句; B、 C、 D错误;函数不允许嵌套定义,答案为 A。 39 【正
13、确答案】 A 【试题解析】 操作符 “”不能重载为成员函 数,选项 B错误;成员访问操作符 “ ”、成员指针访问操作符 “: c”、域操作符 “: ”、 sizeof和条件操作符 “?: ”是不能重载的,选项 C错误;除了函数调用操作符 “()”外,重载操作符时使用默认参数是非法的,选项 D错误;重载操作符不能改变操作符的优先级别,选项 A正确;答案为 A。 40 【正确答案】 D 【试题解析】 C+规定,赋值操作符 “=”、下标操作符 “”、调用操作符 “()”和成员访问箭头操作符 “一 ”必须重载为成员函数,这些操作符定义为非成员函数将在编译时标记为错误,友元函数是 非成员函数,上面四种操作符不能重载为类的友元函数,另外成员访问操作符 “ ”不能重载,答案为 D。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1