C++综合练习题2 下载本文

void main() {int i,*p; i=10; *p=i;

cout<<*p<

5. #include class A {private: int x,y; public:

void fun(int i,int j) {x=i;y=j;} void show()

{cout<

void main() {A a1; a1.fun(2); a1.show(); }

四、完成程序题

1. 完成下面类中成员函数的定义。

#include #include using namespace std; class str {private: char *st; public:

str(char *a) {set(a); }

str & operator=(____) {delete st; set(a.st); return *this; }

void show(){cout<

void set(char *s)//初始化st {_____

strcpy(st,s); } };

void main()

{str s1(\s1.show(),s2.show(); s2=s1;

s1.show(),s2.show();}

2. 一个类的头文件如下所示,num初始化值为5,程序产生对象T,且修改num为10,并使用

show()函数输出num的值10。 #include class Test {private:

static int num; public: Test(int); void show(); };

_________

Test::Test(int n) {num=n;}

void Test::show() {cout<

3. 下面是一个三角形三边,输出其面积C++程序,在下划线处填上正确的语句。 #include #include void area() {double a,b,c;

cout<<\________

if(a+b>c&&a+c>b&&c+b>a) {double l=(a+b+c)/2; _______

cout<<\} else

cout<<\}

void main() {area();}

4. 下面程序中Base是抽象类。请在下面程序的横线处填上适当内容,以使程序完整,并使程序 的输出为: Der1 called! Der2 called!

#include class Base {public:

_______________; };

class Der1:public Base {public:

void display(){cout<<\};

class Der2:public Base

{public:

void display(){cout<<\};

void fun(______________) {p->display();} void main() {Der1 b1; Der2 b2;

Base * p=&b1; fun(p); p=&b2; fun(p); }

5. 下面程序中用来求数组和。请在下面程序的横线处填上适当内容,以使程序完整的输出为:s=150。 #include class Arr {int *a,n; public:

Arr():a(0),n(0){} Arr(int *aa, int nn) {n=nn;

a=new int[n];

for(int i=0;i

~Arr(){delete a;} _____________; {return *(a+i);} };

void main()

{int b[5]={10,20,30,40,50}; Arr a1(b,5); int i=0,s=0; _____________

s+=a1.GetValue(i); cout<<\}

五、程序分析题

1. 给出下面程序输出结果。

#include class example {int a; public:

example(int b=5){a=b++;}

void print(){a=a+1;cout <

void main()

,并使程序 {example x;

const example y(2); x.print(); y.print(); }

2. 给出下面程序输出结果。 #include void main() { int *p1; int **p2=&p1; int b=20; p1=&b;

cout<<**p2<

3. 给出下面程序输出结果。 #include class Base {private: int Y; public:

Base(int y=0) {Y=y;cout<<\\n\~Base() {cout<<\\n\void print() {cout <

class Derived:public Base {private: int Z; public:

Derived (int y, int z):Base(y) {Z=z;

cout<<\\n\}

~Derived() {cout<<\~Derived()\n\void print() {Base::print(); cout<

void main()

{Derived d(10,20); d.print(); }

4. 给出下面程序输出结果。 #include class A {public: A()

{cout<<\构造函数\n\virtual void fun()

{cout<<\函数\n\};

class B:public A {public: B()

{cout<<\构造函数\n\

void fun() {cout<<\函数\n\};

void main() {B d;}

六、程序设计题

1. 编写类String的构造函数、析构函数和赋值函数和测试程序(主函数)。

已知类String的原型为: #include #include class String {public:

String(const char *str=NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~String(); // 析构函数

String & operator=(const String &other); // 赋值函数 void show()

{cout<

private:

char *m_data; // 用于保存字符串 };