当前位置:才华斋>计算机>计算机二级>

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

计算机二级 阅读(2.07W)

  一、选择题

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

(1)D【解析】在程序设计过程中,一个很重要的环节是首先确定实现各种功能的算法,并且用某种工 具将它精确地表达出来。流程图是其中的工具之一。因此,程序设计的过程应是先画出流程图,然 后根据流程图编制出程序。因此,选项A中的说法是错误的。 程序中的注释是为了提高程序的可读性。使程序易于理解、易于维护,注释必须在编制程序的同时加 入。因此,选项B和C中的说法也都是错误的。

(2)D【解析】算法的空间复杂度,一般是指执行这个算法所需要的内存空间,它包括算法程序所占的 空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。因此,选项A中的 说法是错误的。 虽然算法的计算工作量(即时间复杂度)是问题规模的函数,但它是与数据的存储结构有密切的关 系。因此,选项B中的说法也是错误的。 一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系有可能是不同的。因此, 选项C中的说法也是错误的。D则是正确的。

(3)A【解析】栈是按照“先进后出“(F1Lo-First In Last Out)或“后进先出”(LIFO一Last IN First Out)的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。因此,栈具有记忆作用。

(4)A【解析】按照二叉树后序遍历的方法:在访问根结点、遍历左子树与遍历右子树这三者中,首先 遍历左子树,然后遍历右子树,最后访问根结点;并且,在遍历左、右子树时,仍然先遍历左子树,然后 遍历右子树,最后访问根结点。对本题中的二叉树进行后序遍历的结果应是ZBTYCPXA.

(5)A【解析】在长度为n的有序线性表中进行二分查找,需要的比较次数为log2n。

(6)D【解析】在结构化分析方法中,数据字典的作用是描述系统中所用到的全部数据和文件的有关 信息。

(7)A【解析】维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段。软 件工程学的目的就在于提高软件的可维护性,同时也要设法降低维护的代价。 软件维护通常有以下四类: ①为纠正使用中出现的错误而进行的改正性维护; ②为适应环境变化而进行的适应性维护; ③为改进原有软件而进行的完善性维护; ④为将来的可维护和可靠而进行的预防性维护。 软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。 但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。 由此可知,本题中选项B、C、D中的说法都是错误的。

(8)C【解析】在关系模型的数据语言中.一般除了运用常规的集合运算(并、交、差、笛卡尔积等)外, 还定义了一些专门的关系运算,如投影、选择、连接等运算。前者是将关系(即二维表)看成是元组的 集合,这些运算主要是从二维表的行的方向来进行的;后者主要是从二维表的列的方向来进行运算。 因此,选项A与B中的说法都是错误的,而选项C中的说法是正确的。

(9)B【解析】显然,关系表T是关系表R与S的并,即T=RUS。

(10)D【解析】显然,在数据库系统阶段,数据独立性最高。

(11)C【解析】注意:VC编译器分配给整数的内存是4字节。

(12)c【解析】本题考察for循环的三个表达式的用法及其执行顺序,本题中for循环的第三个表达 式完成变量自增,以控制for循环的执行次数。

(13)A【解析】C++语言规定在使用scanf输入时可以用作数据分隔符的有空格,回车和Tab键。 用户如果要从键盘输入空格字符,则需要使用其他的输人方式。

(14)D【解析】逻辑表达式的值输出结果是数字的形式。c++规定.逻辑假用数字O表示,而逻辑 真则用非零表示。注意:在C++中,如果逻辑表达式的值是非零,则可以认为是真。VC编译器在 编译输出时将逻辑真输出为l。

(15)A【解析】本题考察混合表达式的展开。

(16)B【解析】本题考察宏定义的使用,宏在使用是如同函数一样,但却是在编译时展开。而函数却是 在运行时进行计算的。

(17)B【解析】选项A可以排除,原因是类的成员函数的定义必须用域作用符::进行限定;选项C的 限定位置不对,函数的类型应在最前面。根据上下文可以指导,setx为单参成员函数,在定义时也 必须指定参数。因此选项D也可以排除,正确答案为B。

(18)D【解析】本题考察const修饰符的含义及其修饰不同对象的规则。常对象既能被常对象调用, 也能被一般对象调用,一旦const修饰了一个对象.则对象的所有数据成员都无法更新。

(19)D【解析】构造函数和析构函数一样,是类的特殊的成员函数。其特殊之处在于,构造函数可以 有多个版本以实现不同的初始化方式,不能指定形参和函数类型,这些都是系统默认完成。

(20)D【解析】派生类和基类之间的关系比较重要,派生类不仅可以定义同名的成员变量,还可以调 用或重载基类的同名函数,这是类的多态性的基础。

(21)B【解析】纯虚函数一般提供派生类进行继承的参考,是多态性的重要保证,一个具有纯虚函数 的类称为抽象类,抽象类可以具有其他类的特点.但不能实例化,其主要目的是作为派生类的基类 存在,处于类层次的高层。

(22)C【解析】构造函数包括默认构造函数和拷贝构造函数等,析构函数和构造函数~样属于类的特 殊的成员函数。而友元函数则是为了增加类的访问灵活行而允许其他类的成员函数或全局函数访 问类的内部变量或成员函数的一种机制,其缺点是破坏了类的封装性。

(23)A【解析】c++语言中为了简化继承关系,规定多重继承中可访问性规则同单继承规则。

(24)A【解析】本题考察const修饰符的作用。注意:const位置不同,其修饰的部分也是不同的。本 题中const修饰的是ptr所指的对象本身,所以,ptr是可以重新指向新的对象,而pt,一>a则无法 被更新。

(25)A【解析】本题考察引用的'定义既使用。引用是C++中新引入的概念,其使用方法同变量,而 其本质同指针,具有指针的灵活性。引用必须用变量进行赋值,不能用常量或常数。

(26)C【解析】可以说类来源于结构体,两者有相似之处。但类的功能更强大一些,不仅增加了操作, 还能够隐藏和包含其成员变量或成员函数。

(27)L:【解析】输出流对象包括基本的输出设备,如显示器,内存和文件,而输入流对象则包括键盘, 文件以及其他输入设备。

(28)C【解析】本题考察cln流对象的几种成员函数get,getline的使用规则。流提取符>>在提取 字符时,遇到C++规定的分隔符如空格,回车和’Fab键时自动分割.故本题正确答案为C。

(29)D【解析】本题考察cin流对象的几种成员函数get,gedine,read及流提取符>>的使用规则。

(30)D【解析】c++中没有规定文件打开时的隐含打开方式,因此考生在写程序是必须指定打开方 式,否则将出现错误。

(31)B【解析】常数据成员不能背更新。因此可以排除选项C和D。常数据成员所包含的值不能被更 新,所以必须被初始化,如果初始化则常数据成员里的随机值是没有实际意义的。

(32)A【解析】类的构造函数的作用就是在类实例化对象时,即对象还没有生成时完成一些初始化 的工作。此时,析构函数和静态成员函数都还没有建立,而友元函数是类外部的函数,根本无法完 成类的实例化工作。

(33)A【解析】如果重载了赋值运算符后,对象之间是可以赋值的,对象如C++中其他内置的数据 类型一样,可以作为函数参数、数组元素,其他对象的成员存在。

(34)C【解析】 同上题。

(35)A【解析】是否是重载函数,需要给编译器提供足够的信息判断。其主要的依据是函数的名字, 参数的类型,函数的返回值类型。

  二、填空题

(1)【l】存储结构【解析】数据结构分为逻辑结构与存储结构,循环队列属于存储结构。 因此,本题的正确答案为存储结构。

(2)【2】n(n一1)/2 【解析】在最坏情况下,冒泡排序所需要的比较次数为n(n一1)/2。

(3)【3】420【解析】一般二叉树有一个性质:在任意一棵二叉树中,度为O的结点(即叶子结点)总是 比度为2的结点多一个。 在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。 综合以上两点可以得到如下结论: 没一棵完全二叉树具有n个结点。如果n为偶数,则在该二叉树中有n/2个叶子结点以及n/2—1个度为2的结点.还有1个是度为1的结点;如果n为奇数.则在该二叉树中有[n/2]+1个叶子结点 以及[n/2]个度为2的结点.没有度为l的结点。 在本题中,完全二又树共有839个结点.839是奇数,因此.在该二叉树中有420个叶子结点以及419个度为2的结点.没有度为l的结点。

(4)【4】格式化模型【解析】数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于格 式化模型。

(5)【5】关系 【解析】在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。

(6)【6】C【解析】本题考察强制类型转化,char()在这里作为一个强制类型转化函数存在,将整数转 化为字符。

(7)【7】比较两个整数a和b的大小,若a>b则返回l,若a等于b,则返回O,否则返回一1。

(8)【8】a>O&&b>O&&c>O&&a+b>c&&b+c)a&&c+a>b

【解析】本题考察考生将实际问题转换为逻辑表达式的能力。根据三角形的基本定理 “两边和大于第三边”可穷举出其表达式。

(9)【9】i=3 【解析】本题考察考生的for语句和if语句综合使用能力。本题的情况适用于希望在 满足指定值时停止循环的情况。

(10)【lO】不能是表达式【解析】引用是变量的别名,其实质是变量的地址。return在返回值时,如果 其后为表达式,则系统为该表达式生成一个临时变量用于存放该表达式的结果,函数执行完毕之后 该变量被系统回收,因此.返回的该变量的地址对调用函数来说已经没有意义了。

(11)【11】防止对类对象自己给自己赋值【解析】 防止对象给自己赋值,这是一种自毁行为.这种行为 如果不加以判断,可能造成无意识的破坏。

(12)【12】return(strcmp(a,b)

(13)【13】修改本对象的值【解析】本题巧妙的使用this指针来完成类的不同实例进行的修改自身数 据成员的操作。

(14)【14】a=lO,this一>a=5【解析】本题考察在类的成员函数定义中,如果出现类的数据成员和成 员函数的局部变量同名的情况下,如何正确引用合适的变量或数据成员。本题巧妙的采用了this

指针完成这种标识。

(15)【15】Derived=O Sample=9【解析】本题考察派生类和基类的构造函数,析构函数的执行顺序。