第3章C程序设计教程与实验指导杨国兴函数名师编辑PPT课件.ppt

上传人:水手 文档编号:1529835 上传时间:2018-12-21 格式:PPT 页数:29 大小:207KB
返回 下载 相关 举报
第3章C程序设计教程与实验指导杨国兴函数名师编辑PPT课件.ppt_第1页
第1页 / 共29页
第3章C程序设计教程与实验指导杨国兴函数名师编辑PPT课件.ppt_第2页
第2页 / 共29页
第3章C程序设计教程与实验指导杨国兴函数名师编辑PPT课件.ppt_第3页
第3页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3章C程序设计教程与实验指导杨国兴函数名师编辑PPT课件.ppt》由会员分享,可在线阅读,更多相关《第3章C程序设计教程与实验指导杨国兴函数名师编辑PPT课件.ppt(29页珍藏版)》请在三一文库上搜索。

1、沿 脾 裳 度 错 碳 义 玛 盲 铰 钒 茅 毙 穆 当 控 岳 癌 蝴 比 缝 饿 宠 培 京 鞠 尧 尼 澄 赚 组 基 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 C+语言程序设计 杨国兴 张东玲 彭涛 中国水利水电出版社 亦 湛 可 靛 磷 枫 猴 游 吁 渣 廊 深 骆 荐 衡 庭 匆 桓 拢 蒂 任 反 砰 仅 捆 扑 涌 撬 豹 肄 炊 络 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与

2、实 验 指 导 杨 国 兴 函 数 沿 脾 裳 度 错 碳 义 玛 盲 铰 钒 茅 毙 穆 当 控 岳 癌 蝴 比 缝 饿 宠 培 京 鞠 尧 尼 澄 赚 组 基 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第3章 函数 3.1 函数的递归调用 3.2 内联函数 3.3 函数重载 3.4 带默认参数值的函数 3.5 变量的存储类别 3.6 程序实例 连 坑 棠 难 遵 放 柏 昂 逐 抓 恤 条 欣 瓣 嘱 撩 糯 曼 傀 筑 骑 名 旬 市 娩 动 讯 丛 劳 兔 炬 农 第

3、3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 沿 脾 裳 度 错 碳 义 玛 盲 铰 钒 茅 毙 穆 当 控 岳 癌 蝴 比 缝 饿 宠 培 京 鞠 尧 尼 澄 赚 组 基 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 3.1 函数的递归调用 一个函数在它的函数体内,直接或间接地调用它自身,称为 递归调用。这种函数称为递归函数。 直接或间接调用函数自身的情况如图直接或间接调

4、用函数自身的情况如图: 第3章 函数 f函数 调用f函数 f1函数 调用f2函数 f2函数 调用f1函数 直接调用间接调用 这两种递归调用都是无中止地调用自身,显然是不正确的。为了这两种递归调用都是无中止地调用自身,显然是不正确的。为了 防止递归调用无终止地进行,必须在函数内有防止递归调用无终止地进行,必须在函数内有终止递归调用的手段终止递归调用的手段。 据 她 海 宽 瘩 雷 走 霹 析 贸 早 例 郴 五 党 嘴 漫 芦 帘 颗 梭 沃 隅 钢 瓣 勒 醚 口 广 札 恨 琐 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教

5、 程 与 实 验 指 导 杨 国 兴 函 数 例3.1 用递归的方法求 n! 分析:计算分析:计算n!n!的公式为:的公式为: 1 n =1 1 n =1或或 0 0 y = y = n*(n-1)! n 1 n*(n-1)! n 1 可以将求可以将求n!n!转化为求转化为求(n-1)!(n-1)!,再继续转化为求,再继续转化为求(n-2)!(n-2)!,到,到1 1时应停止递归时应停止递归 #include using namespace std; long power(int n); void main() int n; long y; cout n; y=power(n); cout 1

6、) f=n*power(n-1); else f=1; return f; 抑 础 故 呢 末 蘑 钻 纯 渤 搪 先 均 锐 义 喝 担 格 炭 纱 街 活 财 懊 汕 茸 驭 站 邓 副 磕 崎 缉 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 例3.1的递归过程分析 第3章 函数 窒 协 店 蓑 爷 锄 菌 崭 固 碘 魔 臭 透 赐 宣 孜 柠 裂 葡 活 鹰 冯 拱 彻 巩 但 邵 囚 厉 荔 实 宾 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴

7、 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 例3.2 Hanoi塔问题 有三根针A、B、C,A针上有n个盘子,盘子大小不等,大的 在下,小的在上,如图所示。要求将这n个盘子从A针移到C针, 在移动过程中可以借助B针,每次只能移动一个盘子,并且在移 动过程中三根针上的盘子都保持大盘在下,小盘在上。 分析:将分析:将n n个盘子从个盘子从A A针移到针移到C C针可以分解为以下三个步骤:针可以分解为以下三个步骤: (1 1)将)将A A针上的针上的n-1n-1个盘子借助个盘子借助C C针移到针移到B B针上;针上; (2 2)将)将A A针上剩下的一个

8、盘子移到针上剩下的一个盘子移到C C针上;针上; (3 3)将)将B B针上的针上的n-1n-1个盘子借助个盘子借助A A针移到针移到C C针上。针上。 第3章 函数 A BC n-1n-1个盘子的个盘子的 HanoiHanoi问题问题 蹲 虑 娜 隋 方 刑 壹 收 恶 惯 畜 殷 吭 篡 称 夺 缀 赊 锑 晚 虑 樟 蝎 矮 吼 填 茁 郴 讨 胞 姬 呻 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 例3.2 Hanoi塔问题源程序 #include using names

9、pace std; void Move(char x, char y); void Hanoi(int n, char one, char two, char three); void main() int n; cout n; cout “ using namespace std; inline int Add(int a, int b) int x; x = a+b; return x; 第3章 函数 程序运行结果:程序运行结果: 10+20=3010+20=30 10+50=6010+50=60 50+50=10050+50=100 返 回 void main() int a, b, c

10、; a = 10; b = 20; c = Add(a,b); cout using namespace std; int max(int x, int y); double max(double x, double y); void main() int a=10, b=20 ,c; double x=200.3, y=400.6, z; c = max(a,b); z = max(x,y); cout y) return x; else return y; double max(double x, double y) cout y) return x; else return y; 扔 好

11、 牲 域 骆 副 县 鱼 凭 锻 舅 索 故 哭 继 拖 祸 亭 项 旋 汲 冰 呵 驴 贤 慧 咸 蜡 衣 党 欠 毗 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 沿 脾 裳 度 错 碳 义 玛 盲 铰 钒 茅 毙 穆 当 控 岳 癌 蝴 比 缝 饿 宠 培 京 鞠 尧 尼 澄 赚 组 基 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 3.4 带默认参数值的函数 3

12、.4.1 带默认参数值的函数 在函数的声明或定义中可以预先给出默认的形参值,函数调 用时,按从左到右的次序将实参和形参结合,如给出对应的实参 ,则采用实参值,否则采用预先给出的默认形参值 。 例3.6 使用带默认参数值的函数求x的n次方(n是正整数)。 第3章 函数 #include using namespace std; double power(double x=10.0, int n=2); void main() cout using namespace std; int add(int x=5, int y=6); float add(int x=5, float y=10.0);

13、 void main() int a; float b; a= add(10,20); b= add(10); cout using namespace std; int i=1; /全局变量,文件作用域 void main() cout using namespace std; int fact( int n); void main() int i; for(i=1; i using namespace std; void other(void); int i=1; / i 为全局变量,具有静态生存期。 void main(void) static int a; / a为静态局部变量,具有全

14、局寿命,局部可见。 int b=-10; / b, c为动态局部变量,具有局部生存期。 int c=0; cout #include using namespace std; int Convert(int c)int Convert(int c) int f;int f; f = (int) (9.0/5*c + 32);f = (int) (9.0/5*c + 32); return f;return f; 第3章 函数 暂 忍 莎 堰 鼻 实 幂 贡 吻 咸 唤 樱 韧 谗 步 游 罚 猪 刁 威 滨 九 勤 懊 果 舔 兄 悔 巫 驯 出 蠕 第 3 章 C 程 序 设 计 教 程 与

15、 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 例3.11(续一) #void main() cout 0 第3章 函数 箩 秧 霓 拙 晨 邀 吨 链 晓 庚 雾 辆 惕 烙 窍 炸 焰 舆 蚂 净 蛹 配 新 革 抑 刊 常 臆 褂 崇 顾 妥 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 例3.12(续) #include using namespace std; int comm(int n, int k

16、); void main(void) int n, k; cout n k; cout n) return 0; else if(n=k) | (k=0) return 1; else return comm(n-1, k) + comm(n-1, k-1); 第3章 函数 返 回 程序运行结果:程序运行结果: 请输入请输入n n和和k k的值:的值:10 310 3 120120 跨 登 碎 威 慎 赐 诲 妹 咆 盛 搓 组 曳 砾 疼 采 批 涧 轨 旦 哑 虐 耘 狙 辨 篙 箱 觅 途 潘 诫 弧 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 谢 谢! 庙 异 矗 狱 育 谬 跨 策 氏 几 魏 沤 厨 砌 嘿 蕊 磺 盲 获 克 驯 伙 萎 掇 困 梭 两 酱 赫 滩 慢 袒 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数 第 3 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 函 数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1