C++ Primer 第五版 第6章 6.1——函数及函数定义及调用习题答案

理论讲解请参考:C++ Primer 第五版 第6章 6.1 函数及函数定义及调用阅读笔记


目录

 

目录

6.1 形参和实参的区别

6.2 函数语法考察

6.4 交互式输入数字,计算阶乘

6.5 输出实参的绝对值

6.6 形参、局部变量、静态局部变量

6.7 函数调用 

6.8 函数声明在头文件 


6.1 形参和实参的区别

形参:函数定义时的参数,无赋值的变量

实参:调用函数时使用的参数,有赋值的变量,形参的初始值


6.2 函数语法考察

(a)返回类型不匹配(考察函数返回类型)

(b)无函数返回类型(考察函数返回类型)

(c)形参列表参数不能相同(考察函数形参列表)

(d)函数体应该使用花括号括起来,一句或者无语句都得用花括号括起来(考察函数体)


6.4 交互式输入数字,计算阶乘

交互式输入数字,计算阶乘

# include <iostream>
#include <string>
#include <vector>
using namespace std;
int fact(int val)
{
    int ret = 1;
    while (val > 1)
        ret *= val--;
    return ret;
}
int main()
{
    cout << "Please enter a number:";
    int j;
    cin >> j;
    int J=fact(j);
    cout <<j<<"! is " << J << endl;
    return 0;
}

运行结果


6.5 输出实参的绝对值

# include <iostream>
#include <string>
#include <vector>
using namespace std;
// 求实参的绝对值
int abs(int val)
{
    int abs = 0;
    if (val > 0)
        abs = val;
    else
        abs = val * -1;
    return abs;
}
int main()
{
    cout << "Please enter a number:";
    int j;
    cin >> j;
    int J=abs(j);
    cout << j << "'s abs is " << J << endl;
    return 0;
}

运行结果:


6.6 形参、局部变量、静态局部变量

形参:函数定义时的参数,无赋值的变量,属于局部变量的一种

局部变量:形参和函数体内部定义的变量成为局部变量

静态局部变量:能够贯穿函数调用结束及之后的时间,值到程序终止才被销毁

# include <iostream>
#include <string>
#include <vector>
using namespace std;

// val 为形参
int fun(int val)
{
    int N = 0;  //局部变量,调用结束即结束
    
    cout << val << ":  ";
     // 局部静态变量,调用结束后仍然有效,记录函数调用的次数
    static int count = 0; 
    // 显示函数调用次数,因为N是局部变量,值不会存储,一直为0
    int Number = N + (++count);  
    return Number;
}

int main()
{
    for (int i= 0; i != 5; ++i)
        cout << fun(i) << endl;
    return 0;
}

运行结果:


6.7 函数调用 

# include <iostream>
#include <string>
#include <vector>
using namespace std;

// val 为形参
int fun(int val)
{
    // 局部静态变量,调用结束后仍然有效,记录函数调用的次数
    static int count = 0;  
    cout << "The number of " << val+1 << " is:  ";
    return count++;
}

int main()
{
    for (int i= 0; i != 5; ++i)
        cout << fun(i) << endl;
    return 0;
}

运行结果


6.8 函数声明在头文件 

# include <iostream>
using namespace std;

int fact(int val);  //阶乘函数的声明,val可以省略,但最好加上
int abs(int val);   // 求绝对值的函数声明

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值