第六章 函数
练习6.1
形参是定义函数的时候使用的参数,是用来接收调用这个函数时所传递的参数,这个参数就是实参。
练习6.2
//(a) 函数返回类型有误, string 型不能转化为 int 型
string f() {
string s;
//...
return s;
}
//(b) 没有指定返回类型
void f2(int i) { /*...*/ }
//(c) 形参不能有同名
int calc(int v1, int v2) { /*...*/ }
//(d) 函数的操作必须在一个语句块中
double square (double x) {
return x * x;
}
练习6.3
//输出一个数的小数部分
double fact (double x) {
x = x - static_cast<int>(x);
return x;
}
练习6.4
#include <iostream>
using namespace std;
long long fact (int x) {
long long an = 1;
while (x != 0)
an = an * x--;
return an;
}
int main(){
int x;
cin >> x ;
long long ans;
ans = fact(x);
cout << ans << endl;
return 0;
}
练习6.5
int abs(int x) {
return x > 0 ? x : -x;
}
练习6.6
形参和函数体内部定义的变量统称为局部变量。形参属于自动对象,在函数开始时申请空间,并被实参初始化,在函数结束时销毁。其他在函数内定义的普通变量在其定义时申请空间,若定义中不含初始值,则执行默认初始化,并在函数结束时销毁。而局部静态变量在程序第一次经过其定义语句时被创建,若没有被显式地初始化,则执行值初始化,但不受函数终止的影响,直到程序终止时才被销毁。
int ohayo (int x) {
int xx;
xx = x + 1;
static int wen = 1;
wen += xx;
return wen;
}
练习6.7
int wat () {
static int a = 0;
if (a != 0)
a = 0;
return a++;
}
练习6.8
//chapter6.h
int abs (int x);
long long fact (int x);
练习6.9
//fact.cc
#include "chapter6.h"
int abs(int x) {
return x > 0 ? x : -x;
}
long long fact (