就业数据资源平台
当前位置:首页 > C++语言程序设计
2012年计算机二级C++第二套笔试模拟试题及答案解析(3)

(21)下列定义中p指向的地址可更改,但*p不能够更改的是

  A)const int *p;


  B)int * const p;


  C)const int *const p;


  D)int *p;


  (22)下面的语句中错误的是


  A)int a = 5; int x[a];


  B)const int a = 5; int x[a];


  C)int n = 5; int *p = new int [a];


  D)const int n = 5; int *p = new int [a];


  (23)下面程序的结果是


  #include


  class A


  {


  int a;


  public:


  A():a (1){}


  void showa(){cout << a;}


  };


  class B


  {


  int a;


  public:


  B():a (2){}


  void showa(){cout << a;}


  };


  class C : public A, public B


  {


  int a;


  public:


  C():a (3){}


  void showa(){cout << a;}


  };


  void main()


  {


  C c;


  c.showa();


  }


  A)1


  B)2


  C)3


  D)程序有错误


  (24)关于二义性的描述错误的是


  A)一个子类的两个父类中都有某个同名成员,在子类中对该成员访问可能出现二义性


  B)解决二义性可以用对成员名的限定法


  C)父类和子类中同时出现同名函数,也可能存在二义性


  D)一个子类是从两个父类派生出来的,而这两个父类又有一个共同的父类,对该父类成员进行访问时,可能出现二义性


  (25)如果表达式x*y+z中,"*"是作为友元函数重载的,"+"是作为友元函数重载的,则该表达式还可为


  A)operator+( operator*(x, y),z)


  B)x.operator+( operator*(x, y),z)


  C)y.operator*( operator+(x, y),z)


  D)x.operator+( operator*(x, y))


  (26)函数模板:template


  T add(T x,T y){return x+y;}


  下列对add函数的调用不正确的是


  A)add<>(1,2)


  B)add(1,2)


  C)add(1.0,2)


  D)add(1.0,2.0)


  (27)对于语句cout << setfill(′*′)<< setw(10)<< 1 << setfill(′*′)<< setw (2)<< 2;的输出结果是


  A)*********1*2


  B)********12


  C)*******1*2


  D)12********


  (28)this指针是C++语言实现什么的一种机制?


  A)抽象


  B)封装


  C)继承


  D)重载


  (29)有如下程序


  #include


  int func(int a,int b)


  { return(a+b);}


  void main()


  { int x=2,y=5,z=8,r;


  r=func(func(x,y),z);


  cout << r;


  }


  该程序的输出的结果是


  A)12


  B)13


  C)14


  D)15


  (30)下列程序的输出结果是


  #include


  class Myclass{


  public:Myclass(int i=0,int j=0)


  { x=i;


  y=j;


  }


  void show(){cout<<"x="<

就业数据资源平台