4.1 C++语言的函数PPT课件.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.6.1演示静态变量的用法 #include iostream.h void grow() { static int age=30; age++; cout“My age is ”age“\n”; return; } int main() { for(int i=1;i=3;i++) grow(); return 0; } * 4.6.3 外部变量 1.作用:当一个变量被多个源文件共享时,需将其声明为外部变量。 2.声明分类: 定义性声明:带初始化表达式,仅有一次; 引用性声明:不带初始化表达式,可以多次; 如:extern int age=30; //定义性声明,分配内存 extern int age;//引用性声明,一般用于说明此变量已在其它文件中定义过 3.生存期:全局寿命 4.注意:尽量避免使用 * 4.7 递归程序设计 递归函数 1.定义:一个在其定义中直接或间接调用自己的函数。 2.分类: 直接递归函数 间接递归函数 void a() { …… a(); …… } 直接递归函数 间接递归函数 void a() { …… b(); …… } void b() { …… a(); …… } * 4.7.1 简单递归程序 数学上的递归定义 递归函数 例:阶乘函数定义 另一种定义: 递归程序设计的场合: 一个问题被分解为若干子问题,子问题需要同样的解法。 注意:递归调用的终止问题 递归调用必须受限于一个条件,此条件在某种情况下不满足(递归调用终止)。 * 4.7.1 使用递归程序计算阶乘函数 #include iostream.h int factorial(int n) { int result; if (n==0) result=1; else result=n*factorial(n-1); return result; } int main() { cout“The result of 5! is ”factorial(5)“\n”; return 0; } * 4.7.2 梵塔问题 1.问题:共有三个木柱和n个大小各异的盘(按由小到大的顺序标号1~n)。初始时,n个盘都在A柱上顺序排列(小的在上,大的在下);要求全部移到C柱,移动过程中可借助B柱。 移动规则: 每次只能移动柱最上面的一个盘; 任何盘都不能放在比它小的盘上。 A B C * 2.分析 n=1时: n1时: (1) (2) (3) A C 一个盘 A B 上面的n-1个盘 A C 最下面的一个盘 B C 上面的n-1个盘 直接 借助C 直接 借助A * 4.7.3梵塔游戏 #include iostream.h void move_tower(int disk_num,char from,char to,char aux) { if(disk_num=1) cout“Move disk 1 from ”from“ to ”to“\n”; else { move_tower(disk_num-1,from,aux,to); cout“Move disk “disk_num“ from ”from“ to ”to“\n”; move_tower(disk_num-1,aux,to,from); } return; } int main() { move_tower(4,’A’,’C’,’B’); return 0; } 盘个数 原柱 目的柱 辅助柱 * 4.8 预处理命令 预处理命令的语法要求 以“#”开头; 占用一行或多行,多行时上一行末尾以“\”结束; 最后不加“;” 源程序 目标程序 预处理程序 编译程序 * 4.8.1 文件包含 1.命令:#include 形式1: #include 文件名 形式2: #include “文件名” 2.实现:文本替换 预处理程序按命令参数所给出的文件名取出完整的文件,并以此文件的内容直接替换该预处理命令。 # include File2.h 程序体 A File1.cpp 程序体 B File2.h File1.cpp 程序体 B 程序体 A 预处理 * 3.用途: 将源代码要用到的函数定义的头文件包含进来。 形式1一般用于C++的库函数,默认路径C++系统的include子目录下; 形式2一般用于程序员开发的模块,默认路径:系统当前路径; 例:

您可能关注的文档

文档评论(0)

***** + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档