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

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

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

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

  一、选择题

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

  (1)栈和队列的共同特点是

  A)都是先进先出

  B)都是先进后出

  C)只允许在端点处插入和删除元素

  D)没有共同点

  (2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是

  A)acbed

  B)decab

  C)deabc

  D)cedba

  (3)链表不具有的特点是

  A)不必事先估计存储空间

  B)可随机访问任一元素

  C)插入删除不需要移动元素

  D)所需空间与线性表长度成正比

  (4)结构化程序设计的3种结构是

  A)顺序结构、选择结构、转移结构

  B)分支结构、等价结构、循环结构

  C)多分支结构、赋值结构、等价结构

  D)顺序结构、选择结构、循环结构

  (5)为了提高测试的效率,应该

  A)随机选取测试数据

  B)取一切可能的输入数据作为测试数据

  C)在完成编码以后制定软件的测试计划

  D)集中对付那些错误群集的程序

  (6)算法的时间复杂度是指

  A)执行算法程序所需要的时间

  B)算法程序的长度

  C)算法执行过程中所需要的基本运算次数

  D)算法程序中的指令条数

  (7)软件生命周期中所花费用最多的阶段是

  A)详细设计

  B)软件编码

  C)软件测试

  D)软件维护

  (8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为

  A)C

  B)Basic

  C)DDL

  D)DML

  (9)下列有关数据库的描述,正确的是

  A)数据库是一个DBF文件

  B)数据库是一个关系

  C)数据库是一个结构化的数据集合

  D)数据库是一组文件

  (10)下列有关数据库的描述,正确的是

  A)数据处理是将信息转化为数据的过程

  B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变

  C)关系中的每一列称为元组,一个元组就是一个字段

  D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字

  编辑推荐:

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

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

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

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

  (11)C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是

  A)增加了一些新的运算符

  B)允许函数重载,并允许设置缺省参数

  C)规定函数说明符必须用原型

  D)引进了类和对象的概念

  (12)下列哪个是C++语言的有效标识符?

  A)_No1

  B)No.1

  C)12345

  D)int

  (13)设有定义int x;float y;,则10+x+y值的数据类型是

  A)int

  B)double

  C)float

  D)不确定

  (14)下列程序的执行结果为

  #include

  void main()

  {

  int a=3,b=0;

  int *p=&a;

  b=+a++;

  cout<<*p<<","<  }

  A)3,4

  B)4,3

  C)3,4

  D)4,4

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

  #include

  void main()

  {

  for(int a=0,x=0;!x&&a<=10;a++)

  {

  a++;

  }

  cout<  }

  A)10

  B)11

  C)12

  D)0

  (16)下列选项,不正确的是

  A) for(int a=1;a<=10;a++);

  B) int a=1;

  do

  {

  a++;

  } while(a<=10)

  C)int a=1;

  while(a<=10)

  {

  a++;

  }

  D) for(int a=1;a<=10;a++)a++;

  (17)下面关于数组的初始化正确的是

  A)char str[]={′a′,′b′,′c′}

  B)char str[2]={′a′,′b′,′c′}

  C)char str[2][3]={{′a′,′b′},{′c′,′d′},{′e′,′f′}}

  D)char str()={′a′,′b′,′c′}

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

  #include

  void main()

  {

  char *a[]={"hello","the","world"};

  char **pa=a;

  pa++;

  cout<<*pa<  }

  A)hello

  B)the

  C)world

  D)hellotheworld

  (19)决定C++语言中函数的返回值类型的是

  A)return语句中的表达式类型

  B)调用该函数时系统随机产生的类型

  C)调用该函数时的主调用函数类型

  D)在定义该函数时所指定的数据类型

  (20)下列程序的输出结果是

  #include

  int min(int a,int b)

  {

  if (a  else return b;

  return 0;

  }

  void main()

  {

  cout<  }

  A)0

  B)1

  C)2

  D)3

  编辑推荐:

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

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

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

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

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

  #include

  void print(double a)

  {

  cout<<++a;

  }

  void print(int a,int b)

  {

  cout<  void main()

  {

  print(1.2);

  cout<<" ";

  print(3,4);

  }

  A)1.234

  B)2.234

  C)1.243

  D)2.243

  (22)对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是

  A)公有类型

  B)私有类型

  C)保护类型

  D)友元类型

  (23)在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是

  A)友元函数

  B)虚函数

  C)构造函数

  D)析构函数

  (24)类的析构函数的作用是

  A)一般成员函数的初始化

  B)类的初始化

  C)对象的初始化

  D)删除类创建的对象

  (25)下列说法正确的是

  A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方

  B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方

  C)类的内联函数必须在类体内定义

  D)类的内联函数必须在类体外通过加关键字inline定义

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

  A)静态数据成员可以在类体内进行初始化

  B)静态数据成员不可以被类的对象调用

  C)静态数据成员不能受private控制符的作用

  D)静态数据成员可以直接用类名调用

  (27)下面对于友元函数描述正确的是

  A)友元函数的实现必须在类的内部定义

  B)友元函数是类的成员函数

  C)友元函数破坏了类的封装性和隐藏性

  D)友元函数不能访问类的私有成员

  (28)在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是

  A)派生类的对象可以赋给基类的对象

  B)派生类的对象可以初始化基类的引用

  C)派生类的对象可以直接访问基类中的成员

  D)派生类的对象的地址可以赋给指向基类的指针

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

  #include

  class A

  {

  public: A(){cout<<"1";}

  ~A(){cout<<"2";}

  };

  class B:public A

  {

  public:

  B(){cout<<"3";}

  ~B(){cout<<"4";}

  };

  void main()

  {

  B b;

  }

  A)1234

  B)1324

  C)1342

  D)3142

  (30)下列关于虚基类的描述,错误的是

  A)设置虚基类的目的是为了消除二义性

  B)虚基类的构造函数在非虚基类之后调用

  C)若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用

  D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数

  编辑推荐:

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

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

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

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

  (31)下列关于多态性的描述,错误的是

  A)C++语言中的多态性分为编译时的多态性和运行时的多态性

  B)编译时的多态性可通过函数重载实现

  C)运行时的多态性可通过模板和虚函数实现

  D)实现运行时多态性的机制称为动态绑定

  (32)下列运算符中,在C++语言中不能重载的是

  A)*

  B)>=

  C)::

  D)/

  (33)当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为

  A)ios::in

  B)ios::out

  C)ios::in | ios::out

  D)以上都不对

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

  #include

  class A

  {

  int a;

  public:

  A(){a=0;}

  A(int aa)

  { a=aa;

  cout<  }

  };

  void main()

  {

  A x,y (2),z (3);

  cout<  }

  A)00

  B)23

  C)34

  D)25

  (35)下面程序的输出结果是

  #include

  class example

  {

  int a;

  public:

  example(int b){a=b++;}

  void print(){a=a+1; cout<

  编辑推荐:

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

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

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

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

  二、填空题

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

  (1)算法的基本特征是可行性、确定性、 1 和拥有足够的情报。

  (2)在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为 2 

  (3)在面向对象的程序设计中,类描述的是具有相似性质的一组 3 

  (4)通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 4 

  (5)数据库管理系统常见的数据模型有层次模型、网状模型和 5 3种。

  (6)在C++语言的结构化程序设计中, 6 是程序的基本组成单元;在C++语言的面向对象设计框架中, 7 是程序的基本组成单元。

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

  (8)C++语言提供的基本控制结构可以分为3种类型:顺序结构、 9 和循环结构。

  (9)C++语句const char *const p="hello";,所定义的指针p和它所指的内容都不能被 10 

  (10)C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取 11 方式。

  (11)对于下面定义的类MyClass,请在函数f()中添加对象成员把n的值修改为50。

  class MyClass

  {

  public:

  MyClass(int x){n = x;}

  void SetNum(int nl){n = nl;}

  private:

  int n;

  };

  int f()

  {

  MyC1ass *ptr = new MyClass(45);

  12

  }

  (12)继承的方式有公有继承、私有继承和 13 3种。

  (13)表达式operator+(x,y)还可以表示为 14 

  (14)类模板的使用实际上是将类模板实例化成一个具体的 15 

  编辑推荐:

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

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

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

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

参考答案及分析

  一、选择题

  (1)C

  解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种"后进先出"的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种"先进先出"的线性表。

  (2)D

  解析:依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子树由deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为d,右子树由ba构成,如下图所示。求得该二叉树的前序遍历序列为选项D)。

  (3)B

  解析:链表采用的是链式存储结构,它克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。但是链式存储结构也有不足之处:① 每个结点中的指针域需额外占用存储空间;② 链式存储结构是一种非随机存储结构。

  (4)D

  解析: 顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的3种基本结构。

  (5)D

  解析: 测试的目的是发现软件中的错误。经验表明,程序中存在错误的概率与该程序中已发现的错误数成正比。这一现象说明,为了提高测试效率,测试人员应该集中对付那些错误群集的程序。

  (6)C

  解析: 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。

  (7)D

  解析: 软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。

  (8)C

  解析: 选项A)、B)显然不合题意。数据定义语言(Data Definition Language,简称DDL)负责数据的模式定义与数据的物理存取构建;数据操纵语言(Data Manipulation Language,简称DML)负责数据的操纵,包括查询及增、删、改等操作。

  (9)C

  解析: 数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有"集成"、"共享"之特点。

  (10)D

  解析: 数据处理是指将数据转换成信息的过程,故选项A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C)叙述错误。

  (11)D

  解析: C++语言最重要的特点是其为一种面向对象的程序设计语言,但是C++语言也包含了全部的C语言的特征。

  (12)A

  解析: 标识符是一个以字母或下划线开始的,由字母、下划线和数字组成的字符串,标识符不能与任意关键字同名。

  (13)C

  解析: 由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转化为高类型,由低至高的顺序为int->float->double。

  (14)B

  解析: *p为所指对象a的值,语句"b=+a++;"等价于"b=b+a;a=a+1;"。

  (15)C

  解析: 在进入最后一次循环时a=10,在循环体内执行"a++;"后a=11,执行完该次循环体计算for循环的增量部分后a=12小于10,循环结束。

  (16)B

  解析: 本题考察的是基本循环语句的使用,选项A),C)和D)都为正确的形式,在选项B)中的while(a<=10)后缺少结束符分号";"。

  (17)A

  解析: 本题考察的是字符数组的初始化。选项B)中用3个元素初始化大小为2的数组,越界了;选项C)中应该是2行3列的数组,题中使用3行2列初始化;选项D)中数组合后应用方括号。

  (18)B

  解析: 本题主要考察的是指针数组和指向指针的指针之间的关系,其中a是指针数组,pa是指向指针数组行的指针,所以pa自加1相当于指向下一行。

  (19)D

  解析: C++语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。

  (20)B

  解析:本题考察的是函数的调用,第一次调用min(2,3),因为2<3,所以返回值为2,第二次调用min(1,2),因为1<2,所以返回1。

  (21)D

  解析: 本题考察的是对重载函数的掌握,因为++a是右结合的,所以a先自加1再输出,即为2.2,之后调用函数print(int a, int b)输出b和a,即43。

  (22)D

  解析: 所谓的访问控制只包含公有类型、私有类型和保护类型3种,友元可以是一个函数,也可以是一个类。

  (23)C

  解析: 构造函数在创建对象时系统自动调用,其功能是使用给定的值将对象初始化。

  (24)D

  解析: 析构函数就是用来释放对象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。

  (25)B

  解析: 本题考察的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加inline关键字,则编译器会将在类说明部分定义的任何函数都被认定为内联函数。

  (26)D

  解析: 静态数据成员必须在类体外初始化,它是类的所有对象的共有成员,需要使用类名调用,静态数据成员的初始化与权限控制无关。

  (27)C

  解析: 友元函数的定义既可以在类内部进行,也可以在类外部进行。它提高了程序的运行效率,但破坏了类的封装性和隐藏性,使得类的非成员函数可以访问类的私有成员。

  (28)C

  解析: 公有继承的派生类和基类是子类型的关系,所谓子类型是类型间一般和特殊的关系,即派生类是基类的子类型或者说基类的操作可以被用于操作派生类的对象。

  (29)C

  解析: 本题考察的是在继承中构造函数和析构函数的调用顺序,应该是先调用基类的构造函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用基类的析构函数。

  (30)B

  解析: 虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数选 于非虚基类的构造函数执行。

  (31)C

  解析:编译时的多态性是通过函数重载和模板体现的,运行时的多态性是通过虚函数体现的。

  (32)C

  解析: 不能被重载的运算符还包括:".",".*","->*"和"?:"。

  (33)D

  解析: 使用fstream类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。

  (34)B

  解析: 本题考察的是对构造函数的掌握,另外"++"运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。

  (35)C

  解析: "++"是右结合的,所以先赋值为3,最后输出3+1;常成员函数只有常对象才能调用,所以输出2。

  二、填空题

  (1)有穷性

  解析: 算法是指解题方案的准确而完整的描述。它有4个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。

  (2)log2n

  解析: 对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。

  (3)对象

  解析: 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。

  (4)软件生命周期

  解析: 软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。

  (5)关系模型

  解析: 数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。

  (6)函数~类

  解析: 函数是程序功能实现的主要方式,是实现结构化设计(将程序分成若干个函数实现)的基本组成; 类是一种用户定义的类型,是实现数据封装和数据抽象的工具,是面向对象设计中的基本组成。

  (7)2

  解析: 运算符++的优先级高于双目运算符/,所以括号中的运算为2/2,最后的结果为2/2*2。

  (8)选择结构

  解析: 顺序结构(也叫连续结构)和循环结构是经常被使用的,不过选择结构(if和switch)也是一种重要的流程控制结构。

  (9)改变

  解析: 本题考察的是定义常量的关键字const,由const定义的变量的值不可以再改变,所以定义时必须进行初始化。

  (10)传地址

  解析: 本题考察的是传值调用和传址调用的区别--传值调用只是进行值的简单复制,返回之后不会改变原来的值;而传址调用是把参数的地址传入,会改变原来的值。

  (11)ptr->SetNum(50);

  解析: 本题考察的是考生使用对象指针调用成员函数的能力,指针调用成员函数应该使用符号"->"。

  (12)保护继承

  解析: 继承性是面向对象程序设计中最重要的机制,用户可以根据不同的需要选择3种不同的继承方式。

  (13)x+y

  解析: 本题考察的是运算符函数的调用,可以像一般函数那样用函数名进行调用,也可通过运算符构成表达式的形式进行调用。

  (14)类

  解析: 本题考察的是类模板的使用方式,就是把类模板的一般化定义实例化为一个真正的类。

  编辑推荐:

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

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

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

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





相关阅读



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