1.源程序:
#include<iostream>
using namespace std;
int add(int x, int y);
int main() {
int a, b, c;
cin >> a >> b;
c = add(a, b);
cout << "a+b=" <<c << endl;
return 0;
}
int add(int x, int y) {
int z;
z = x + y;
return(z);
}
2、编写一个程序,用来分别求3个整数、3个双精度数的最大值,要求使用函数重载来完成。
源程序:
#include<iostream>
using namespace std;
int Max(int x, int y, int z);
double Max(double a, double b, double c);
int main()
{
int x, y, z;
cin >> x >> y >> z;
Max(x, y, z);
cout << "最大值是:" << Max(x, y, z) << endl;
double a, b, c;
cin >> a >> b >> c;
Max(a, b, c);
cout << "最大值是:" << Max(a, b, c) << endl;
return 0;
}
int Max(int x, int y, int z) {
if (x > y && x > z)
{
return x;
}
else if (y > x && y > z)
{
return y;
}
else
return z;
}
double Max(double a, double b, double c)
{
if (a > b && a > c)
{
return a;
}
else if (b > a && b > c)
{
return b;
}
else
return c;
}
3、编写一个程序完成斐波拉契数列的前20项,要求使用引用返回函数的值。
提示代码:
#include<iostream.h>
int A[20];
int& array(int i);
......
源程序:
#include<iostream>
using namespace std;
int fab(int i);
int main()
{
int i;
for (i = 0; i < 20; i++)
{
cout << fab(i) << " ";
}
cout << endl;
return 0;
}
int fab(int i) {
if (i == 0 || i == 1)
{
return i;
}
return fab(i - 1) + fab(i - 2);
}
4、编写一个程序,声明一个double类型指针变量,给这个变量动态分配内存,并存入一个数到该内存区域。然后用此数作为半径计算圆面积,并输出出来。最后请释放掉之前动态申请到的内存空间。
源程序:
#include<iostream>
using namespace std;
int main()
{
double* ptr, product;
ptr = new double;
cin >> *ptr;
product = 3.14 * (*ptr) * (*ptr);
cout << product << endl;
delete ptr;
return 0;
}