二级C++真题2006年9月答案.doc
《二级C++真题2006年9月答案.doc》由会员分享,可在线阅读,更多相关《二级C++真题2006年9月答案.doc(13页珍藏版)》请在麦多课文档分享上搜索。
1、二级C+真题2006年9月答案真题 120一、选择题(每小题2分,共70分) 下列各题A、B、C、D 四个选项中,只有一个选项是正确的。第1题:参考答案:D答案解析:编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。更直接的说,风格就是意味着要按照规则进行编程。这些规则包括: (1)程序文档化。就是程序文档包含恰当的标识符,适当的注解和程序的视觉组织等。(2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。(3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。(
2、4)注意goto语句的使用。合理使用goto语句可以提高代码的运行效率,但goto语句的使用会破坏程序的结构特性。因此,除非确实需要,最好不使用goto语句。因此,本题的正确答案是D。第2题:参考答案:A答案解析:从工程管理的角度,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架:详细设计是将其进一步精化成软件的算法或表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组成,包括总体结构设计、数据设计和过程设计。因此,本题的正确答案是A。第3题:参考答案:C答案解析:软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶
3、段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久的满足用户的需要。即当软件在使用过程中发现错误时应加以改正:当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项C中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是C。第4题:参考答案:B答案解析:数据库管理系统的三级模式结构由外模式、
4、模式和内模式组成。外模式也称子模式或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。内模式也称存储模式或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方法的描述。根据上述介绍可知,数据库系统中用户所见到的数据模式为外模式。因此,本题的正确答案是B。第5题:参考答案:D答案解析:数据库的生命周期可以分为两个阶段:一是数据库设计阶段:二是数据库实现阶段。数据库的设计阶段又分为如下四个子阶段:即需求分析、概念设计、逻辑设计和物理设计。 因此,本题的正确答案是D
5、。第6题:参考答案:C答案解析:本题考查数据库的关系代数运算。R表中只有一个域名A,有两个记录(也叫元组),分别是m和n:S表中有两个域名,分别是B和C,其所对应的记录分别为1和3。注意观察表T,它是由R的第一个记录依次与S的所有记录组合,然后再由R的第二个记录与s的所有记录组合,形成的一个新表。上述运算恰恰符合关系代数的笛卡尔积运算规则。关系代数中,笛卡尔积运算用“x”来表示。因此,上述运算可以表示为T=RS。因此,本题的正确答案为C。第7题:参考答案:D答案解析:时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存
6、储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销:有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项A、 B、C的说法都是错误的。故本题的正确答案是D。第8题:参考答案:B答案解析:在长度为64的有序线性表中,其中64个数据元素是按照从大到小或从小到大的顺序排列有序的。在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不在线性表中或位于线性表的最后。按照线性表的顺序查找算法,首先用被查找的数据和
7、线性表的第一个数据元素进行比较,若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等,则查找成功,否则,继续进行比较。依次类推,直到在线性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为64的有序线性表中进行顺序查找,最坏的情况下需要比较64次。因此,本题的正确答案为B。第9题:参考答案:B答案解析:数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖的使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共,享数据的要求,就出现了数据库
8、技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项B正确。第10题:参考答案:A答案解析:二叉树的中序遍历递归算法为:如果根不空,则(1)按中序次序访问左子树;(2)访问跟结点;(3)按中序次序访问右子树。否则返回。本题中,根据中序遍历算法,应首先按照中序次序访问以C为根结点的左子树,然后再访问根结点P,最后才访问以E为根结点的右子树。遍历以C为根结点的左子树同样要遵循中序遍历算法,因此中序遍历结果为ACBD;然后遍历根结点F;遍历以E为根结点的右子树,同样要遵循中序遍历算法,因此中序遍历结果为EG。最后把这三部分的遍历结果按顺序连接起来,中序遍历结果为ACB
9、DFEG。因此,本题的正确答案是A。第11题:参考答案:C答案解析:本题考查了内联函数的概念。在调用的时候,内联函数会像宏函数一样的展开,所以它没有一般函数的参数压栈和退栈操作,所以选项A不正确。在C+中,编译器会将在类的说明部分定义的函数认定为内联函数,即使它们没有用inline说明,所以选项B不正确。内联函数除了比普通函数有更高的执行效率外,跟普通函数没有任何区别,因此选项D也不正确。4个选项中只有C正确。第12题:参考答案:B答案解析:本题考查的是拷贝构造函数的概念。拷贝构造函数发生在,用一个已知的对象初始化一个正在创建的同类对象的时候。因此,选项A、C、D均会调用拷贝构造函数。而选项B
10、没有创建的动作,它会调用的函数是重载的赋值运算符函数。故应该选择B。第13题:参考答案:D答案解析:本题考查的知识点是继承和派生。无论是公有、保护还是私有继承,派生类都能够访问基类的公有和保护成员,而不能访问基类的私有成员,故选项A和B不正确。公有继承时,派生类的对象可以作为基类的对象处理,派生类是基类的子类型。子类型关系是可以传递的,但是不可逆的。因此,基类的对象不可作为派生类的对象处理,即基类对象不可赋值给派生类对象。所以选项C不正确。4个选项中,只有选项D正确。第14题:参考答案:A答案解析:本题考查运算符重载的概念。C+语言规定,、()、-以及所有的类型转换运算符只能作为成员函数重载。
11、而要重载为友元函数就必须重载为非成员函数,故应该选择A。第15题:参考答案:D答案解析:本题考查的是模板实参的省略。模板实参在以下几种情况中不能省略: 从模板函数实参表获得的信息有矛盾: 需要获得特定类型的返回值,而不管参数的类型如何; 虚拟类型参数没有出现在模板函数的形参表中; 函数模板含有常规形参。 故本题的正确答案是选项D。第16题:参考答案:A答案解析:本题考查的是getline()函数。getline()函数的原型为:istream_type& getline(char_type*s,streamsizen,char_type delim);,其功能是从当前输入位置开始提取字符存入s
12、所指向的具有n个字节的字符空间中。字符的提取与存储在遇到下列情况时停止: 已提取并存储了n-1个字符; 到流尾,无字符可提取; 下一个要提取的字符等于结束标志字符delim。 因此,选项B、C、D都是正确的。getline()函数不仅可以用宋读取键盘输入的字符串,还可以用来读取文件等数据流,故选项A不正确。第17题:参考答案:D答案解析:本题考查C+语言中的标识符的定义。标识符不是一个随意的字符序列,定义标识符时一般应注意如下几点:第一个字符必须是字母或下划线,中间不能有空格;在第一个字母后,可以是任意字母、下划线和数字组成的字符序列:标识符的长度是任意的,但特定的编译系统能够识别的标识符长度
13、是有限的。一般不要超过 31个字符;标识符中大小写字母是有区别的;用户定义标识符时,不要采用系统的保留字。选项A是保留字:选项B的第一个字符是数字:选项C中的-字符不合法。故应该选择D。第18题:参考答案:D答案解析:本题考查了常指针和指针常量的概念。常指针是指向一个常量的指针变量,即通过该指针无法修改所指向的内容,但其自身的内容可以改变,它是一个变量。选项B中定义的point就是一个合法的常指针。而指针常量是一个常量,即不能修改指针自身的内容,但可以通过该指针修改其所指向的内容。指针常量和其他常量一样,在定义的同时必须初始化。选项D中的指针常量point虽然定义没有错误,但没有初始化,编译无
14、法通过。故应该选择D。第19题:参考答案:A答案解析:本题考查的是if语句。if语句的条件部分是一个表达式而不是语句,因此选项A的说法不正确。第20题:参考答案:B答案解析:本题考查的是指针的运用。因为指针p初始指向数组a的首地址,所以*p返回的是数组元素a0的值,因此选项A的结果是1+9=10;选项B是取指针p往后移动8个单位位置处的值,即a8的值9;选项C中表达式的值和选项A相同,只不过选项C中的表达式会改变a0的值;选项D的值是一个地址值,即数组元素 a8的地址值,该值无法确定。所以,4个选项中只有选项B正确。第21题:参考答案:A答案解析:本题考查的知识点是函数的调用。C+中函数调用的
15、一般形式为: 函数名(实参表) 其中,实参表是以逗号分割的一系列表达式。因此,本例中fun()函数的实参表是由3个表达式组成:a+b、3和max(n-1,b)。故应该选择A。第22题:参考答案:B答案解析:本题考查了类的访问权限。在C+中,类的访问权限一共有3种,分别是: public(公有)、protected(保护)和private(私有)。因此,本题应该选择B。第23题:参考答案:B答案解析:本题考查的是派生类对基类成员的访问。基类的成员有公有(public)、保护 (protected)和私有(private)三种访问属性,类的继承方式也有公有继承(public)、保护继承(prote
16、cted)和私有继承(private)三种。无论哪种继承方式,派生类中的成员都不能访问基类中的私有成员,但可以访问基类中的公有成员和保护成员。故应该选择B。第24题:参考答案:C答案解析:本题考查了运算符重载的一些概念。C+语言规定,“”、“*”、“-”、“:”和“?:”这五个运算符不能被重载,因此选项A的说法不正确。运算符函数的返回类型由该运算符所组成的表达式的值的类型来决定的,例如关系和逻辑运算符的返回值应该为bool型,bool型是基本数据类型,所以选项B的说法不正确。运算符重载是针对C+中原有运算符进行的,不可能通过重载创造出新的运算符,所以选项D的说法也不正确。故应该选择C。第25题
17、:参考答案:A答案解析:本题考查了class和typename两个关键字。关键字class除了能用来定义类以外,还能用来声明模板的虚拟类型参数。在用作声明虚拟类型参数时typename与 class可以互换,但不能使用typename宋定义类。因此,选项B和C是错误的。在模板形参表中除了可以用typename或class声明虚拟类型参数外,还可以使用普通类型声明常规参数,所以选项C是错误的。故本题应该选择A。第26题:参考答案:D答案解析:本题考查的是输出的格式控制。本例中,操作符setprecision的作用是设置浮点数的精度;操作符fixed的作用是让浮点数按定点格式输出;操作符setfi
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 C+ 2006 答案
