《程序设计和C语言案例 (24).ppt》由会员分享,可在线阅读,更多相关《程序设计和C语言案例 (24).ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、紧急救援函数调用例17案例17-问题描述紧急救援某地发生疫情,要从5名男医生、4名女医生中选派3人组成一个紧急救援小组,要求男、女医生都有,共有多少种选派方案?案例17-问题描述案例17-问题描述公式中多次用到计算阶乘的值。计算阶乘的值并不难,问题是每次计算阶乘的值是否需要重新编写一段代码,如果是的话,我们需要编写12段相似的代码。好在C语言中的函数很好地解决了我们的问题。案例17-知识点函数函数定义函数声明函数调用函数的嵌套调用案例17-知识点程序是由函数组成的。函数是完成特定功能的代码块。使用函数可以省去重复代码的编写。即使某功能在程序中只使用一次,将其以函数的形式实现可以提高程序的可读性
2、和可维护性。C程序必须有一个main函数,其他函数允许用户自己命名。案例17-知识点函数定义格式:类型名 函数名(形参表)函数体 函数返回值的类型类型名函数的名字,以便以后按名调用函数参数的名字和类型函数要完成的操作函数名形参表函数体案例17-知识点形参表的格式类型1 参数1 ,类型2 参数2,注意:1.若有多个参数,用逗号分隔2.每个参数前面的类型名都不能省略3.参数可以是变量、数组等,不能是常量案例17-知识点int jiecheng(int x)int i,jc=1;for(i=1;i=x;i+)jc=jc*i;return jc;示例:计算阶乘的函数案例17-知识点函数声明如果函数定义
3、位于主调函数之前,就可以直接使用了。如果函数定义位于主调函数之后,则需要在调用之前进行函数声明,使编译系统能正确识别函数并检查调用是否合法。案例17-知识点函数声明的格式:类型名 函数名(形参表);示例:int jiecheng(int x);说明:函数声明就是重写函数的首部并在后面加上“;”。形参表中的变量名可以省略,类型不能省。案例17-知识点 示例的完整程序#includeint jiecheng(int x);/函数声明int main()int n=5;printf(%d,jiecheng(n);return 0;int jiecheng(int x)int i,jc=1;for(i
4、=1;i=x;i+)jc=jc*i;return jc;案例17-知识点无参函数的定义和声明定义格式:类型名 函数名()函数体 声明格式:类型名 函数名();示例:示例:void print_star()printf(“*”);案例17-知识点函数调用函数调用形式有两种。1.以函数语句的形式出现如 print_star();2.以表达式的形式出现 如 printf(%d,jiecheng(n);案例17-知识点函数调用表达式的格式函数名(实参表)注意:1.函数名前不要加类型名2.实参表中的变量前不要加类型名,变量之间用逗号分隔3.实参的个数、顺序、类型要与相应的形参一致案例17-知识点函数调用
5、的过程1.给形参分配内存空间。(在未被调用时,形参不占内存空间)2.将实参值传递给相应的形参。3.执行函数体,直到遇到return或函数结束,返回调用处。函数值通过return语句传回。4.函数调用结束,释放形参所占内存空间。继续执行主调函数的其他语句。案例17-知识点调用过程示意图函数调用被调函数案例17-函数调用示例int jieching(int x);int main()int n=5;printf(%d,jiecheng(n);return 0;int jieching(int x)int i,jc=1;for(i=1;i=x;i+)jc=jc*i;return jc;案例17-知识
6、点注意1.函数定义不能位于其他函数的内部。2.通常main函数位于程序的最前或最后。3.函数声明后面有分号,函数定义的首部没有分号。4.函数定义首部每个形参的前面都要有类型名。5.函数声明中的变量名可以省略,但变量的类型不能省。案例17-知识点函数的嵌套调用语言中函数不允许嵌套定义,即不允许在函数体中出现其他函数的定义。但是语言允许在一个函数的定义中出现对另一个函数的调用,即函数的嵌套调用。函数A函数B函数C案例17-知识点案例17-函数的嵌套调用int jiecheng(int x);int zuheshu(int,int);int main()printf(%d,zuheshu(5,1);
7、return 0;int jiecheng(int x)int zuheshu(int x,int y)return jiecheng(x)/(jiecheng(y)*jiecheng(x-y);案例17-问题解决解题解题思路思路案例17-问题解决解题解题思路思路案例17-问题解决示意图4 25+5 24x!案例17-问题解决#includeint jiecheng(int x);int zuheshu(int,int);int main()printf(%dn,4*zuheshu(5,2)+5*zuheshu(4,2);return 0;int zuheshu(int x,int y)return jiecheng(x)/(jiecheng(y)*jiecheng(x-y);案例17-问题解决int jiecheng(int x)int i,jc=1;for(i=1;i=x;i+)jc=jc*i;return jc;案例17-小结小结我们学习了函数的定义、声明、调用等知识,使用中注意函数声明的格式以及实参、形参的格式及顺序。并用所学知识解决了“紧急救援”问题中的选派方案的计算。PPT模板下载: 谢谢观看THANK YOU函数调用内容结束