第6章 函数
练习6.1
实参是函数调用的实际值,是形参的初始值
练习6.2
- (a)返回类型不匹配
int f()
{
int s;
//...
return s;
}
- (b)无返回类型
void f2(int i) {/*...*/}
- (c)形参不能同名
int clac(int v1,int v2) {/*...*/}
- (d)函数体要用花括号括起来
double square(double x) {return x*x;}
练习6.3
#include <iostream>
using namespace std;
int fact(int val);
int main()
{
cout << fact(5) << endl;
return 0;
}
int fact(int val)
{
int ret = 1;
while (val > 1)
{
ret *= val--;
}
return ret;
}
练习6.4
#include <iostream>
using namespace std;
int fact(int val);
int main()
{
cout << "Please enter a number: " << endl;
int i = 0;
cin >> i;
cout << fact(i);
}
int fact(int val)
{
int ret = 1;
while (val > 1)
{
ret *= val--;
}
return ret;
}
练习6.5
#include <iostream>
using namespace std;
double myAbs(double val);
int main()
{
cout << "Please enter a number: " << endl;
double i = 0;
cin >> i;
cout << myAbs(i);
}
double myAbs(double val)
{
if (val > 0)
return val;
else
return - 1 * val;
}
练习6.6
形参定义在函数形参列表里面;局部变量定义在代码块里面;局部静态变量在程序的执行路径第一次经过对象定义语句时初始化,并且直到程序终止时才被销毁
#include <iostream>
#include <string>
using namespace std;
void fun(int val);
int main()
{
fun(3);
fun(8);
fun(5);
fun(7);
}
void fun(int val)
{
static int p = 0;
int ret = val;
while (ret > 1)
{
cout << "*";
--ret;
}
cout << " " << ++p <<" Times"<< endl;
}
练习6.7
#include <iostream>
using namespace std;
int pplus();
int main()
{
cout << pplus() << endl;
cout << pplus() << endl;
cout << pplus() << endl;
}
int pplus()
{
static int p = 0;
return p++;
}
练习6.8
Chapter6.h文件
int fact(int val);
double myAbs(double val);
练习6.9
fact.cpp文件
#include "Chapter6.h"
int fact(int val)
{
int ret = 1;
while (val > 1)
{
ret *= val--;
}
return ret;
}