第6章 函数2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自我小结 变量的作用域 变量的生存期 函数的嵌套 递归调用 * * * * * * * * 教学目标 熟悉变量的作用域 熟悉变量的生存期 理解函数的嵌套 掌握函数的递归调用 基本内容 变量的作用域 变量的生存期 函数的嵌套 递归调用 5.4 变量的作用域和生存期 5.4.1 变量的作用域 5.4.2 变量的生存期 5.4.1 变量的作用域★ 根据作用域的不同,可将程序中的变量分为局部变量和全局变量 局部变量是在函数或分程序中说明的变量,只能在本函数或分程序的范围内使用。 全局变量说明于所有函数之外,可以为本源程序文件中位于该全局变量说明之后的所有函数共同使用。 全局变量可以在各个函数之间建立数据传输通道,但滥用会破坏程序的模块化结构。 如出现同名变量,遵循“地方保护主义”(就近原则)原则。 #include iostream ★ using namespace std; int x; // 声明全局变量 int f1() // 在函数f1()使用全局变量x { return ((x+5)*(x+5)); } int f2(int y) { int x = y+5; // 函数f2( )中声明了一个名为x的局部变量 return (x*x); } int main() { x = 3; // 在主函数中为全局变量x赋值 cout 调用函数f1( )的结果: f1( ) endl; cout 调用函数f2( )的结果: f2(2) endl; cout x = x endl; return 0; } 运行结果: 调用函数f1()的结果:64 调用函数f2()的结果:49 x = 3 5.4.2 变量的生存期★ 根据生存期的不同,可将程序中的变量分为自动变量和静态变量 自动变量(auto)的生存期是说明了自动变量的函数或分程序。它对存储空间的利用是动态的。其初值在每次为自动变量分配存储后都要重新设置。 静态变量(static)的生存期就是整个程序的运行期。在程序开始运行前就为其分配相应的存储空间,在程序的整个运行期间一直占用,直到结束。 例5-5:自动变量的使用★ #include iostream using namespace std; int func() { int count = 0; // 定义自动局部变量并初始化 count++; return count; } int main() { // 分别调用10次func( ) 函数 for(int i=0; i10; i++){ coutfunc()\t; } coutendl; return 0; } 运行结果: 1 1 1 1 1 1 1 1 1 1 例5-6:静态局部变量的使用 ★ #include iostream using namespace std; int func() { static int count = 0; // 声明静态局部变量并初始化 count++; return count; // 本函数每执行一次,变量值加1 } int main() { // 分别调用10次func( ) 函数 for(int i=0;i10;i++){ coutfunc()\t; } coutendl; return 0; } 运行结果: 1 2 3 4 5 6 7 8 9 10 5.5 函数的嵌套和递归调用 5.5.1 函数的嵌套 5.5.2 递归调用 5.5.1 函数的嵌套★ 例5-7 求两个整数的最小公倍数 ★ 算法分析 两个正整数的最小公倍数可以由下面公式计算出来: 两个正整数的最小公倍数=两数乘积÷两数的最大公约数 求最大公约数的辗转相除法: 步骤1: 如果p q,交换p 和q; 步骤2: 求p/q的余数r; 步骤3: 如果r ==0,则 q 就是所求的结果; 否则,反复做如下工作:令p = q,q = r,重新计算 p 和q 的余数r,直到r ==0为止,则 q 就是原来的两正整数的最大公约数。 #include iostream ★ using namespace std; int gcd(int p, int q) //求最大公约数 { int r; if(pq) { r = p; p = q; q = r;} r = p%q; while(r != 0) { p = q;

文档评论(0)

yyh892289 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档