(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="<