大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C++技巧 > 2014年计算机二级考试C++强化通关卷及答案2

2014年计算机二级考试C++强化通关卷及答案2(3)

关键词:计算机二级C++考试真题  阅读(2780) 赞(12)

[摘要]本文是2014年计算机二级考试C++强化通关卷及答案,与大家分享。
第 1 页:单选
第 5 页:程序改错、简单应用
第 6 页:综合应用
第 7 页:参考答案

  21.有如下程序:

  #include

  usingnamespacestd;

  voidf1(int&X,int&y){intz=X;x=y;y=z}

  voidf2(intX,inty){intz=x;x=y;y=z}

  intmain(  ){

  intx=10,y=26

  f1(x,y);

  f2(X,y);

  cout<  return0;

  }

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

  A.10

  B.16

  C.26

  D.36

  22.有如下程序:

  #include

  usingnamespacestd;

  classXA{

  inta;

  public:

  staticintb;

  XA(intaa):a(aa){b++;}

  ~XA(){}

  intget(){returna;}

  };

  intXA::b=0

  intmain(){

  XAdl(1),d2(3);

  cout<  return0;

  }

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

  A.5

  B.6

  C.7

  D.8

  23.有如下类定义:

  classB{

  public:voidfunl(){}

  privace:voidfun2(){}

  protected:voidfun3(){}

  };

  classD:publicB{

  protected:voidfun4(){}

  };

  若obj是类D的对象,则下列语句中不违反访问控制权限的是(  )。

  A.obj.fun1();

  B.obj.fun2();

  C.obj.fun3();

  D.obj.fun4();

  24.有如下类定义:

  classMyClass(

  public:

  ____

  private:

  intdata;

  };

  若要为Myclass类重载流输入运算符>>,使得程序中可以“cin>>obj;”形式输入MyClasS类的对象obj,则横线处的声明语句应为(  )。

  A.friendistream&operator>>(istream&is,MyClass&a);

  B.friendistream&operator>>(istream&is,MyClassa);

  C.istream&operalor>>(istream&is,MyClass&a);

  D.istream&operator>>(istream&is,Myclassa);

  25.已知主函数中通过如下语句序列实觋对函数模板swap的调用:

  inta[10],b[1O];

  swap(a,b,10);

  下列对函数模板swap的声明中,会导致上述语句序列发生编译错误的是(  )。

  A.template

  voidswap(Ta[],Tb[],intsize);

  B.template

  voidswap(intsize,Ta[],Tb[]);

  C.template

  voidswap(T1a[],T2b[],intsize);

  D.template

  voidswap(T1a[],T2b[],intsize);

  26.若目前D盘根目录下并不存在test.txt文件,则下列打开文件方式不会自动创建test,txt文件的是(  )。

  A.ifstreamfin;fin.open("d:\\test.txt",iso_base::in);

  B.fstreamfi0;ri0.open("d:\\test.txt",is0_base::out);

  C.ofstream。fort;lout.open("d:\\test.txt",ios_base::out);

  D.ofstreamfout;fout.open("d:\\test.txt",is0_base::app);

  27.已知类MyClass的定义如下:

  classMyClass{

  public:

  voidfunctionl(MyClass&c){out<  statievoidfunction2(MyClas&c){cout<  voidfunction3(){out<  statiCvoidfunction4(){COut<  private:

  intdata;

  }:

  其中有编译错误的函数是(  )。

  A.function1

  B.function2

  C.function3

  D.function4

  28.有如下程序:

  #include

  Usingnamespacestd;

  ClassMyClass{

  Public:

  MyClass(){cout<<’*’;}

  MyClass(MyClass&a){cout<<’#’;}

  ~MyClass(){cout<<’@’;}

  };

  intmain(){

  MyClassa;

  MyClassb(a);Return0;

  }

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

  A.*@#@

  B.#@*@

  C.*#@@

  D.#*@@

  29.已知类MyClass的定义如下:

  ClassMyClass{

  public:

  MyClass(intd){data=d;}

  ~MyClass(){}

  private:

  intdata;

  };

  下列对MyClass类对象数组的定义和初始化语句中,正确的是(  )。

  A.MyClassarray[2];

  B.MyClassarray[2]={MyClass(5)};

  C.MyClassarray[2]={MyClass(5),Myclass(6)};

  D.MyClass*array=newMyClass[2];

  30.下列描述中,错误的是(  )。

  A.公有继承时基类中的公有成员在派生类中仍是公有成员

  B.公有继承时基类中的保护成员在派生类中仍是保护成员

  C.保护继承时基类中的公有成员在派生类中仍是公有成员

  D.保护继承时基类中的保护成员在派生类中仍是保护成员



相关评论