C++Primer中文版_第4版_第七章_函数_习题解答_文字word版.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在C++编程语言中,函数是代码块,可以接受参数并返回值。这些参数和返回值是函数的核心组成部分。在本章中,我们探讨了关于函数的一些关键知识点,包括形参与实参的区别、函数定义的正确性以及如何编写实用的函数。 1. 形参与实参的区别: 形参(parameter)是在函数定义时声明的变量,它们是函数接口的一部分,定义了函数期望接收的数据类型。形参的作用域仅限于函数内部。而实参(argument)是在函数调用时传递给函数的实际值或表达式,它们在调用者的作用域中存在。实参的值被复制到形参中,这个过程称为参数传递。 2. 错误的函数定义及其修正: (a) 函数f尝试返回一个字符串,但其声明的返回类型是整型,这是不合法的。修正方法是将返回类型更改为`string`。 ```cpp string f() { string s; // ... return s; } ``` (b) 函数f2缺少返回类型声明,这是标准C++中不允许的。应添加返回类型,如`int`。 ```cpp int f2(int i) { /* ... */ } ``` (c) 函数calc中,形参v1重复命名,且缺少函数体的大括号。应更改变量名,并添加大括号。 ```cpp int calc(int v1, int v2) { /* ... */ } ``` (d) 函数square的定义中,缺少函数体的大括号。应添加大括号。 ```cpp double square(double x) { return x * x; } ``` 3. 编程练习: (a) 编写一个名为`power`的函数,它接受两个整数参数,返回第一个参数的第二个参数次幂。然后在主函数`main`中调用此函数,传入两个整数并验证结果。注意考虑溢出问题。 ```cpp #include <iostream> using namespace std; int power(int x, int y) { int result = 1; for (int loop = 1; loop <= y; ++loop) result *= x; return result; } int main() { int xval, yval; cout << "Enter two integers (the second one should be equal to or bigger than 0): " << endl; cin >> xval >> yval; if (yval < 0) { cout << "The second integer should be equal to or bigger than 0" << endl; return 1; } cout << "Result of raising " << xval << " to the power of " << yval << " is " << power(xval, yval) << endl; return 0; } ``` (b) 编写一个函数`abs`,接受一个整数并返回其绝对值。 ```cpp int abs(int x) { return x > 0 ? x : -x; } ``` (c) 写一个函数,接受一个整数和一个指向整数的指针,返回两者之间较大的值。函数的返回类型应为`int`,因为无论指针指向的值是多少,结果都是一个整数。 ```cpp int maxOfIntAndPointer(int num, int* ptr) { return num > *ptr ? num : *ptr; } ``` 通过这些练习,我们可以加深对函数的理解,学习如何正确地定义、调用函数,处理参数传递,以及编写实用的函数来解决特定问题。同时,也要关注潜在的错误,例如类型匹配、作用域和语法问题,这些都是编写有效C++代码的关键。
- 粉丝: 18
- 资源: 7万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 100_Numpy_exercises.ipynb
- 2023-04-06-项目笔记 - 第三百二十六阶段 - 4.4.2.324全局变量的作用域-324 -2025.11.23
- 一个简单的模板,开始用 Python 编写你自己的个性化 Discord 机器人.zip
- TP-Link 智能家居产品的 Python API.zip
- 一个需要十一个字才能i激活的神奇代码-OLP
- 如果你喜欢 Python,请使用此模板.zip
- 带有 python 3 和 opencv 4.1 的 Docker 映像.zip
- 知识领域,内容概要,使用场景及目标
- 《基于MATLAB的三段式距离保护建模与仿真》
- 基于Keras的LSTM多变量时间序列预测.zip