C语言7-class-while和函数.ppt

上传人:max****ui 文档编号:6332670 上传时间:2020-02-23 格式:PPT 页数:39 大小:536.50KB
返回 下载 相关 举报
C语言7-class-while和函数.ppt_第1页
第1页 / 共39页
C语言7-class-while和函数.ppt_第2页
第2页 / 共39页
C语言7-class-while和函数.ppt_第3页
第3页 / 共39页
点击查看更多>>
资源描述
4 3while循环 二 例题 用while循环求1 2 100 分析 先求出n 然后在累加 第五章函数 5 1使用函数编写程序入门5 2自己编写几个函数程序5 3变量与函数 本章要点 怎样定义函数 如何调用函数 如何声明函数 什么是函数的参数 在函数调用时 参数是如何传递的 在使用函数的过程中 要注意哪些问题 怎样确定函数的参数 如何使用局部变量和全局变量 什么是静态变量 5 1使用函数编写程序入门 5 1 1第一个使用函数程序 计算圆柱体体积 的解析5 1 2函数的定义例题5 2输出数字金字塔5 1 3函数的调用及说明 5 1 1第 程序计算圆柱体积 例5 1输入圆柱体的高和半径 求圆柱体积 volume r2 h 要求定义和调用函数cylinder r h 计算圆柱体的体积 例5 1源程序 计算圆柱体积 includevoidmain doubleheight radius volume doublecylinder doubler doubleh 函数声明 printf Enterradiusandheight scanf lf lf 例5 1源程序 doublecylinder doubler doubleh 定义求圆柱体积的函数 doubleresult result 3 1415926 r r h 计算体积 returnresult 返回结果 运行结果 Enterradiusandheight 3 0 10Volume 282 743 5 1 2函数的定义 函数是指完成一个特定工作的独立程序模块 库函数 由C语言系统提供定义如scanf printf 等函数自定义函数 需要用户自己定义如计算圆柱体体积函数cylinder main 也是一个函数 C程序由一个main 或多个函数构成 程序中一旦调用了某个函数 该函数就会完成一些特定的工作 然后返回到调用它的地方 函数经过运算 得到一个明确的运算结果 并需要回送该结果 例如 函数cylinder 返回圆柱的体积 函数完成一系列操作步骤 不需要回送任何运算结果 1 返回运算结果的函数定义 函数类型函数名 形参表 函数首部 函数体 函数实现过程return表达式 把函数运算的结果回送给主函数 只能返回一个值 函数返回值的类型 没有分号 doublecylinder doubler doubleh doubleresult result 3 1415926 r r h returnresult 1 形参说明 类型1参数1 类型2参数2 类型n参数n参数之间用逗号分隔 每个参数前面的类型都必须分别写明 函数类型函数名 形参表 函数实现过程return表达式 不能写成doubler h doublecylinder doubler doubleh doubleresult result 3 1415926 r r h returnresult doublecylinder doubler doubleh 函数首部 函数体 写在一对大括号内 doubleresult result 3 1415926 r r h 计算圆柱体积 returnresult 返回运算结果 2 分析函数的定义 函数类型 函数名 形参表 与函数类型一致 2 不返回运算结果的函数定义 void函数名 参数表 函数首部 函数体 函数实现过程return 可以省略return 这类函数通常用于屏幕输出等 表示不返回结果 不能省略否则函数类型被默认定义为int 例5 2输出5之内的数字金字塔 输出数字金字塔 includevoidmain voidpyramid intn 函数声明 pyramid 5 调用函数 输出数字金字塔 voidpyramid intn 函数定义 inti j for i 1 i n i 需要输出的行数 for j 1 j n i j 输出每行左边的空格 printf for j 1 j i j 输出每行的数字 printf d i 每个数字的前后各有一个空格 putchar n 122333444455555 5 1 3函数的使用及调用说明 定义一个函数后 就可以在程序中调用这个函数 调用标准库函数时 在程序的最前面用 include命令包含相应的头文件 调用自定义函数时 程序中必须有与调用函数相对应的函数定义 1 函数调用的形式和过程 使用返回值 volume cylinder radius height printf f n cylinder radius height 完成操作 pyramid 5 常用于void类型函数的调用 常用于返回结果的函数的调用 常量 变量 函数名 实参表 1 函数调用的执行过程 计算机在执行程序时 从主函数main开始执行 如果遇到某个函数调用 主函数被暂停执行 转而执行相应的函数 该函数执行完后 将返回主函数 然后再从原先暂停的位置继续执行 函数遇return或最后的大括号 返回主函数 2 用程序分析函数调用的过程 includevoidmain doubleheight radius volume doublecylinder doubler doubleh printf Enterradiusandheight scanf lf lf 调用函数 实参 形参 执行函数中的语句 返回调用它的地方 2 参数传递 函数定义时的参数被称为形式参数 简称形参 doublecylinder doubler doubleh 函数调用时的参数被称为实际参数 简称实参 volume cylinder radius height 实参 形参在参数传递过程中 实参把值复制给形参 形参和实参一一对应 数量一致 类型一致 顺序一致形参 变量 用于接受实参传递过来的值实参 常量 变量 单向传递 3 函数结果返回 函数返回的两种情况完成确定的运算 有一个运算结果返回给主调函数 完成指定工作 没有确定的运算结果需返回给主调函数 函数类型void 函数结果返回的形式 return表达式 return 表达式 4 函数原型声明 函数类型函数名 参数表 doublecylinder doubler doubleh voidpyramid intn 函数必须先定义后调用 将主调函数放在被调函数的后面 就像变量先定义后使用一样 如果自定义函数在主调函数的后面 就需要在函数调用前 加上函数原型声明 函数声明的作用 说明函数的类型和参数的情况 以保证程序编译时能判断对该函数的调用是否正确 只写函数定义中的第1行 函数首部 并以分号结束 5 2自己使用函数编写程序 例5 6输入精度e 使用格里高利公式求 的近似值 精确到最后一项的绝对值小于e 要求定义和调用函数funpi e 求 的近似值 例5 4求两个数的最大值 例5 5求阶乘问题 程序5 4两个数球求最大值 无参数传递 两个数求最大值 有参数传递 函数定义在main之前 函数定义在main之前 例5 5求阶乘问题 输入一个正整数n 输出n include 编译预处理命令 voidmain 主函数 intn 变量定义 intfactorial intn 函数声明 scanf d 例题5 6求 例5 6源程序 用格里高利公式计算 的近似值 精度为e include includevoidmain doublee pi doublefunpi doublee printf Entere scanf lf doublefunpi doublee intdenominator flag doubleitem sum flag 1 denominator 1 item 1 0 sum 0 while fabs item e item flag 1 0 denominator sum sum item flag flag denominator denominator 2 returnsum 4 Entere 0 0001pi 3 1418 上机作业 1 用函数实现三个数求最大值 分有参数传递和无参数传递两种 2分 2 用函数实现Fibonacci序列 1 1 2 3 5 8 13 求出10位 1分 5 3变量与函数 5 3 1局部变量和全局变量5 3 2变量生命周期和静态局部变量 5 3 1局部变量和全局变量 局部变量在函数内定义的变量 包括形参 作用范围 本函数内部定义在复合语句内的变量作用范围 复合语句内部全局变量在函数以外定义的变量 不从属于任一函数 作用范围 从定义处到源文件结束 包括各函数 例5 6在复合语句中定义局部变量 includeintmain void inta a 1 复合语句开始 intb 2 b a b a a b 复合语句结束 printf d a return0 b 小范围内的临时变量 4 例5 7全局变量定义 include stdio h intx 定义全局变量x intf intx 4 x为局部变量 returnx intmain void inta 1 x a 对全局变量x赋值 a f a的值为4 intb 2 b a b b的值为4 x x b 全局变量运算 printf d d a x return0 4 7 若局部变量与全局变量同名 局部变量优先 变量作用范围示例 intx 1 voidmain inta 2 intb 3 f intt 4 voidf intx 5 b 6 inta 7 x a b b x 5b 6t 4a没定义 x b t a 自动变量 auto 普通的局部变量intx y autointx y charc1 autocharc1 函数调用时 定义变量 分配存储单元 函数调用结束 收回存储单元 全局变量 从程序执行开始 到程序的结束 存储单元始终保持 变量生命周期变量从定义开始分配存储单元 到运行结束存储单元被回收的整个过程 5 3 2变量生命周期和静态局部变量 存储类型 动态存储 自动变量静态存储 全局变量 静态局部变量用户存储空间 存储区 static类型名变量表作用范围 局部变量生命周期 全局变量 静态局部变量 例5 9静态局部变量示例 includevoidfun intk intmain void intk for k 1 k 3 k fun k return0 voidfun intk staticinta printf d a a k 0 1 3 静态变量会记住前一次调用时留下来的值 静态变量的初值为0 附加例题1 找出500以内的所有素数 例2求Fibonacci序列 1 1 2 3 5 8 13 1 1 2 3 5 8 13 x1x2xx1x2x x1 x2 1 x x1 x2 x1 x2 x2 x x1 1 x2 1 printf 6d 6d x1 x2 输出头两项 for i 1 i 8 i 循环输出后8项 x x1 x2 计算新项 printf 6d x x1 x2 更新x1和x2 x2 x
展开阅读全文
相关资源
相关搜索

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


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

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


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