2012年计算机二级C++第七套笔试模拟试题及答案分析

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

本文导航
  • 第1页:选择题(1)—(10)
  • 第2页:选择题(11)—(20)
  • 第3页:选择题(21)—(30)
  • 第4页:选择题(31)—(35)
  • 第5页:填空题(1)—(14)
  • 第6页:参考答案及分析

参考答案及分析

  一、选择题

  (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(先赋值再自加)。

  (26)A

  解析: 静态数据成员是类的所有对象中共享的成员,而不是某个对象的成员。

  (27)D

  解析: 本题考察的是友元类的定义:类A为类B的友元类,则类A的所有成员函数都是类B的友元函数,但反之则不一定成立。

  (28)D

  解析: 只有公有继承的公有成员才能被派生类的对象直接访问,其他的情况都会因为访问权限问题产生错误。

  (29)A

  解析: 本题考察的是在继承中派生类的对象调用构造函数的顺序,应该是先调用基类的构造函数,然后是成员中的对象对应类的构造函数,最后是派生类自己的构造函数。

  (30)B

  解析: 基类中说明的虚函数,在派生类中自然就是虚函数,对于纯虚函数必须在后面继承的派生类中给出具体的实现;静态成员函数不能进行动态联编,所以虚函数不能是静态的。

  (31)A

  解析: 类模板不能被重载,而函数模板可以,它们不能被未知的数据类型替换。

  (32)A

  解析: 本题考察的是文件流的操作,app表示追加方式打开文件(即将指针移至文件尾),binary表示以二进制方式打开文件。

  (33)C

  解析: 本题考察的是考生对引用的掌握,ref实际上就是变量num的别名,所以ref=ref+2时,num已经变成了3。

  (34)D

  解析: 本题考察的是指针和引用,函数fun完成把x和y互换的操作。

  (35)C

  解析: 外部变量i实际上记录的是调用构造函数的次数。

  二、填空题

  (1)存储结构

  解析: 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。

  (2)继承

  解析: 类是面向对象语言中必备的程序语言结构,用来实现抽象数据类型。类与类之间的继承关系实现了类之间的共享属性和操作,一个类可以在另一个已定义的类的基础上定义,这样使该类型继承了其超类的属性和方法,当然,也可以定义自己的属性和方法。

  (3)内聚

  解析: 内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,内聚是从功能角度来度量模块内的联系;耦合性是模块间互相连接的紧密程度的度量。

  (4)一对多`1∶N

  解析: 两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。

  (5)数据库概念设计阶段

  解析: 数据库设计分为以下6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。

  (6)编译

  解析: C++语言是以编译方式实现的高级语言,C++语言程序的实现,必须要使用某种C++语言的编译器对程序进行编译。

  (7)2

  解析: 因为运算符++和--都是右结合的且优先级高于双目运算符+,所以上式的运算顺序为先a++,--b,再a+b,最后a自加1。

  (8)4

  解析: 本题考察的是考生分析简单循环结构的能力。大体过程为第一次进入循环,i变成7,num变为1,i变为6;第二次进入循环,i变成5,num变为2,i变为4;第三次进入循环,i变成3,num变为3,i变为2;第四次进入循环,i变成1,num变为4,i变为0,循环结束。

  (9)动态

  解析: 本题考察的是对动态分配内存的掌握,在C++语言中,使用关键字new和delete进行动态内存申请和释放。

  (10)50

  解析: 本题考察的是函数的默认参数,如果一个函数中有多个参数,则默认参数应从右至左逐个定义,所以题目中x使用参数5,y使用默认参数0。

  (11)成员选择运算符`.~成员访问运算符`->

  解析: 本题考察的是使用对象和对象指针访问成员所使用的符号的不同,考生请注意它们的区别。

  (12)运行时

  解析: 本题考察的是多态的概念,多态性主要是指发出同样的消息而被不同类型的对象接收时导致完全不同的行为,它一般分为编译时的多态性和运行时的多态性,比如函数重载和虚函数。

  (13)操作符个数

  解析: 本题考察的是运算符重载的概念,用户重新定义的运算符不改变原运算符的优先性和结合性,也不改变运算符的语法结构,也就是说重载运算符不会产生新的运算符。

  (14)cout<<′A′;

  解析: 本题考察的是C++语言的流输出操作。cout是C++语言定义好的输出流对象,其中包括成员函数put(char c),其功能是输出一个字符到屏幕,实际上C++语言中已经重载了操作符"<<"作为流输出操作符。

上一页456下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答