(21)执行下列程序段,结果是
#include
void main()
{ int x=40;
char y=′C′;
int n;
n=(x&0xff)&&(y>′B′);
cout << n;}
A)0
B)1
C)2
D)3
(22)关于this指针的说明不正确的是
A)不能在程序中修改this指针
B)this指针可以给其他指针赋值,但不能修改this指针
C)静态成员函数中没有this指针
D)this指针可以被赋值
(23)下面程序的结果是
#include
class A
{ public:
A(){cout << "construtA" << endl;}
virtual ~A(){cout << "destructA" << endl;}};
class B : public A
{ };
class C : public A
{ };
class D : public B,public C
{ };
void main()
{D d;}
A)constructA
destructA
B)constructA
constructA
destructA
destructA
C)constructA
constructA
constructA
destructA
destructA
destructA
D)constructA
constructA
constructA
constructA
destructA
destructA
destructA
destructA
(24)关于虚函数下面说的正确的是
A)若在重定义虚函数时使用了virtual,则该重定义函数还是虚函数
B)虚函数不能声明为友元
C)子类必须重定义父类的虚函数
D)虚函数不能是static的
(25)如果表达式++x/y中,++是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为
A)(operator++(x)).operator/(y)
B)(operator++(0)).operator/(y)
C)operator/((operator++(x,0)),y)
D)operator/((operator++(0)),y)
(26)要想使23.78965421的输出为23.7887应用的语句是
A)cout << 23.78965421;
B)cout << fixed << 23.78965421;
C)cout << 23.78965421 -0.001;
D)cout << fixed << 23.78965421 - 0.001;
(27)有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A)a[p-a]
B)*(&a[i])
C)p[i]
D)*(*(a+i))
(28)有以下程序
#include
float fun(int x,int y)
{ return(x+y); }
void main()
{ int a=2,b=5,c=8;
cout << fun((int)fun(a+c,b),a-c);}
程序运行后的输出结果是
A)编译出错
B)9
C)21
D)9.0
(29)下列程序的运行结果是
#include
class Location {
private:
int X, Y;
public:
void init(int=0, int=0);
void valueX( int val ){X=val;}
int valueX(){ return X;}
void valueY(int val){Y=val;}
int valueY( ){return Y;}};
void Location::init(int initX, int initY)
{ X=initX;
Y=initY;}
void main( )
{ Location A,B;
A.init( );
A.valueX (5);
cout < B.init(6,2);
B.valueY (4);
cout< A)5
0
6
4
B)0
0
6
4
C)5
0
6
2
D)0
0
6
2
(30)在C++语言中,封装是借助于什么达到的?
A)结构
B)类
C)数组
D)函数