当前位置:学者斋 >

计算机 >计算机二级 >

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

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

计算机二级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)设有如下三个关系表
RST
ABCABC
m13m13
nn13
  下列操作中正确的是
  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)对下列二叉树
  进行中序遍历的结果是
  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; }
  };
  编译时发现有一处语法错误,对这个错误最准确的描述是
  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/jsj/erji/093g30.html