欢迎来到天天文库
浏览记录
ID:40738802
大小:70.50 KB
页数:4页
时间:2019-08-07
《12 函数声明、函数嵌套调用、递归函数、数组做函数参数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、教学内容:函数声明、函数嵌套调用、递归函数、数组做函数参数教学目标1.掌握函数声明的格式2.理解函数嵌套调用的过程3.理解函数递归调用的过程;掌握常用递归函数的编写4.掌握数组名作为函数参数的应用重点难点1.函数的递归调用2.数组名作为函数参数教学方法与手段1.讲授、实验法2.多媒体教学内容及教学过程一.函数的声明n如果使用自己定义的函数,而该函数的位置在调用它的函数后面,应该声明示例说明:输入两个实数,用一个函数求出它们之和。#includeintmain(){floatadd(floatx,floaty);//函数声明语句floata,b,c;printf
2、("Pleaseenteraandb:");scanf("%f,%f",&a,&b);c=add(a,b);printf("sumis%f",c);return0;}floatadd(floatx,floaty){floatz;z=x+y;return(z);}n函数声明的形式:floatadd(floatx,floaty);floatadd(float,float);二.函数的嵌套调用uC语言的函数定义是互相平行、独立的u即函数不能嵌套定义u但可以嵌套调用函数u即调用一个函数的过程中,又可以调用另一个函数三.函数的递归调用1、函数递归调用的概念在调用一个函数的过程中又出现
3、直接或间接地调用该函数本身,称为函数的递归调用2、递归函数示例age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10递归的两个阶段:回溯阶段和递推阶段#includeintmain(){intage(intn);printf("NO.5,age:%d",age(5));return0;} intage(intn){intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}3、用递归方法求n!intfac(intn){intf;if(n<0)
4、printf("n<0,dataerror!");elseif(n==0
5、
6、n==1)f=1;elsef=fac(n-1)*n;return(f);}l注意溢出4、Hanoi塔问题介绍Hanoi塔问题的设计思路,理解算法思想即可。四.数组作函数参数1、数组元素作函数参数数组元素作函数参数与普通变量作函数参数效果相同,实参将值传递给形参。用数组元素作实参时,向形参变量传递的是数组元素的值2、数组名作函数参数用数组名作函数实参时,向形参传递的是数组首元素的地址floataverage(floatarray[],intn){inti;floataver,sum=array[0];fo
7、r(i=1;i8、;i++)for(j=0;j<4;j++)if(array[i][j]>max)max=array[i][j];return(max);}单元小结回顾函数的概念,引入函数声明的方式。讲解函数嵌套调用的过程。通过几个实例阐述函数递归调用的过程:回溯和递推;了解Hanoi塔问题的设计思想。掌握数组元素作函数参数,数组名作函数参数,多维数组作函数参数时参数传递情况。学生作业1、概念理解阅读教材,熟悉函数递归调用的过程;数组名作函数参数的作用。2、编程P2184、11、13、14、17
8、;i++)for(j=0;j<4;j++)if(array[i][j]>max)max=array[i][j];return(max);}单元小结回顾函数的概念,引入函数声明的方式。讲解函数嵌套调用的过程。通过几个实例阐述函数递归调用的过程:回溯和递推;了解Hanoi塔问题的设计思想。掌握数组元素作函数参数,数组名作函数参数,多维数组作函数参数时参数传递情况。学生作业1、概念理解阅读教材,熟悉函数递归调用的过程;数组名作函数参数的作用。2、编程P2184、11、13、14、17
此文档下载收益归作者所有