无忧首页企业系统我的无忧
无忧服务:
兼职活动培训
娱乐交友:
交友社区资讯
全职实习:
实习暑假寒假
微信号:school51
扫一下,立即关注
加关注
在线支付,立省10元
下载新版APP
===大学生成长生活平台===

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

2012-12-26来源/作者:卫凯点击次数:514

全国计算机等级考试二级C++笔试模拟试题(七)

  一、选择题

  在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

  (1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为

  A)GEDHFBCA

  B)DGEBHFCA

  C)ABCDEFGH

  D)ACBFEDHG

  (2)树是结点的集合,它的根结点数目是

  A)有且只有1

  B)1或多于1

  C)0或1

  D)至少2

  (3)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是

  A)e3,e1,e4,e2

  B)e2,e4,e3,e1

  C)e3,e4,e1,e2

  D)任意顺序

  (4)在设计程序时,应采纳的原则之一是

  A)不限制goto语句的使用

  B)减少或取消注解行

  C)程序越短越好

  D)程序结构应有助于读者理解

  (5)程序设计语言的基本成分是数据成分、运算成分、控制成分和

  A)对象成分

  B)变量成分

  C)语句成分

  D)传输成分

  (6)下列叙述中,不属于软件需求规格说明书的作用的是

  A)便于用户、开发人员进行理解和交流

  B)反映出用户问题的结构,可以作为软件开发工作的基础和依据

  C)作为确认测试和验收的依据

  D)便于开发人员进行需求分析

  (7)下列不属于软件工程的3个要素的是

  A)工具

  B)过程

  C)方法

  D)环境

  (8)单个用户使用的数据视图的描述称为

  A)外模式

  B)概念模式

  C)内模式

  D)存储模式

  (9)将E-R图转换到关系模式时,实体与联系都可以表示成

  A)属性

  B)关系

  C)键

  D)域

  (10)SQL语言又称为

  A)结构化定义语言

  B)结构化控制语言

  C)结构化查询语言

  D)结构化操纵语言

  编辑推荐:

  2012年计算机二级C++考点归纳汇总

  2011年全国计算机等级考试二级C++模拟试题及答案汇总

  2011年计算机等级考试二级C++冲刺全真模拟试题及答案汇总

  2011年计算机二级C++辅导实例编程汇总

  (11)下面关于类和对象的描述中,错误的是

  A)类就是C语言中的结构体类型,对象就是C语言中的结构体变量

  B)类和对象之间的关系是抽象和具体的关系

  C)对象是类的实例,一个对象必须属于一个已知的类

  D)类是具有共同行为的若干对象的统一描述体

  (12)以下各选项组中,均是C++语言关键字的组是

  A)public operator this

  B)shod string static

  C)it while >=

  D)private cout printf

  (13)设int a=10,b=11,c=12;,表达式(a+b)  A)2

  B)0

  C)-2

  D)1

  (14)下列描述正确的是

  A)表示m>n为true或mn&&m  B)switch语句结构中必须有default语句

  C)if语句结构中必须有else语句

  D)如果至少有一个操作数为true,则包含"||"运算符的表达式为true

  (15)下列语句中不是死循环的是

  A)int i=10;

  while (1)

  {

  i--;

  if(i==1)break;

  }

  B)for(int i=1;i<10;i++)

  {

  i--;

  }

  C)int i=0;

  do{

  i++;

  }while(i>=0);

  D)int i=1;

  for(;;)i=i+1;

  (16)下面关于break语句的描述中,不正确的是

  A)break可以用于循环体内

  B)break语句可以在for循环语句中出现多次

  C)break语句可以在switch语句中出现多次

  D)break语句可用于if条件判断语句内

  (17)下面关于数组的描述错误的是

  A)在C++语言中数组的名字就是指向该数组第一个元素的指针

  B)长度为n的数组,下标的范围是0~n-1

  C)数组的大小必须在编译时确定

  D)数组只能通过值参数和引用参数两种方式传递给函数

  (18)下面程序错误的语句是

  ① #include

  ② void main()

  ③ {

  ④ int *p=new int[1];

  ⑤ p=9;

  ⑥ cout <<*p<  ⑦ delete []p;

  ⑧ }

  A)④

  B)⑤

  C)⑥

  D)⑦

  (19)下面的哪个选项不能作为函数的返回类型?

  A)void

  B)int

  C)new

  D)long

  (20)不能作为重载函数的调用的依据是

  A)参数个数

  B)参数类型

  C)函数类型

  D)函数名称

  编辑推荐:

  2012年计算机二级C++考点归纳汇总

  2011年全国计算机等级考试二级C++模拟试题及答案汇总

  2011年计算机等级考试二级C++冲刺全真模拟试题及答案汇总

  2011年计算机二级C++辅导实例编程汇总

  (21)下列程序的输出结果为

  #include

  int func(int n)

  {

  if (n<1)return 1;

  else return n+func(n-1);

  return 0;

  }

  void main()

  {

  cout<  }

  A)0

  B)10

  C)15

  D)16

  (22)在C++语言中,数据封装要解决的问题是

  A)数据的规范化

  B)便于数据转换

  C)避免数据丢失

  D)防止不同模块之间数据的非法访问

  (24)对类的构造函数和析构函数描述正确的是

  A)构造函数可以重载,析构函数不能重载

  B)构造函数不能重载,析构函数可以重载

  C)构造函数可以重载,析构函数也可以重载

  D)构造函数不能重载,析构函数也不能重载

  (25)下面程序的运行结果为

  #include

  class A

  {

  int num;

  public:

  A(int i){num=i;}

  A(A &a){num=a.num++;}

  void print(){cout<  };

  void main()

  {

  A a (1),b(a);

  a.print();

  b.print();

  }

  A)11

  B)12

  C)21

  D)22

  (26)下面对静态数据成员的描述中,正确的是

  A)静态数据成员是类的所有对象共享的数据

  B)类的每个对象都有自己的静态数据成员

  C)类的不同对象有不同的静态数据成员值

  D)静态数据成员不能通过类的对象调用

  (27)如果类A被说明成类B的友元,则

  A)类A的成员即类B的成员

  B)类B的成员即类A的成员

  C)类A的成员函数不得访问类B的成员

  D)类B不一定是类A的友元

  (28)可以用p.a的形式访问派生类对象p的基类成员a,其中a是

  A)私有继承的公有成员

  B)公有继承的私有成员

  C)公有继承的保护成员

  D)公有继承的公有成员

  (29)建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为

  A)abc

  B)acb

  C)cab

  D)cba

  (30)下面关于虚函数的描述,错误的是

  A)在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数

  B)基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数

  C)虚函数可以是另一个类的友元函数,但不能是静态成员函数

  D)基类中说明的纯虚函数在其任何派生类中都必须实现

  编辑推荐:

  2012年计算机二级C++考点归纳汇总

  2011年全国计算机等级考试二级C++模拟试题及答案汇总

  2011年计算机等级考试二级C++冲刺全真模拟试题及答案汇总

  2011年计算机二级C++辅导实例编程汇总

  (31)下面关于模板的描述,错误的是

  A)函数模板和类模板的参数可以是任意的数据类型

  B)类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用

  C)函数模板不能直接使用,需要实例化为模板函数后才能使用

  D)类模板的成员函数都是模板函数

  (32)语句ofstream f("SALARY.DAT",ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且

  A)若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

  B)若文件存在,将其置为空文件;若文件不存在,打开失败

  C)若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件

  D)若文件存在,打开失败;若文件不存在,建立一个新文件

  (33)下面程序的运行结果是

  #include

  void main()

  {

  int num=1;

  int &ref=num;

  ref=ref+2;

  cout <  num=num+3;

  cout <  }

  A)13

  B)16

  C)36

  D)33

  (34)下面程序的运行结果是

  #include

  void fun(int *a,int *b)

  {

  int x=*a;

  *a=*b; *b=x;

  cout<<*a<<*b<<" ";

  }

  void main()

  {

  int x=1, y=2;

  fun(&x,&y);

  cout<  }

  A)1212

  B)1221

  C)2112

  D)2121

  (35)下列程序的运行结果为

  #include

  int i=0;

  class A{

  public:

  A(){i++;}

  };

  void main()

  {

  A a,b[3],*c;

  c=b;

  cout<  }

  A)2

  B)3

  C)4

  D)5

  编辑推荐:

  2012年计算机二级C++考点归纳汇总

  2011年全国计算机等级考试二级C++模拟试题及答案汇总

  2011年计算机等级考试二级C++冲刺全真模拟试题及答案汇总

  2011年计算机二级C++辅导实例编程汇总

  二、填空题

  请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。

  (1)数据结构分为逻辑结构与存储结构,线性链表属于 1 。

  (2)在面向对象方法中,类之间共享属性和操作的机制称为 2 。

  (3)耦合和内聚是评价模块独立性的两个主要标准,其中 3 反映了模块内各成分之间的联系。

  (4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于 4 的联系。

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

  (6)开发一个C++语言程序的步骤通常包括编辑、 6 、链接、运行和调试。

  (7)假设int a=1,b=2;则表达式a+++--b的值为 7 。

  (8)下面程序的输出结果为 8 。

  #include

  void main()

  {

  int num=0,i=8;

  do{

  i--;

  num++;

  }while(--i);

  cout<  }

  (9)通过使用new和delete两个运算符进行的分配为 9 存储分配。

  (10)下面程序的运行结果为 10 。

  #include

  void fun(int x=0,int y=0)

  {

  cout<  }

  void main()

  {

  fun (5);

  }

  (11)在C++语言中,访问一个对象的成员所用的运算符是 11 ,访问一个指针所指向的对象的成员所用的运算符是 12 。

  (12)C++语言支持的两种多态性分别是编译时的多态性和 13 的多态性。

  (13)重载的运算符保持其原有的 14 、优先级和结合性不变。

  (14)cout.put(′A′);,还可以表示为 15 。

  编辑推荐:

  2012年计算机二级C++考点归纳汇总

  2011年全国计算机等级考试二级C++模拟试题及答案汇总

  2011年计算机等级考试二级C++冲刺全真模拟试题及答案汇总

  2011年计算机二级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(先赋值再自加)。

  (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++语言中已经重载了操作符"<<"作为流输出操作符。

  编辑推荐:

  2012年计算机二级C++考点归纳汇总

  2011年全国计算机等级考试二级C++模拟试题及答案汇总

  2011年计算机等级考试二级C++冲刺全真模拟试题及答案汇总

  2011年计算机二级C++辅导实例编程汇总





相关阅读



关于我们 | 联系我们 | 用户指南 | 网站地图 | 意见建议 | 会员注册 | 用户协议 | 隐私政策