提交 081c987d 编写于 作者: J jzplp

5.23-6.10

上级 2add596c
#include<iostream>
int main()
{
int i1,i2;
std::cin >> i1 >> i2;
std::cout << i1/i2 << std::endl;
return 0;
}
#include<iostream>
#include<stdexcept>
int main()
{
int i1,i2;
std::cin >> i1 >> i2;
if(i2 == 0)
throw std::runtime_error("i2 is zero!");
std::cout << i1/i2 << std::endl;
return 0;
}
#include<iostream>
#include<stdexcept>
int main()
{
int i1,i2;
while(std::cin >> i1 >> i2)
try {
if(i2 == 0)
throw std::runtime_error ("i2 is zero!");
std::cout << i1/i2 << std::endl;
}
catch (std::runtime_error err)
{
std::cout << err.what() << std::endl;
std::cout << "input Y to continue, N to exit." << std::endl;
char c;
std::cin >> c;
if (!std::cin || toupper(c) == 'N')
break;
}
return 0;
}
......@@ -186,7 +186,7 @@ do {
[5.19程序代码](5.19.cpp)
* **练习5.20**
[5.20程序代码](5.19.cpp)
[5.20程序代码](5.20.cpp)
* **练习5.21**
[重写5.20程序代码](5.21_5.20_upper.cpp)
......@@ -197,3 +197,17 @@ int sz = get_size();
while(sz <= 0)
sz = get_size();
```
* **练习5.23**
[5.23程序代码](5.23.cpp)
* **练习5.24**
[5.24程序代码](5.24.cpp)
程序输出下面内容并终止:
```
terminate called after throwing an instance of 'std::runtime_error'
what(): i2 is zero!
```
* **练习5.25**
[5.25程序代码](5.25.cpp)
#include<iostream>
void change(int *p1, int *p2)
{
int i = *p1;
*p1 = *p2;
*p2 = i;
}
int main()
{
int i = 1, j = 2;
change(&i, &j);
std::cout << i << " " << j << std::endl;
return 0;
}
#include<iostream>
int fact (int x)
{
int value = 1;
for ( ; x > 1; --x)
value *= x;
return value;
}
int main()
{
int i;
std::cin >> i;
std::cout << fact(i) << std::endl;
return 0;
}
#include<iostream>
int fact (int x)
{
int value = 1;
for ( ; x > 1; --x)
value *= x;
return value;
}
int main()
{
int i;
while (std::cin >> i)
std::cout << fact(i) << std::endl;
return 0;
}
#include<iostream>
int abs (int x)
{
if (x < 0)
return -x;
return x;
}
int main()
{
int i;
while (std::cin >> i)
std::cout << abs(i) << std::endl;
return 0;
}
#include<iostream>
int add (int i)
{
++i;
int j = 0;
++j;
static int x = 0;
std::cout << i << " " << j << " " << x <<std::endl;
return x++;
}
int main()
{
for (int i = 0; i <10; ++i)
add(i);
return 0;
}
#include<iostream>
int add ()
{
static int x = 0;
return x++;
}
int main()
{
for (int i = 0; i <10; ++i)
std::cout << add() << " ";
return 0;
}
int fact (int x);
int abs (int x);
int fact (int x);
int abs (int x);
#include"Chapter6.h"
int fact (int x)
{
int value = 1;
for ( ; x > 1; --x)
value *= x;
return value;
}
#include<iostream>
#include"Chapter6.h"
int main()
{
int i;
while (std::cin >> i)
std::cout << fact(i) << std::endl;
return 0;
}
* **练习6.1**
形参是函数定义的时候需要传递的的参数声明。
实参是函数调用时用来传递给形参的实际参数。
* **练习6.2**
(a) 无错误。
(b) 没有返回类型
(c) 形参名重复,左大括号缺失
(d) 没有大括号
* **练习6.3**
[6.3程序代码](6.3.cpp)
* **练习6.4**
[6.4程序代码](6.4.cpp)
* **练习6.5**
[6.5程序代码](6.5.cpp)
* **练习6.6**
[6.6程序代码](6.6.cpp)
形参是局部变量,是函数调用时定义并初始化的参数,函数结束时销毁。
函数内的局部变量是在执行路径经过时定义并初始化的,函数结束时销毁。
静态变量是在执行路径经过时定义并初始化的,函数束后不销毁。
* **练习6.7**
[6.7程序代码](6.7.cpp)
* **练习6.8**
[6.8程序代码](6.8/Chapter6.h)
* **练习6.9**
[6.9fact程序代码](6.9/fact.cpp)
[6.9factMain程序代码](6.9/factMain.cpp)
* **练习6.10**
[6.10程序代码](6.10.cpp)
......@@ -11,3 +11,5 @@ C++ Primer 第五版中文版 练习题答案代码(个人所做)
* [第三章 练习题答案](Chapter-3/chapter-3-answer.md)
* [第四章 练习题答案](Chapter-4/chapter-4-answer.md)
* [第五章 练习题答案](Chapter-5/chapter-5-answer.md)
* [第六章 练习题答案](Chapter-6/chapter-6-answer.md)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册