{ i++;
if (i==10) break; if(i%2==0) cout<<’*’; }
执行这个程序段输出字符*的个数是(C) A. 10 B. 3 C. 4 D.5 22. 下列关于虚基类的描述中,错误的是(C) A. 使用虚基类可以消除由多继承产生的二义性 B. 构造派生类对象时,虚基类的构造函数只被调用一次 C. 声明 class B:virtual public A 说明类B为虚基类 D. 建立派生类对象时,首先调用虚基类的构造函数 23. 有下类定义
Class A { Char *a; Public: A():a(0){}
A(char *aa) {//把aa所指字符串拷贝到a所指向的存储空间 A=___________________; Strcpy(a,aa); ~A() {delete [] a;} };
正确的选择是(A)
A. new char[strlen(aa)+1] B. char[strlen(aa)+1] C. char[strlen(aa)] D. new char[sizeof(aa)-1]
24. 假定AA为一个类,a为该类私有的数据成员,GetValue( )为该类公有函数成员,
它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( X )。 A) x.a B) x.a() C) x->GetValue() D) x.GetValue( ) 25. 假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外
定义,则函数头为( A )。
A) int AA::a( ) B) int AA:a()
6
6
C) AA::a() D) AA::int a() 26. 有如下程序:
#include
~Test(){cout<<'#';} };
int main(){
Test temp[2], *pTemp[2]; return 0; }
执行这个程序输出星号(#)的个数为(B )。 A)1 B)2 C)3 D)4 27. 有如下程序:
#include
MyClass(int i=0){cout<<1;} MyClass(const MyClass&x){cout<<2;}
MyClass& operator=(const MyClass&x){cout<<3; return *this;} ~MyClass(){cout<<4;} };
int main(){
MyClass obj1(1),obj2(2),obj3(obj1); obj1=obj2; return 0;
}运行时的输出结果是( A)。
A)1123444 B)11114444 C)121444 D)11314444 28. 有如下程序:
7
7
#include
static int number; public:
point() { number++;} ~point() {number--;} };
int point::number=0; void main() { point *ptr; point A,B; { point *ptr_point=new point[3]; ptr=ptr_point;
}
point C; delete[] ptr; cout< 程序结果为(A) A)3 B)4 C)6 D)7 29. 友元运算符obj++被C++编译器解释为( D )。 A. operator++(obj) B. operator++(obj,0) B. obj.operator++( ) D. obj.operator++(0) 二、程序填空 1.用递归法求从1到n的立方和: f(1)=1 (n=1) f(n)=f(n-1)+n3 (n>1) 8 8 #include cout<<\ cin>>n; s= f(n) ; cout<<\ return 0; } int f(int n){ //递归法求立方和函数 if ( n==1 ) return 1; else return ( f(n-1)+n*n*n ); } 3. 请将下列程序补充完整,使得输出结果为“Destructor Derived Destructor Base”。 #include using namespace std; class Base { public: virtual ~Base () { cout << “Destructor Base”<< endl; } }; class Derived : public Base { public: ~Derived(){ cout << “Destructor Derived” << endl; } }; void main () { Base *pBase = new Derived; delete pBase ; } 9 9 三、阅读程序,写出运行结果 1. #include int number; public: void Init(char* aa, int bb) { strcpy(name,aa); number=bb; } char* Getname () {return name;} int Getnumber () {return number;} void Output() {cout<< name <<' '<< number < dx.Init(\歌唱祖国\ dy.Init(\义勇军进行曲\ dx.Output(); dy.Output(); } 歌唱祖国 30 义勇军进行曲 95 2.#include 10 10