试题 百分网手机站

计算机二级C++语言笔试试卷及答案

时间:2020-10-18 14:41:00 试题 我要投稿

计算机二级C++语言笔试试卷及答案

  本文是2016年全国计算机等级考试二级C++语言的笔试试卷,希望对各位考生有一定的帮助!
  一、选择题((1)~(35)每小题2分,共70分)
  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
  (1)下列选项中不符合良好程序设计风格的是
  A)源程序要文档化 B)数据说明的次序要规范化
  C)避免滥用goto语句 D)模块设计要保证高耦合、高内聚
  (2)从工程管理角度,软件设计一般分为两步完成,它们是
  A)概要设计与详细设计 B)数据设计与接口设计
  C)软件结构设计与数据设计 D)过程设计与数据设计
  (3)下列选项中不属于软件生命周期开发阶段任务的是
  A)软件测试 B)概要设计 C)软件维护 D)详细设计
  (4)在数据库系统中,用户所见的数据模式为
  A)概念模式 B)外模式 C)内模式 D)物理模式
  (5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和
  A)编码设计 B)测试阶段 C)运行阶段 D)物理设计
  (6)设有如下三个关系表
   R   S     T    
  A   B C   A B C  
  m   1 3   m 1 3  
  n         n 1 3  
                   
  下列操作中正确的是
  A)T=R∩S B)T=R∪S
  C)T=R×S D)T=R/S
  (7)下列叙述中正确的是
  A)一个算法的空间复杂度大,则其时间复杂度也必定大
  B)一个算法的空间复杂度大,则其时间复杂度必定小
  C)一个算法的时间复杂度大,则其空间复杂度必定小
  D)上述三种说法都不对
  (8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为
  A)63 B)64 C)6 D)7
  (9)数据库技术的根本目标是要解决数据的
  A)存储问题 B)共享问题 C)安全问题 D)保护问题
  (10)对下列二叉树
计算机二级C++语言笔试试卷及答案
  进行中序遍历的结果是
  A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG
  (11)下列有关内联函数的叙述中,正确的是
  A)内联函数在调用时发生控制转移
  B)内联函数必须通过关键字inline来定义
  C)内联函数是通过编译器来实现的
  D)内联函数函数体的最后一条语句必须是return语句
  (12)下列情况中,不会调用拷贝构造函数的是
  A)用一个对象去初始化同一类的另一个新对象时
  B)将类的一个对象赋值给该类的另一个对象时
  C)函数的形参是类的对象,调用函数进行形参和实参结合时
  D)函数的返回值是类的对象,函数执行返回调用时
  (13)下列有关继承和派生的叙述中,正确的是
  A)如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员
  B)派生类的成员函数可以访问基类的所有成员
  C)基类对象可以赋值给派生类对象
  D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
  (14)下列运算符不能重载为友元函数的是
  A)= () [ ] -> B)+ - ++ --
  C)> < >= <= D)+= -= *= /=
  (15)关于在调用模板函数时模板实参的使用,下列表述正确的是
  A)对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略
  B)对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略
  C)对于虚拟类型参数所对应的模板实参,若能够省略则必须省略
  D)对于常规参数所对应的模板实参,任何情况下都不能省略
  (16)下列关于输入流类成员函数getline()的描述中,错误的.是
  A)该函数是用来读取键盘输入的字符串的
  B)该函数读取的字符串长度是受限制的
  C)该函数读取字符串时,遇到终止符便停止
  D)该函数读取字符串时,可以包含空格
  (17)下列符号中,正确的C++标识符是
  A)enum B)2b C)foo-9 D)_32
  (18)下列语句中,错误的是
  A)const int buffer=256; B)const double *point;
  C)int const buffer=256; D)double * const point;
  (19)if语句的语法格式可描述为:
  格式1:if(<条件>) <语句>
  或
  格式2:if(<条件>) <语句1> else <语句2>
  关于上面的语法格式,下列表述中错误的是
  A)<条件>部分可以是一个if语句,例如if(if(a==0) …) …
  B)<语句>部分可以是一个if语句,例如if(…) if(…) …
  C)如果在<条件>前加上逻辑非运算符!并交换 <语句1> 和 <语句2> 的位置,语句功能不变
  D)<语句>部分可以是一个循环语句,例如if(…) while(…) …
  (20)有如下说明
  int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
  则数值为9的表达式是
  A)*p+9 B)*(p+8) C)*p+=9 D)p+8
  (21)若有下面的函数调用:
  fun(a+b, 3, max(n-1, b))
  则fun的实参个数是
  A)3 B)4 C)5 D)6
  (22)以下关键字不能用来声明类的访问权限的是
  A)public B)static C)protected D)private
  (23)在公有继承的情况下,允许派生类直接访问的基类成员包括
  A)公有成员 B)公有成员和保护成员
  C)公有成员、保护成员和私有成员 D)保护成员
  (24)关于运算符重载,下列表述中正确的是
  A)C++已有的任何运算符都可以重载
  B)运算符函数的返回类型不能声明为基本数据类型
  C)在类型转换符函数的定义中不需要声明返回类型
  D)可以通过运算符重载来创建C++中原来没有的运算符
  (25)关于关键字class和typename,下列表述中正确的是
  A)程序中的typename都可以替换为class
  B)程序中的class都可以替换为typename
  C)在模板形参表中只能用typename来声明参数的类型
  D)在模板形参表中只能用class或typename来声明参数的类型
  (26)有如下程序
  #include
  #include
  using namespace std;
  int main( ){
  cout< cout<<12.345<<___________<<34.567;
  return 0;
  }
  若程序的输出是:
  **12.345**34.567
  则程序中下划线处遗漏的操作符是
  A)setprecision(3) B)fixed C)setfill('*') D)setw(8)
  (27)有如下程序
  #include
  #include
  using namespace std;
  class MyClass{
  public:
  MyClass( ){ cout<<'A'; }
  MyClass(char c){ cout< ~MyClass( ){ cout<<'B'; }
  };
  int main( ){
  MyClass p1,*p2;
  p2=new MyClass('X');
  delete p2 ;
  return 0;
  }
  执行这个程序屏幕上将显示输出
  A)ABX B)ABXB C)AXB D)AXBB
  (28)有如下程序
  #include
  using namespace std;
  int i=1;
  class Fun{
  public:
  static int i;
  int value( ){ return i-1;}
  int value( )const{ return i+1;}
  };
  int Fun::i=2;
  int main( ){
  int i=3;
  Fun fun1;
  const Fun fun2;
  ____________
  return 0;
  }
  若程序的输出结果是:
  123
  则程序中下划线处遗漏的语句是
  A)cout<
  B)cout<
  C)cout<
  D)cout<
  (29)有如下程序:
  #include
  using namespace std;
  class Obj{
  static int i;
  public:
  Obj( ){ i++; }
  ~Obj( ){ i--; }
  static int getVal( ){ return i;}
  };
  int Obj::i=0;
  void f(){Obj ob2; cout
  Obj ob1;
  f( );
  Obj *ob3=new Obj; cout
  delete ob3; cout< return 0;
  }
  程序的输出结果是
  A)232 B)231 C)222 D)221
  (30)有如下程序
  #include
  using namespace std;
  class Base {
  protected:
  Base( ){ cout<<'A'; }
  Base(char c){ cout<};
  class Derived: public Base{
  public:
  Derived( char c ){ cout<};
  int main( ){
  Derived d1('B');
  return 0;
  }
  执行这个程序屏幕上将显示输出
  A)B B)BA C)AB D)BB
  (31)有如下类定义:
  class MyBase{
  int k;
  public:
  MyBase(int n=0):k(n){ }
  int value( )const{ return k;}
  };
  class MyDerived: MyBase{
  int j;
  public:
  MyDerived(int i): j(i) {}
  int getK( )const{ return k; }
  int getJ( )const{ return j; }
  };
  编译时发现有一处语法错误,对这个错误最准确的描述是