- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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一般用于程序员开发的模块,默认路径:系统当前路径; 例:
您可能关注的文档
- 005腔肠动物PPT课件.ppt
- ME-101 疼痛基础PPT课件.ppt
- 我用残损的手掌PPT课件.ppt
- CA250转向架介绍PPT课件.ppt
- 图片素材PPT课件.ppt
- 网络设备管理与维护实训教程_06Cisco Packet Tracer 5.3模拟器的使用PPT课件.ppt
- S02E12 单反的局限性PPT课件.ppt
- 项目六 计算机网络与应用PPT课件.pptx
- 宾得K30使用技巧PPT课件.pptx
- 华为网络拓扑图元素图标PPT课件.ppt
- 《地理信息 地理标记语言(GML)第2部分:扩展模式及编码规则GBT 23708.2-2023》详细解读.pptx
- 《直齿轮和斜齿轮承载能力计算 第2部分:齿面接触强度(点蚀)计算GBT 3480.2-2021》详细解读.pptx
- 《电测量设备(交流)通用要求、试验和试验条件第31部分:产品安全要求和试验GBT 17215.231-2021》详细解读.pptx
- 《医疗器械生物学评价+第22部分:纳米材料指南GBZ+16886.22-2022》详细解读.pptx
- 《现场设备集成第1部分:概述GBT41771.1-2022》详细解读.pptx
- 《交流电测量设备+特殊要求+第3部分:数字化电能表GBT+17215.303-2022》详细解读.pptx
- 《电测量设备(交流)特殊要求 第23部分静止式无功电能表(2级和3级)GBT 17215.323-2022》详细解读.pptx
- 《碟形弹簧+第2部分:技术条件GBT+1972.2-2023》详细解读.pptx
- 《电声学+声级计+第2部分:型式评价试验GBT+3785.2-2023》详细解读.pptx
- 《闭式齿轮传动装置的零部件设计和选择+第1部分:通用零部件GBT+39545.1-2022》详细解读.pptx
文档评论(0)