C++ Primer(第五版)第6章答案

第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;
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邻家的阿飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值