C程序语言 第八章.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序语言 第八章

Ch8 函数 教学目与要求: 明确C程序由一个或多个函数构成,掌握函数的定义方法,熟悉函数的传值调用,嵌套调用,递归调用的执行过程;掌握变量的类型,作用域,生存期等概念,正确使用动态变量,静态变量。 教学内容: 概述;函数定义的一般形式;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的递归调用;数组作为函数参数;局部变量和全局变量;变量的存储类别;内部函数和外部函数;如何运行一个多文件的程序。 教学重点与难点: 重点是函数的定义和调用,变量的作用域和生存期难点是函数的嵌套调用与递归调用。 ★特点: 各模块相对独立、功能单一、结构清晰、接口简单 控制了程序设计的复杂性 缩短开发周期 避免程序开发的重复劳动 易于维护和功能扩充 函数分类 从用户角度 标准函数(库函数):由系统提供 用户自定义函数 从函数形式 无参函数 有参函数 8.2 函数定义的一般格式 8.2.2 有参函数定义 的一般格式 8.3.1 形参与实参 形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的参数 返回语句 形式: return(表达式); 或 return 表达式; 或 return; 功能:使程序控制从被调用函数返回到调用函数中,同时把返回值带给调用函数 说明: 函数中可有多个return语句 若无return语句,遇}时,自动返回调用函数,返回的是一个不确定的值 若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换 void型函数没有返回值 Ch8 函数(2) 教学目与要求: 熟悉函数的传值调用 嵌套调用 递归调用的执行过程; 教学内容: 函数的嵌套调用; 函数的递归调用; 数组作为函数参数; 教学重点与难点: 函数的嵌套调用与递归调用。 8.4 函数的调用 8.4.1调用的一般形式 函数名(实参表列); 说明: 实参与形参个数相等,类型一致,按顺序一一对应 实参表求值顺序,因系统而定(Turbo C 自右向左) 对被调用函数要求: 必须是已存在的函数 库函数应该使用 #include *.h 用户自定义函数或者在调用前面,或者先有函数类型说明 告诉编译系统函数类型、参数个数及类型,以便检验 函数定义与函数声明不同 函数定义是指函数功能的确立,包括函数名、值、形参以及函数体,是一个完整的、独立的函数单位。 函数声明告诉编译系统函数类型、参数个数及类型,以便检验 8.4.3 对被调用函数的声明和函数原型 函数的声明简称函数原型.一般情况下,函数的声明与函数定义的第一行(函数首部)基本相同,但差一个分号,因此,可以简单地照写已经定义的函数的首部,再加一个分号,就成了声明。 函数原型的形式 (1) 函数类型 函数名(形参类型1,形参类型2,…..形参类型n); (2) 函数类型 函数名(形参类型1 参数名1,形参类型2 参数名2,….., 形参类型n 参数名n); 编译系统不检查参数名,参数名是什么无所谓 函数说明位置:程序的数据说明部分(函数内或外) 下列情况下,可不作函数说明 被调用函数定义出现在主调函数之前 如果已经在头文件的开头(在所有函数之前)已经对本文件中所调用的函数进行了声明,则在各函数中不必再说明。 若函数返值是char或int型,系统自动按int型处理 8.5 函数的嵌套调用 【举例】将从键盘输入的字符序列逆置输出,用递归函数来实现。比如,从键盘上输入:ABCD回车;算法将输出:DCBA 。 【举例】将从键盘输入的十进制正整数以二进制形式输出。用递归函数来实现。比如,从键盘上输入:13回车;算法将输出:1101 。 函数的递归调用小结 用递归法编写函数的方法 (1)分解:将原问题分解为若干小问题,其中至少有一个小问题与原问题性质完全相同; (2)找递归出口(即递归结束条件):利用出口的结果逐步回代即可得到原问题的解。 递归法的优点 (1)编写的程序比较简洁清楚,增加了可读性; (2)有些问题(如Hanoi塔问题)用其他方法较难而用递归方法较易; (3)便于进行算法的复杂性分析。 递归法的缺点:时间和空间的代价较大。 注:递归算法都可以转换为非递归算法。 作业 8.4 8.5 8.6 8.7 Ch8 函数(3) 教学目与要求: 理解数组作为函数参数;理解局部变量和全局变量;了解变量的存储类别和内部函数和外部函数;知道如何运行一个多文件的程序。 教学内容: 数组作为函数参数;局部变量和全局变量;变量的存储类别;内部函数和外部函数;如何运行一个多文件的程序。 教学重

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档