试题 百分网手机站

9月全国计算机二级C++预测题答案及解析

时间:2020-08-30 20:04:34 试题 我要投稿

2015年9月全国计算机二级C++预测题答案及解析

  一、选择题

  (1)B

  解析: 利用前序和中序遍历的方法可以确定二叉树的结构,具体步骤如下:① 前序遍历的第一个结点A为树的根结点;② 中序遍历中A的左边的结点为A的左子树,A右边的结点为A的右子树;③ 再分别对A的左右子树进行上述两步处理,直到每个结点都找到正确的位置。

  (2)A

  解析: 树是一个或多个结点组成的有限集合,其中一个特定的结点称为根,其余结点分为若干个不相交的集合。每个集合同时又是一棵树。树有且只有1个根结点。

  (3)B

  解析: 由栈"后进先出"的特点可知:A)中e1不可能比e2先出,C)中e3不可能比e4先出,且e1不可能比e2先出,D)中栈是先进后出的,所以不可能是任意顺序。B)中出栈过程如图所示:

  (4)D

  解析: 滥用goto 语句将使程序流程无规律,可读性差,因此A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。

  (5)D

  解析: 程序设计语言是用于书写计算机程序的语言,其基本成分有以下4种,数据成分:用来描述程序中的数据。运算成分:描述程序中所需的运算。控制成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入输出语言。

  (6)D

  解析: 软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:① 便于用户、开发人员进行理解和交流;② 反映出用户问题的结构,可以作为软件开发工作的基础和依据;③ 作为确认测试和验收的依据。

  (7)D

  解析: 软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。

  (8)A

  解析: 选项A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式即为内模式。

  (9)B

  解析: 数据库逻辑设计的主要工作是将E-R图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。

  (10)C

  解析: 结构化查询语言(Structured Query Language,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。

  (11)A

  解析: 在C++语言中,类和结构体有本质区别,类中包含数据及操作函数,而结构体只包含有数据。

  (12)A

  解析: 关键字是系统已预定义的单词,在程序中有不同的用途,考生应该熟记。

  (13)B

  解析: 本题考察的是运算符的优先级,应该先计算a+b的值为21,然后与c比较大小的值为0,根据"&&"的运算规则,整个表达式的值为0。

  (14)D

  解析: 本题主要考察C++语言的基本语法,选项A)中应该为m>n‖m  (15)A

  解析: 选项A)中i自减到1时就会执行break语句跳出循环,选项B)中i<10永远成立不会跳出循环,选项C)中第一次进入循环体后i>0永远不会跳出循环,选项D)中未给出结束循环的条件。

  (16)D

  解析: 本题考察的是break语句的使用,break可以结束switch语句和for循环语句,但是不能使用在条件判断语句内。

  (17)D

  解析: 本题考察的是数组的基本使用,数组还可以通过对应的指针调用传递参数,其余选项的说法都是正确的。

  (18)B

  解析: 本题考察的是指针的使用,p是指向int型的指针,若想给它指向的元素赋值,应使用*符号,直接赋值相当于改变了原来p存储的地址。

  (19)C

  解析: new是动态申请内存空间时使用的关键字,不能作为函数的返回类型,选项A)为无返回值,选项B)为返回整型,选项D)为返回长整型。

  (20)D

  解析: 所谓重载函数是指同一个函数名可以对应多个函数的实现,编译器会根据参数个数、参数类型和函数返回值类型不同而自动调用相应的函数。

  (21)D

  解析: 本题考察的是递归函数的使用,题中递归函数的结束条件为n<1,递推公式为f(n)=n+f(n-1),所以计算结果为5+4+3+2+1+1,最后一个1为n=0时的返回值。

  (22)D

  解析: 数据封装为了防止不同模块间数据的非法访问及修改。

  (23)A

  解析: C++语言中规定在类体中不允许对所定义的数据成员进行初始化。

  (24)A

  解析: 一个类中只能定义一个析构函数,否则会造成对同一对象的多次删除;而构造函数可以根据不同的参数个数和类型进行多次重载。

  (25)C

  解析: 本题考察考生对拷贝构造函数的掌握。因为++运算是右结合的,所以在使用a对b赋值时,b的num变为1而a的num变为2(先赋值再自加)。