C++面向对象程序设计习题集
杜 青  解 芳编
南京工程学院计算机工程学院
2013-7-1


第1章 C++的初步知识
本章主要知识点:
1. C++的输入输出
  2. 函数重载与函数模板
  3. 变量的引用
  4.其它C++的扩充内容:常变量、字符串变量、new/delete
习  题
1. 输入圆的半径,求圆的周长和面积。(其中圆周率取3.1415926)
2. 输入三角形三个边长,求三角形面积。
3. 写出下列程序的运行结果。
#include<iostream>
using namespace std;
void fun(int a=1,int b=2,int c=3)
{
    cout<<"a="<<a<<"  "<<"b="<<b<<"  "<<"c="<<c<<endl;
}
main()
{  fun();
      fun(10);
      fun(10,20);
      fun(10,20,30);
}
答案:a=1  b=2  c=3
a=10  b=2  c=3
a=10  b=20  c=3
a=10  b=20  c=30
4. 写出一个模板函数findmax,函数功能为求x、y、z的中的最大值,定义主函数,调用该函数。
答案:
#include<iostream.h>
template<typename T>
T findmax(T x,T y,T z)
{
    T max;
    if(x>y)
        max=x;
    else
        max=y;
    if(max<z)
        max=z;
    return z;
}
main()
{
    int x=10,y=20,z=30;
    cout<<findmax(x,y,z)<<endl;
}
5. 写出一个模板函数sort,函数功能为可以对n个数据由小到大排序,定义主函数,调用该函数。
6. 写出下列程序的运行结果。
#include <iostream>
using namespace std;
void func(int xx,int &ss,int &cc)
{  xx++;ss=xx*xx;cc=xx*xx*xx;  }
int main()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
{  int x=5,s=6,c=7;
    func(x,s,c);
    cout<<x<<" "<<s<<" "<<c<<endl;
    return 0;
}            5  36  216
7. 写出下列程序的运行结果。
#include<iostream>
using namespace std;
void fun(int& x, int y)
int t = x; x = y; y = t; }
int main( )
{  int a[2] = {23, 42};
    fun(a[1], a[0]);
    cout << a[0] << ", " << a[1] <<endl;    return 0;
}  23,23
7. 在下面的程序中,定义一个函数rank,使得主函数中的输出从小到大。
#include<iostream>
using namespace std;
int main()
{      int a,b,c;
      cin>>a>>b>>c;
      rank(a,b,c);
      cout<<a<<"  "<<b<<"  "<<c<<endl;
}
答案:
void rank(int &a,int &b,int &c)
析构函数的定义{
    int t;
    if(a>b)
      t=a,a=b,b=t;
    if(a>c)
        t=a,a=c,c=t;
    if(b>c)
        t=b,b=c,c=t;
}
8. 定义一个函数exchange,定义主函数,在主函数中调用调用exchange(x,y,z),可以实现将x值赋给y,y值赋给z,z值赋给x。
9. 输入一个字符串,将其逆序输出。
10. 将5个字符串按照由小到大的顺序输出。
第2章 类和对象
本章主要知识点:
1. 面向对象程序设计的基本概念
  2. 类的声明与对象的定义
  3. 类的成员函数
  4.对象成员的引用
习    题
1. 将下面的程序除函数main()外封装成一个Mytime类,并将函数main()进行相应的改写。