《C++ Primer》第五版课后习题解答_第六章(1)(01-07)
来源:互联网 发布:如何在淘宝网上购物 编辑:程序博客网 时间:2024/05/17 22:04
系统环境: windows 10 1703
编译环境:Visual studio 2017
6.1
实参:定义在主调函数中,用来初始化形参的参数;
形参:定义在被调函数中,由其主调函数的实参来初始化。
6.2
(a) 函数的返回类型和返回变量不相同,可以修改为:
string f() { string s; //... return s; }(b) 没有定义返回类型,可以修改为:
void f2(int i) { /*...*/ }(c) 1. 缺失左侧大括号;
2. 两个形参不能命名成相同的名字,可以修改为:
int calc(int v1, int v2) { /*...*/ }
(d) 函数体没有用大括号括起来,可以修改为:
double square(double x) { return x * x };
6.3
int fact(int fac1) { int sum = 1; while (fac1 != 0) { sum *= fac1; --fac1; } return sum; }
6.4
#include <iostream>using std::cout;using std::cin;using std::endl;using std::runtime_error;int fact(int fac1) // 构建计算阶乘的 fact 函数{ int sum = 1; if (fac1 == 0) // 判断输入实参的值,如果是 0,返回 1(0! = 1) { sum = 1; } else { while (fac1 != 0) // 如果不是零,则计算阶乘 { sum *= fac1; --fac1; } } return sum; // 返回函数计算结果}int main(){ int val; int ans; cout << "Enter your integer:" << endl; while (cin >> val) { try { if (val < 0) { throw runtime_error("You Must Enter Non-negative Number!!!"); // 如果输入了负数,则报错 } else { ans = fact(val); // 如果输入了非负数,则正常调用函数并返回结果 cout << "The factorial of " << val << " is: " << ans << endl; break; } } catch (runtime_error err) { cout << err.what() << "\n" << "Do you want to continue? Enter \"y\" or \"n\" " << endl; // 函数报错之后,询问是否继续循环 char s; // 检查用户输入字符来判断是否继续循环 cin >> s; if (s == 'n') // 如果输入了 n,则生气地结束循环 { cout << "Fine!" << endl; break; } else if (s == 'y') { cout << "Enter your integer AGAIN:" << endl; // 如果输入了 y,则继续循环 continue; } else { cout << "you are funny :) " << endl; // 如果用户不按常理出牌,则结束循环 break; } } } return 0;}
6.5
#include <iostream>using std::cout;using std::cin;using std::endl;double Adamabs(double abs1) { double ans = 0; if (abs1 < 0) { ans = abs1 * -1; } else { ans = abs1; } return ans; } int main(){ double dval; double dans; cout << "Enter an number:" << endl; while (cin >> dval) { dans = Adamabs(dval); break; } cout << "The absolute value of " << dval << " is: " << dans << endl; return 0;}
6.6
形参:定义在被调函数内部的参数,会被主调函数传入的实参初始化;
局部变量:定义在函数体内部的变量,只在函数体作用域内可见;
局部静态变量:在程序执行的第一次经过对象定义语句时初始化,并且知道程序终止时才被销毁。在此期间即使对象所在的函数结束执行也不会对它有影响
函数可以编写为:
int Adam(int adam1){ int static cnt = 0; --adam1; ++cnt; return adam1;}函数功能为参数自减 1,并且计数变量 cnt 加一
6.7
#include <iostream>using std::cout;using std::endl;int Adam(){ int static cnt = -1; ++cnt; return cnt;} int main(){ for (int i = 1; i != 10; ++i) { cout << Adam() << endl; } return 0;}
阅读全文
1 0
- 《C++ Primer》第五版课后习题解答_第六章(1)(01-07)
- 《C++ Primer》第五版课后习题解答_第五章(1)(01-08)
- 《C++ Primer》第五版课后习题解答_第六章(2)(08-15)
- 《C++ Primer》第五版课后习题解答_第六章(3)(16-26)
- 《C++ Primer》第五版课后习题解答_第六章(4)(27-35)
- 《C++ Primer》第五版课后习题解答_第二章(1)(01-08)
- 《C++ Primer》第五版课后习题解答_第三章(1)(01-05)
- 《C++ Primer》第五版课后习题解答_第四章(1)(01-20)
- 《C++ Primer》第五版课后习题解答_第一章(1)(01-11)
- 《C++ Primer》第五版课后习题解答_第五章(2)(09-14)
- 《C++ Primer》第五版课后习题解答_第五章(3)(15-19)
- 《C++ Primer》第五版课后习题解答_第五章(4)(20-25)
- C++primer 第五版课后习题 第六章(1) 1-20
- C++Primer 中文版 第五版 第六章课后习题答案
- 《C++ Primer》第五版课后习题解答_第二章(2)(09-20)
- 《C++ Primer》第五版课后习题解答_第二章(3)(21-29)
- 《C++ Primer》第五版课后习题解答_第二章(4)(30-38)
- 《C++ Primer》第五版课后习题解答_第二章(5)(39-42)
- Java中的Filter过滤器
- 初识 requireJs
- 纯bootstrap写的后台管理页面
- (三)、log4j2使用原理及相关参数配置说明
- 将传进来的文件转换成字符串
- 《C++ Primer》第五版课后习题解答_第六章(1)(01-07)
- 两区指导意见 国发〔2017〕24号
- 字符串压缩问题
- mysql下载和navicat安装的步骤
- NEO
- Android魔法系列大全(不定时更新)
- sphinx全文检索
- 基本类型,引用类型
- linux ipmitool 安装