电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

谢丽聪老师C语言课件-8函数-2009

  • 资源ID:134608936       资源大小:758KB        全文页数:83页
  • 资源格式: PPT        下载积分:24金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要24金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

谢丽聪老师C语言课件-8函数-2009

第八章函数 8 1概述8 2函数的分类8 3函数的定义8 4函数的调用8 5形式参数与实际参数8 6对被调函数的申明8 7函数的嵌套调用8 8函数的嵌套调用8 9数组作为函数参数8 10局部变量和全局变量8 11变量的存储类别8 12内部函数和外部函数 8 1概述 一个C程序由一个主函数和 0个其它函数组成函数体允许是空的或无值类型 或无返回值 void 结构化程序设计的一个重要特点 模块化设计 即用一个函数表示一个模块 例1 voidmain voidp star pv p star voidpv a n pv 3 chara intn p star inti pv 5 for i 1 i n i p star printf c c n a a voidp star printf n 函数申明 执行一个程序从主函数开始 再从主函数结束 形参 供其它函数调用 实参 与形参对应 8 2函数分类 一 从函数定义的角度分为 1 库函数 P3712 用户自己定义的函数 由用户按需要写的函数 对于用户自定义函数 不仅要在程序中定义函数本身 而且在主调函数模块中还必须对该被调函数进行类型说明 然后才能使用 二 从函数的形式分为 1 有参函数 在函数定义 说明时都有参数 称为形式参数 形参 在函数调用时也必须给出参数 称为实际参数 实参 2 无参函数 函数定义 函数说明及函数调用中均不带参数 8 3函数的定义 形式1 类型 函数名 形式2 类型 函数名 形参表列 定义形参类型 形式3 类型 函数名 类型1形参1 类型2形参2 intm intf m n intm charn intf intm charn 函数名前 类型 为int时可省略函数体允许是空的可以为无值类型 无返回值 void 例如 定义一个函数 用于求两个数中的大数 intmax inta intb if a b returna elsereturnb 1 函数的返回值 函数的返回值语句的一般形式为 return表达式 或return 表达式 第一行说明max函数是一个整型函数 其返回的函数值是一个整数 形参为a b 均为整型量 a b的具体值是由主调函数在调用时传送过来的 在 中的函数体内 除形参外没有使用其它变量 因此只有语句而没有声明部分 在max函数体中的return语句是把a 或b 的值作为函数的值返回给主调函数 有返回值函数中至少应有一个return语句 2 函数的类型 因为函数有返回值 返回值就必须指定类型 在定义函数时指定函数值类型 如上例的定义函数 intmax inta intb if a b returna elsereturnb 再如 charletter charc1 charc2 doublemin intx inty 3 如函数值为整型 在函数定义时可以省去类型说明 4 在定义函数时指定的类型说明 应与return语句表达式的类型一致 如果不一致 则以函数类型为主 自动进行类型转换 函数类型决定返回值的类型 5 不返回函数值的函数 可以明确定义为 空类型 如 voids intn 在主调函数中不能使用空类型的被调函数的函数值 8 4函数的调用 出现在另一函数的执行部分 格式 函数名 实参系表列 一 函数语句 printstar 二 函数表达式 f n f r f n r 即出现在表达式中三 函数参数 printf d n f n 调用另一函数时作实参注意 void类型函数只能使用形式一 使用函数返回值 例2 intmax inta intb if a b returna elsereturnb main intmax inta intb intx y z printf inputtwonumbers n scanf d d 一个函数的定义可以放在主函数main之前 也可放在main之后 末尾无分号 调用max函数 并把x y中的值传送给max的形参a b max函数执行的结果 a或b 将返回给变量z 最后由主函数输出z的值 对max函数进行说明 末尾要加分号 输入 8061 输出 maxmum 80 例3 计算 main intn r cnr scanf d d 形参写在括号内 形参不用赋值 此函数有值 调用时得到值 调用函数 即赋值n r n r 实参 必须赋值 8 5形式参数与实际参数 1 定义函数中 函数名后面括号中的变量名 数组名等称为形参 2 调用函数中 函数名后面括号中的变量名 数组名等称为实参 注意 实参与形参的类型必须一致 字符与整型通用 形参为数组名时 实参也应为数组名 调用函数时把实参数组的首地址传递给形参 让形参与实参占用相同的单元 形参为变量名时 对应实参应为表达式 调用函数时把实参值单向传递给形参 表示未具体给定的量 不赋值 必须已赋值 其值用来传递给形参 单向传递 例4 voidmain intx 3 y 7 change x y printf d d n x y change inta intb intc c a a b b c 第二种形式调用 结果 3 7 3 7 a b交换 没有给形参分配存储单元 x y值不变 例5 voidmain intx 2 3 7 change x 0 x 1 printf d d n x 0 x 1 change inta intb intc c a a b b c 结果 3 7 数组元素作函数实参数组元素是下标变量 它与普通变量并无区别 把作为实参的数组元素的值传送给形参 实现单向的值传送 3 7 与上例相同功能 没有给形参分配存储单元 函数调用中发生的数据传送是单向的 即只能把实参的值传送给形参 而不能把形参的值反向地传送给实参 因此在函数调用过程中 形参的值发生改变 而实参中的值不会变化 实参 形参 x x 5y y 5 voidmain intn printf inputnumber n scanf d 输入 6 输出 n 21n 6 n 6 必须赋值 例6 例7 voidmain intx 2 3 7 change1 x printf d d n x 0 x 1 change1 inta 2 intc c a 0 a 0 a 1 a 1 a 2 结果 7 3 形参数组名取得该首地址之后 等于有了实在的数组 形参数组和实参数组为同一数组 共同拥有一段内存空间 传递地址 数组名 数组名作为函数参数1 用数组元素作实参时 不要求函数的形参也是下标变量 数组元素与普通变量一样 2 用数组名作函数参数 形参 时 则要求对应的实参必须是类型相同的数组或地址 3 在用数组名作函数参数时 不是进行值的传送 数组名作函数参数时所进行的传送只是地址的传送 把实参数组的首地址赋予形参数组名 形参数组和实参数组共同拥有一段内存空间 8 6对被调用函数的声明 三种声明形式 1 函数类型函数名 2 函数类型函数名 形参1名 形参2名 3 函数类型函数名 形参1类型形参1名 形参2类型形参2名 若某函数中要调用在其后面定义的非int类型函数 则需在本函数说明部分或文件开头对要调用的函数进行声明 includevoidmain floatadd floatx floaty floata b c scand f f 对被调函数add的申明 被调函数add 例8 1 如果被调函数的返回值是整型 可以不对被调函数作说明 而直接调用 如以下例子 includevoidmain inta b c scand d d 不必对被调函数作申明 2 当被调函数的函数定义出现在主调函数之前时 在主调函数中也可以不对被调函数再作说明 includefloatadd floatx floaty floatz z x y returnz voidmain floata b c scand f f 不必对被调函数作申明 3 如在所有函数定义之前 在函数外预先说明了各个函数的类型 则在以后的各主调函数中 可不再对被调函数作说明 例如 charstr inta floatf floatb main charstr inta floatf floatb 4 对库函数的调用不需要再作说明 但必须把该函数的头文件用include命令包含在源文件前部 对str函数和f函数预先作了说明 8 7函数的嵌套调用 函数的嵌套调用指 调用一个函数过程中又调用另一个函数 即 被调用的函数中包含调用另一个函数的语句 定义函数间的关系是并列的 一个函数内不能包含另一个函数 1 2 3 4 5 6 7 8 9 例9 main p1 printf m n printf p1 n p3 p2 printf m n printf p1 n p2 printf m n p2 p3 printf p2 n printf p3 n p2 printf p3 n p1 printf p3 n 1 2 3 4 5 6 7 8 9 10 11 main p3 p2 P3 p2 p1 P2 P2 P2 P1 P2 1C11CC121CCC1331CCCC14641 15101051 00 01 11 12 22 02 13 23 33 03 例10 打印杨辉三角形 8行 intcnr n r intn r intc c f n f r f n r return c intf intm voidmain inti fac intj k fac 1 for j 0 j 8 j for i 1 i m i for k 0 k j k fac i printf 8d cnr j k returnfac printf n 计算n 控制每行后回车 另一个方法 用数组做如打印4行 a 1 1 1a 2 1 1 a 2 2 1a 3 1 1 a 3 2 2 a 3 3 1a 4 1 1 a 4 2 3 a 4 3 3 a 4 4 1 要定义为a 5 5 a 0 0 不用 习题6 13用二分法求下面方程在 10 10 之间的根2x3 4x2 3x 6 0 中点1 此两点一定为异号才有解 与a异号 中点2在左边 中点2 b 与b异号 中点3在左边 中点3 例11 include math h floatf x floatx return 2 x 4 x 3 x 6 floatroot x1 x2 floatx1 x2 floatx y y1 do x x1 x2 2 y f x y1 f x1 if y y1 0 x1 x elsex2 x while fabs y 1e 6 returnx main floatx1 x2 do printf inputx1 x2 scanf f f 计算2x3 4x2 3x 6的值 中点函数值 左边函数值 以上两函数值同号 中点为x1 否则中点为x2 做到y值逼近0为止 两边界点函数值为异号才有解 直接调用函数 8 8函数的递归调用 一个函数 除主函数 直接或间接调用自己称为递归函数 在递归调用中 主调函数又是被调函数 例如有函数f如下 intf intx inty z f y returnz f是一个递归函数 但是运行该函数将无休止地调用其自身 这当然是不正确的 为了防止递归调用无终止地进行 必须加条件判断 满足某种条件后就不再作递归调用 然后逐层返回 例如 1 intf intx k f 5 2 intf1 intx j g 3 intg intx n f1 10 直接调用自己 间接调用自己 例12 5个人坐在一起报岁数 问第5个人几岁 他说比第4个人大两岁 问第4个人几岁 他说比第3个人大两岁 问第3个人几岁 他说比第2个人大两岁 问第2个人几岁 他说比第1个人大两岁 最后问第1个人几岁 他说10岁 这是一个递归问题 要求第5个人的年龄 要先知道第4个人的年龄 要求第4个人的年龄 要先知道第3个人的年龄 要求第3个人的年龄 要先知道第2个人的年龄 得出 age 5 age 4 2age 4 age 3 2age 3 age 2 2age 2 ag

注意事项

本文(谢丽聪老师C语言课件-8函数-2009)为本站会员(sh****na)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.