文档详情

函数与程序结构.ppt

发布:2025-03-28约6.74千字共10页下载文档
文本预览下载声明

5.5函数的嵌套与递归调用5.5.1函数的嵌套调用C语句不能嵌套定义函数,但可以嵌套调用函数,所谓函数的嵌套调用,是指在执行被调用函数时,被调用函数又调用另一个函数。【例5.7】计算s=1k+2k+3k+……+Nk。#includestdio.h#defineK4#defineN5longf1(intn,intk){longp=n;inti;for(i=1;ik;i++)p*=n;return(p);}longf2(intn,intk) {longsum=0;inti;for(i=1;i=n;i++)sum+=f1(i,k);returnsum;}voidmain(){printf(%d\n,f2(N,K));}5.5.2函数的递归调用递归函数的概念递归是在连续执行某一个处理过程时,该过程中的某一步要用到它自身的上一步(或上几步)的结果。在一个程序中,若存在程序自己调用自己的现象就是构成了递归。递归又分为直接递归和间接递归。一个函数在它的函数体内直接或间接地调用它自身,称为递归调用。C语言程序设计C语言程序设计第5章函数与程序结构本章要点1.C程序的一般结构,函数的定义方法及函数的类型和返回值。2.函数实参与形参的对应关系,以及参数传递的方式。3.函数的正确调用,嵌套与递归调用。4.局部变量和全局变量的概念和使用方法。5.变量的存储类别(自动、静态、寄存器、外部)、变量的作用域和生存期。6.宏定义及文件包含处理的方法。本章难点1.函数参数的传递。2.函数递归调用的执行过程。3.变量的作用域和生存期。5.1C程序的一般结构logo5.1.1模块化程序设计自顶向下,逐步细化函数是构成C语言程序的基本功能模块,是一段程序,它完成一项相对独立的任务。01一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在c语言中,用函数来实现模块的功能。一个c程序由一个主函数和若干个函数组成,由主函数调用其他函数,其他函数之间也可以相互调用。同一个函数可以被一个或多个函数调用任意多次。025.1.2C程序的一般结构一个c程序由一个或多个程序模块组成,每一个程序模块作为一个源程序文件。C程序的执行总是从主函数开始,又从主函数结束,其他函数只有通过调用关系发生作用。①一个源文件程序由一个或多个函数以及其他有关内容(如命令行、数据定义等)组成。01所有的函数在定义时是相互独立的,一个函数并不从属于另一函数,即函数不能嵌套定义,不过函数之间可以相互调用,但不能调用main函数。不同源文件的组装可以通过工程文件实现。一个c程序有且仅有一个主函数main()。02特点:函数的分类1.从用户使用的角度看,函数有两种:(1)标准函数,即库函数这是由系统提供的,用户不必自己定义这些函数,可以直接使用它们。应该说明,每个系统提供的库函数的数量和功能不同,当然有一些基本的函数是共同的。(2)用户自己定义的函数用以解决用户的专门需要。2.从函数的形式看,函数分两类:(1)无参函数在调用无参函数时,主调函数并不将数据传送给被调用函数,一般用来执行指定的一组操作。无参函数可以带回或不带回函数值,但一般以不带回函数值的居多。(2)有参函数在调用函数时,在主调函数和被调用函数之间有参数传递,也就是说,主调函数可以将数据传给被调用函数使用,被调用函数中的数据也可以带回来供主调函数使用。【例5.1】一个函数简单应用的例子。voidmain(){ voidp_star();/*说明p_star函数*/ voidp_message();/*说明p_message函数*/ p_star();/*调用p_staar函数*/ p_message();/*调用p_message函数*/ p_star();/*调用p_star函数*/}voidp_star()/*定义p_star函数*/{ printf(****************\n);}voidp_message()/*定义p_message函数*/{ printf(Goodmorning!\n);}5.2函数的定义与调用5.2.1函数的定义正如变量使用前应先定义一样,函数也应该先定义后使用。函

显示全部
相似文档