好文档 - 专业文书写作范文服务资料分享网站

c++练习题(带答案) 

天下 分享 时间: 加入收藏 我要投稿 点赞

{ 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 using namespace std; class Test{ public: Test(){}

~Test(){cout<<'#';} };

int main(){

Test temp[2], *pTemp[2]; return 0; }

执行这个程序输出星号(#)的个数为(B )。 A)1 B)2 C)3 D)4 27. 有如下程序:

#include using namespace std; class MyClass{ public:

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 using namespace std; class point { public:

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 using namespace std; int f(int); int main(){ int n,s;

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 #include using namespace std; class CD { char name[20];

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

c++练习题(带答案) 

{i++;if(i==10)break;if(i%2==0)cout<<’*’;}执行这个程序段输出字符*的个数是(C)A.10B.3C.4D.522.下列关于虚基类的描述中,错误的是(C)A.使用虚基类可以消除由多继承产生的二义性B.构造派生类对象时,虚基类的构造函数只被调用一次C.声
推荐度:
点击下载文档文档为doc格式
3duk90raor4c2db00688
领取福利

微信扫码领取福利

微信扫码分享