深圳职业技术学院:《C语言程序设计》第六单元(3):函数的嵌套调用和递归调用(乌云高娃)

圳职业技术学院 Shenzhen Polytechnic 第六单元(3):函数的嵌套调用和递归调用 教学内容 函数的嵌套调用和递归调用 教学目标 应知 什么是嵌套调用,什么是递归调用 应会 了解嵌套调用与递归调用时程序的执行顺序 编写简单递归函数 难点 函数的递归 教学方法 引探教学法,通过分析题目引导学生思路,尝试写程序的训练。 教学过程 1.求解s=1!+2!+3!+4!+ 1.编写函数 long fact(intn)求n的阶乘(复习巩固函数的定义、调 用、参数等) 2.编写函数 long factum(intn)求1!+2!+3!+…+n!(在此 函数中调用fact函数) 3.编写主函数,输入数据,调用 factum函数,输出结果。(嵌套调用) 2.通过求解年龄例子引入递归 3.将求阶乘fact函数改为递归函数 4.分析第一步中的各个n,考虑变量的作用域与存储类型 5.将阶乘函数采用静态变量编写(将阶乘结果定义为静态变量返回 [static int f=li f=n氵 return fi h main () I int ii for(i=1;i<=5;i++) printf("号d!=d\n",i,fac(立); 计算机系乌云高娃 Wygw2lcn, com第44页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 44 页 共 83 页 第六单元(3):函数的嵌套调用和递归调用 教学内容 函数的嵌套调用和递归调用 教学目标 应知 什么是嵌套调用,什么是递归调用 应会 了解嵌套调用与递归调用时程序的执行顺序 编写简单递归函数 难点 函数的递归 教学方法 引探教学法,通过分析题目引导学生思路,尝试写程序的训练。 教学过程 1. 求解 s = 1! + 2! + 3! + 4! + … … +n! 1. 编写函数 long fact(int n )求 n 的阶乘(复习巩固函数的定义、调 用、参数等) 2. 编写函数 long factsum( int n)求 1!+2!+3!+…+n! (在此 函数中调用 fact 函数) 3. 编写主函数,输入数据,调用 factsum 函数,输出结果。(嵌套调用) 2. 通过求解年龄例子引入递归 3. 将求阶乘 fact 函数改为递归函数 4. 分析第一步中的各个 n , 考虑变量的作用域与存储类型 5. 将阶乘函数采用静态变量编写(将阶乘结果定义为静态变量返回) int fac(int n) {static int f=1; f=f*n; return f;} main() { int i; for(i=1;i<=5;i++) printf(“%d! = %d\n”,i,fac(i)); }

圳)职业技术学院 Shenzhen Polytechni 学生容易出错的地方 混淆函数的声明与定义 参数传递时试图用形参影响实参 函数调用不理解返回值的意义 问题与讨论 定义函数时怎样确定参数与返回值 小结(可由问题与讨论方式给出) 粤C语言中,函数可以嵌套调用,不可以嵌套定义 函数递归调用指对函数自身的调用,算法描述为 1.递归的算法描述为 a.if(递归终止条件) return(条件终止时的值) b. else return递归公式 在函数内部定义的变量为局部变量,只在本函数内有效,在函数外定义的变量 为全局变量,作用域为从定义位置开始到本源文件结束 课后任务 自 完成项目单2的报告 计算机系乌云高娃 Wygwl2lcn, com第45页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 45 页 共 83 页 学生容易出错的地方 混淆函数的声明与定义 参数传递时试图用形参影响实参 函数调用不理解返回值的意义 问题与讨论 定义函数时怎样确定参数与返回值 小结(可由问题与讨论方式给出) C 语言中,函数可以嵌套调用,不可以嵌套定义 函数递归调用指对函数自身的调用,算法描述为 1. 递归的算法描述为 a. if ( 递归终止条件) return (条件终止时的值) b. else return 递归公式 2. 在函数内部定义的变量为局部变量,只在本函数内有效,在函数外定义的变量 为全局变量,作用域为从定义位置开始到本源文件结束 课后任务 完成项目单 2 的报告
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 深圳职业技术学院:《C语言程序设计》第六单元(2):函数的参数传递方式(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第六单元(1):函数基础(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元:数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第 5 单元(8):数组编程总结(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(7):二维字符数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(6):字符数组的编程实训(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(5):字符型数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(4):二维数值型数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(3):数组的编程实训(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(2):数组的应用(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(1):数组的基础内容(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第四单元(2):循环结构编程实训(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第四单元:循环结构程序设计(1)(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第三单元:选择结构程序设计(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第二单元:顺序结构程序设计(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十一单元(3):文件的定位操作和随即读写(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十一单元(2):二进制文件的操作(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十一单元(1):文本文件的操作(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十单元 链表(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第一单元 C 语言的数据类型、运算符和表达式(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第六单元(4):变量的作用域与存储类别(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第六单元:函数(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第七单元(1):指针变量的定义和引用(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第七单元(2):指针与数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第七单元(3):字符串指针(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第七单元(4):指针数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第七单元:指针及其应用(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第八单元(1):结构体变量的定义、引用、初始化(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第八单元(2):结构体数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第八单元(3):指针与结构体(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第八单元:结构体(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第九单元:共用体,枚举(乌云高娃).pdf
- 华中科技大学:《IT项目管理》(本科)(英文版)Topic:1 Introduction to Project Management.ppt
- 华中科技大学:《IT项目管理》(本科)(英文版)Topic:2 Project The Project Management Context and Processes.ppt
- 华中科技大学:《IT项目管理》(本科)(英文版)Topic:3 Project Scope Management.ppt
- 华中科技大学:《IT项目管理》(本科)(英文版)Topic:4 Project Time Management.ppt
- 华中科技大学:《IT项目管理》(本科)(英文版)Topic:5 Project Cost Management.ppt
- 华中科技大学:《IT项目管理》(本科)(英文版)Topic:6 Project HR Management.ppt
- 华中科技大学:《IT项目管理》(本科)(英文版)Topic:7 Project Communication Management.ppt
- 华中科技大学:《IT项目管理》(本科)(英文版)Topic:8 Project Risk Management.ppt