函数(1变量做函数参数).ppt

上传人:xt****7 文档编号:5329960 上传时间:2020-01-26 格式:PPT 页数:22 大小:688.31KB
返回 下载 相关 举报
函数(1变量做函数参数).ppt_第1页
第1页 / 共22页
函数(1变量做函数参数).ppt_第2页
第2页 / 共22页
函数(1变量做函数参数).ppt_第3页
第3页 / 共22页
点击查看更多>>
资源描述
第7章函数 C语言程序设计 内容提要 变量做函数参数函数的嵌套调用函数的递归调用 函数的分类 用户使用的角度 标准函数 即库函数系统已经预先编写好的函数 用户可以直接使用 这类函数在前面已经介绍和使用过 注意 使用库函数时 必须加相应的头文件 用户自定义函数用户根据需要自己编写函数 本章主要介绍这类函数 1 有参函数 1 有函数值 2 无函数值2 无参函数 1 有函数值 2 无函数值 函数的分类 根据函数的形式 无参函数的定义形式类型标识符函数名 void 函数体 includevoidPrintMessage void printf t n printf tProgrammingisfun n printf t n intmain void PrintMessage PrintMessage PrintMessage return0 函数 无参函数 无函数值 有参函数的定义 函数返回值类型函数名 数据类型参数1 数据类型参数2 函数体 说明 如果不需要返回值 则应该用void定义返回值类型函数的返回值通过return语句返回 编写以下程序 其中m k 0计算组合数 程序的功能 计算组合数 includedoubleFact intn 函数原型声明intmain void intm k doubleresult scanf d d 函数 有参函数 有函数值 函数首部 C程序的几点说明 一个源程序文件由一个或多个函数组成 C程序的执行从main函数开始 调用其它函数后流程回到main函数 在main函数中结束整个程序的运行 main函数是由系统定义的 所有函数都是平行的 即在定义函数时是互相独立的 一个函数并不从属于另一个函数 函数间可以互相调用 但不能调用main函数 一个函数只有被调用 才有机会被执行 函数参数 形参 形式参数 在定义函数时 函数名后面括号中的变量名实参 实际参数 在主调函数中调用一个函数 函数名后面括号中的参数 或表达式 函数调用 call 例函数的调用 程序的功能 计算组合数 includedoubleFact intn 函数原型声明intmain void intm k doubleresult scanf d d 函数调用总结 提供的参数个数 类型 顺序应与定义时相同 单向值传递 调用函数时 必须提供所有的参数 函数调用的形式 调用有函数值的函数 有参和无参 函数值可以参加程序中的任何运算 例如赋值 算术运算等 放到一个数值表达式中如c max a b 作为另一个函数调用的参数如c max min c printf d n max a b 函数调用表达式如display a b printstar 调用无函数值的函数 有参和无参 此时函数只能执行指定的操作 具体例子见本ppt的第7页 includeintmax intx inty intz if x y z x else z y return z intmain void inta 45 b 78 c 99 d e d max a b printf max1 d n d printf max2 d n max a b e c max a b printf e d n e printf max3 d n max max a b c return0 有函数值的函数调用使用举例 max1 78max2 78e 21max3 99 该程序的输出是什么 函数原型 prototype 调用一个函数之前 先要对其返回值类型 函数名和参数进行声明 declare 有助于编译器进行类型检查 声明时不要省略参数以及返回值的类型 includeintAverage intx inty intresult result x y 2 returnresult intmain void inta 12 intb 24 intave ave Average a b printf Averageof dand dis d n a b ave return0 例 函数定义 函数调用 includeintAverage intx inty 声明Average 函数 intmain void inta 12 intb 24 intave ave Average a b printf Averageof dand dis d n a b ave intAverage intx inty intresult result x y 2 returnresult 例函数的原型声明 main a a函数 b return b函数 return 函数的嵌套调用 在调用一个函数的过程中 又调用其他的函数 称为函数的嵌套调用 函数的嵌套调用举例 includefloatb floatm floatadd floatx floaty intmain void floata 1 2 b 3 4 c c add a b printf c f n c return0 floatb floatm floatn n m 10 return n floatadd floatx floaty floatz z b x y return z 函数的递归调用 在调用一个函数的过程中 又出现直接或间接地调用该函数本身 称为函数的递归调用 intf intx inty z z f y return 2 z 函数的递归调用举例 有3个人坐在一起 问第3个人多少岁 他说比第2个人大2岁 问第2个人多少岁 他说比第1个人大2岁 最后问第1个人 他说是10岁 请问第3个人多大 分析 age 3 age 2 2 age 2 age 1 2 age 1 10 归纳 n 1age n 10n 1age n age n 1 2 函数的递归调用举例 程序如下 includeintage intn intmain void printf d age 3 return0 intage intn intc if n 1 c 10 elseif n 1 c age n 1 2 returnc 程序执行过程如下 main printf d age 3 age 3 c age 2 2 returnc age 2 c age 1 2 returnc age 1 c 10 returnc
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!