练习6.1
实参和形参的区别是什么?
解答:
【引用】实参是形参的初始值。
练习6.2
指出下列函数哪个有错误,为什么?应该如何修改这些错误呢?
(a)
int f(){
string s;
// ...
return s;
}
(b)
f2(int i){...}
(c)
int calc(int v1, int v1){...}
(d)
double square(double x) return x * x;
解答:
(a) 返回值类型错误
(b) 未定义返回类型
(c) 定义了两个形参
(d) 函数缺少大括号
练习6.3
编写你自己的fact函数,上级检查是否正确。
解答:
参考书中实现。
练习6.4
编写一个与用户交互的函数,要求用户输入一个数字,计算生成该数字的阶乘。在main函数中调用该函数。
解答:
#include <iostream>
using namespace std;
unsigned long factorial(int num){
if (num > 100){
cout << "The num is too big!" << endl;
return 0;
}
unsigned long res = 1;
for (int i = 1; i < num +1; ++i){
res *= i;
}
return res;
}
int main(){
int i;
cin >> i;
cout << factorial(i) << endl;
}
编写一个函数输出其实参的绝对值。
解答:
#include <iostream>
using namespace std;
int Abs(int num){
return num > 0 ? num : -num;
}
int main(){
int i;
cin >> i;
cout << Abs(i) << endl;
}