计算机等级 百分网手机站

计算机二级C++考试测试卷及答案(2)

时间:2017-06-08 19:14:39 计算机等级 我要投稿

计算机二级C++考试测试卷及答案

  private:

  Sample():ref(0){}//②

  staticintva1=5;//③

  constintref;//④

  };

  上述程序段中,错误的语句是(  )。

  A.①B.②

  C.③D.④

  23.有如下程序:

  #include

  usingnamespacestd;

  classPoint{

  intX,Y;

  public

  point(intx1=0,inty1=O)tx(x1),y(y1){}

  intget(){returnx+y;}

  };

  classCircle{

  pointcenter;

  intradius;

  public

  circle(intCX,intcy,intr):center(cx,cy),radius(r)

  {}

  intget(){returncenter.get()+radius;)

  };

  intmain(){

  circlec(3,4,5);

  cout<  return0;

  }

  运行时的输出结果是(  )。

  A.5

  B.7

  C.9

  D.12

  24.若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是(  )。

  A.operatorlong()const;

  B.operatorlong(BigNumber);

  C.10ngoperatorlong()const;

  D.10ngoperatorlong(BigNumber);

  25.有如下函数模板定义:

  template

  T1FUN(T2n){returnn*5,0;}

  若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为(  )。

  A.FUN(9)

  B.FUN<9>

  C.FUN(9)

  D.FUN<9>(double)

  26.下列语句都是程序运行时的第一条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是(  )。

  A.cout<  B.cout<  C.cout<  D.cout<  27.下列关于析构函数的描述中,错误的是(  )。

  A.析构函数可以重载

  B.析构函数由系统自动调用

  C.每个对象的析构函数只被调用一次

  D.每个类都有析构函数

  28.下列关于构造函数的描述中,错误的是(  )。

  A.构造函数名与类名相同

  B.构造函数可以有返回值

  C.构造函数可以重载

  D.每个类都有构造函数

  29.若PAT是一个类,则程序运行时,语句“PAT(*ad){3};”调用PAT的构造函数的次数是(  )。

  A.0

  B.1

  C.2

  D.3

  30.有如下程序:

  ClassBase{

  public:

  intdata;

  };

  ClassDerived1:publicBase{};

  ClassDerived2:protectedBase{};

  intmain(){

  Derived1d1;

  Derived2d2;

  d1.data=0;//①

  d2.data=0;//②

  return0;

  }

  下列关于程序编译结果的描述中,正确的是(  )。

  A.①②皆无编译错误

  B.①有编译错误,②无编译错误

  C.①无编译错误,②有编译错误

  D.①②皆有编译错误

  31.有如下程序;

  #include

  usingnamespacestd;

  clasBasel{

  public:

  Basel(intd){cout<  -Basel(){}

  };

  classBase2{

  public:

  Base2(intd){out<  ~Base2(){}

  };

  classDerived:publicBase1,Base2{

  public:

  Derived(inta,intb,intC,intd):

  Basel(b),Base2(a),b1(d),b2(c){}

  private:

  intb1;

  intb2;

  };

  intmain(){

  Derivedd(1,2,3,4);

  return0;

  }

  运行时的输出结果是(  )。

  A.1234

  B.2134

  C.12

  D.21

  32.有如下程序:

  #include

  usingnamespacestd;

  classBase{

  public:

  virtualvoidfunctionl(){cout<<’0’;}

  voidfunction2(){out<<’1’;}

  };

  classDerived:publicBase{

  oublic:

  voidfunctionl(){cout<<’2’;}

  voidfunction2(){cout<<’3’;}

  };

  intmain(){

  Base*p=newDerived();

  p->functionl();

  p->function2();

  return0;

  }

  运行时的输出结果是(  )。

  A.01

  B.21

  C.03

  D.23

  33.有如下类模板定义:

  template

  classBigNumber{

  longn;

  public;

  BigNumber{Ti}:n(i){}

  BigNumberoperator+(BigNumberb){

  returnBigNumber{n+b.n);

  }

  };

  已知b1、b2是BigNumber的两个对象,则下列表达中踏误的是(  )。

  A.b1+b2

  B.b1+3

  C.3+b1

  D.3+3

  34.下列关于文件流的描述中,正确的是(  )。