2017年全国计算机等级考试二级C++模拟试题(12)

日期:03-01| http://www.59wj.com |二级C++模拟试题|人气:598

2017年全国计算机等级考试二级C++模拟试题(12)

  笔试部分

  一、选择题

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

  A)GEDHFBCA

  B)DGEBHFCA

  C)ABCDEFGH

  D)ACBFEDHG

  【参考答案】 B

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

  A)有且只有1 B)1或多于1 C)0或1 D)至少2

  【参考答案】 A

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

  A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D)任意顺序

  【参考答案】 B

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

  A)不限制goto语句的使用 B)减少或取消注解行

  C)程序越短越好 D)程序结构应有助于读者理解

  【参考答案】 D

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

  A)对象成分 B)变量成分 C)语句成分 D)传输成分

  【参考答案】 D

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

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

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

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

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

  【参考答案】 D

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

  A)工具 B)过程 C)方法 D)环境

  【参考答案】 D

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

  A)外模式 B)概念模式 C)内模式 D)存储模式

  【参考答案】 A

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

  A)属性 B)关系 C)键 D)域

  【参考答案】 B

  10.SQL语言又称为

  A)结构化定义语言 B)结构化控制语言 C)结构化查询语言 D)结构化操纵语言

  【参考答案】 C

  .
               www.59wj.com

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

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

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

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

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

  【参考答案】 A

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

  A)public operator this B)shod string static

  C)it while >= D)private cout printf

  【参考答案】 A

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

  A)2 B)0 C)-2 D)1

  【参考答案】 B

  14.下列描述正确的是

  A)表示m>n为true或mn&&m

  B)switch语句结构中必须有default语句

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

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

  【参考答案】 D

  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;

  【参考答案】 A
  .
               www.59wj.com

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

  A)break可以用于循环体内

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

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

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

  【参考答案】 D

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

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

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

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

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

  【参考答案】 D

  18.下面程序错误的语句是

  ① #include

  ② void main()

  ③ {

  ④ int *p=new int[1];

  ⑤ p=9;

  ⑥ cout <<*p<

  ⑦ delete []p;

  ⑧ }

  A)④      B)⑤      C)⑥      D)⑦

  【参考答案】 B

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

  A)void      B)int      C)new      D)long

  【参考答案】 C

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

  A)参数个数    B)参数类型

  C)函数类型    D)函数名称

  【参考答案】 D

  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

  【参考答案】 D
  .
               www.59wj.com

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

  A)数据的规范化        B)便于数据转换

  C)避免数据丢失        D)防止不同模块之间数据的非法访问

  【参考答案】 D

  23.以下程序中,错误的行为

  (1) #include

  (2) ClassA

  (3) {

  (4) public:

  (5) int n=2;

  (6) A(int val){cout<

  (7) ~A( ){}

  (8) };

  (9) void main( )

  (10) {

  (11) Aa(o);

  (12) }

  A)(5)       B)(6)       C)(7)       D)(11)

  【参考答案】 A

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

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

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

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

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

  【参考答案】 A

  .
               www.59wj.com

  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

  【参考答案】 C

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

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

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

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

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

  【参考答案】 A

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

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

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

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

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

  【参考答案】 D

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

  A)私有继承的公有成员    B)公有继承的私有成员

  C)公有继承的保护成员    D)公有继承的公有成员

  【参考答案】 D

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

  A)abc      B)acb      C)cab      D)cba

  【参考答案】 A

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

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

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

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

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

  【参考答案】 B
  .
               www.59wj.com

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

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

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

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

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

  【参考答案】 A

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

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

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

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

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

  【参考答案】 A

  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

  【参考答案】 C
  .
               www.59wj.com

  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)1212B)1221C)2112D)2121

  【参考答案】 D

  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

  【参考答案】 C
  .
               www.59wj.com

  二、填空题

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

  【参考答案】

  【1】存储结构

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

  【参考答案】

  【2】继承

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

  【参考答案】

  【3】内聚

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

  【参考答案】

  【4】一对多或1∶N

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

  【参考答案】

  【5】数据库概念设计阶段

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

  【参考答案】

  【6】编译

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

  【参考答案】

  【7】2

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

  #include

  void main()

  { int num=0,i=8;

  do{

  i--;

  num++;

  }while(--i);

  cout<

  【参考答案】
  .
               www.59wj.com

  【8】4

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

  【参考答案】

  【9】动态

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

  #include

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

  {

  cout<

  }

  void main()

  {

  fun (5);

  }

  【参考答案】

  【10】50

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

  【参考答案】

  【11】成员选择运算符 【12】成员访问运算符

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

  【参考答案】

  【12】运行时

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

  【参考答案】

  【13】操作符个数

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

  【参考答案】

  【14】cout<<′A′;)
  .
               www.59wj.com

  上机部分

  一、改错题

  使用VC6打开考生文件夹下的工程kt12_1,此工程包含一个源程序文件kt12_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为:

  100

  源程序文件kt12_1.cpp清单如下:

  #include

  template

  classpair

  { Tvalue1,value2;

  public:

  pair(Tfirst,Tsecond)

  {value1=first;value2=second;}

  /*****************found*****************/

  chargetmax(); };

  /*****************found*****************/

  Tpair::getmax()

  { Tretval;

  /*****************found*****************/

  retval=value1>value2??value1:value2;

  returnretval; }

  voidmain()

  { pairmyobject(100,75);

  cout<

  【参考答案】

  (1)将char getmax ();改为:T getmax ();

  (2)缺少模板的声明,应改为:template

  (3)将retval = value1>value2?? value1 : value2;

  改为:retval = value1>value2? value1 : value2;
  .
如果觉得《2017年全国计算机等级考试二级C++模拟试题(12)》二级C++模拟试题,jsj不错,可以推荐给好友哦。

本文Tags: 计算机等级考试 - 模拟试题 - 计算机二级模拟试题 - 二级C++模拟试题,jsj,
在百度中搜索相关文章:2017年全国计算机等级考试二级C++模拟试题(12)
在谷歌中搜索相关文章:2017年全国计算机等级考试二级C++模拟试题(12)
在soso中搜索相关文章:2017年全国计算机等级考试二级C++模拟试题(12)
在搜狗中搜索相关文章:2017年全国计算机等级考试二级C++模拟试题(12)
相关分类导航|
热门推荐|