欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言模块化程序设计.ppt

    • 资源ID:173884       资源大小:686.50KB        全文页数:57页
    • 资源格式: PPT        下载积分:9金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言模块化程序设计.ppt

    1第第4章章 模块化程序设计模块化程序设计2教学目标教学目标 理解如何用函数模块构造程序理解如何用函数模块构造程序 熟悉标准库中常见的函数熟悉标准库中常见的函数 会定义和调用函数并理解函数调用的机制会定义和调用函数并理解函数调用的机制 掌握变量的作用域和存储类别掌握变量的作用域和存储类别 理解并运用递归函数编写程序。理解并运用递归函数编写程序。 34.1 模块化程序设计概述模块化程序设计概述 4.2 函数的声明、定义和调用函数的声明、定义和调用 4.3 函数的多级调用函数的多级调用 4.4 变量的作用域和存储类别变量的作用域和存储类别 4.5 计算机随机模拟方法计算机随机模拟方法 4.6 编译预处理编译预处理 4 复杂任务可以分解为若干子任务。复杂任务可以分解为若干子任务。 重复使用的程序段,将其进行独立设计,使计算机可以重重复使用的程序段,将其进行独立设计,使计算机可以重复执行。复执行。 4.1 模块化程序设计概述模块化程序设计概述main( )func1()func2()func3()func4()func5()func6()图图4-1 程序模块结构图程序模块结构图51. 引例引例 4.2 函数的声明、定义和调用函数的声明、定义和调用 /*程序名:程序名:4_1.cpp*/*功能:计算两个实数中大的值功能:计算两个实数中大的值*/#include float fmax(float x , float y); /*函数说明函数说明*/void main() float a , b , c; scanf( “%f,%f”, &a , &b ); c = fmax(a , b); /*函数调用函数调用*/ printf( “max=%fn”, c ); float fmax(float x , float y) /*函数定义函数定义*/ float z; z = x y ? x : y; return z;62.函数说明函数说明 说明格式为:说明格式为: 函数返回值类型函数返回值类型 函数名函数名( (参数表参数表) ); #include float fmax(float x , float y); /*函数说明函数说明*/void main() float a , b , c; scanf( “%f,%f”, &a , &b ); c = fmax(a , b); printf( “max=%fn”, c ); 函数说明是一条语句函数说明是一条语句,它指它指出函数返回值的类型、函出函数返回值的类型、函数的名称、函数要接收的数的名称、函数要接收的参数的个数、顺序和类型。参数的个数、顺序和类型。 如果在一个函数中要调用如果在一个函数中要调用另外一个函数,则在调用另外一个函数,则在调用之前要对该函数进行说明。之前要对该函数进行说明。4.2 函数的声明、定义和调用函数的声明、定义和调用 73.函数定义函数定义 函数定义的一般形式:函数定义的一般形式: 函数值类型函数值类型 函数名函数名( (形参表形参表) /) /* *函数头函数头* */ / / /* *函数体函数体* */ / 说明部分说明部分 执行部分执行部分 4.2 函数的声明、定义和调用函数的声明、定义和调用 float fmax(float x , float y) float z; z = x y ? x : y; return z;函数头函数头函数体函数体84.函数调用函数调用 函数调用的一般形式为函数调用的一般形式为: 函数名(实参表)函数名(实参表); ; 4.2 函数的声明、定义和调用函数的声明、定义和调用 void main() float a , b , c; scanf( “%f,%f”, &a , &b ); c = fmax(a , b); printf( “max=%fn”, c ); 可用两种方式调用函数:可用两种方式调用函数:(1) 函数的调用可以在允许表函数的调用可以在允许表达式出现的任何地方。如:达式出现的任何地方。如: c=fmax( a , b );(2) 函数调用可以作为一条独函数调用可以作为一条独立的语句。比如,有函数定义:立的语句。比如,有函数定义:void printstar( ) printf(“*”);则可以把该函数调用作为一个则可以把该函数调用作为一个独立语句,独立语句, printstar();94.2 函数的声明、定义和调用函数的声明、定义和调用 函数返回值函数返回值 函数返回值的类型是由函函数返回值的类型是由函数定义或说明中的函数返数定义或说明中的函数返回类型决定的。如果返回回类型决定的。如果返回的类型与函数说明的不同,的类型与函数说明的不同,则在返回值时,先作隐含则在返回值时,先作隐含的类型转换,然后再返回。的类型转换,然后再返回。 #include int fmax(float x , float y) return x y ? x : y;void main() float max; max = fmax(3.5 , 2.6); printf( “max=%fn” , max); 结果结果?104.2 函数的声明、定义和调用函数的声明、定义和调用 形参和实参形参和实参 形式参数:定义函数时放在函数名称之后括号中的参形式参数:定义函数时放在函数名称之后括号中的参数,简称形参。数,简称形参。实际参数:调用函数时括号中的参数,简称实参。实际参数:调用函数时括号中的参数,简称实参。形参与实参的结合:函数在调用时,将生成实参值的形参与实参的结合:函数在调用时,将生成实参值的一个副本传递给对应的形参,这个过程称为形参与实一个副本传递给对应的形参,这个过程称为形参与实参的结合。如果只允许实参向形参传递数据,则被称参的结合。如果只允许实参向形参传递数据,则被称为为“单向传递单向传递”。 114.2 函数的声明、定义和调用函数的声明、定义和调用 参数传递实例参数传递实例 void swap(float x , float y) float t; t=x; x=y; y=t;void main() float a , b; scanf( “%f,%f”, &a , &b ); swap(a,b); printf( “%f,%fn”, a,b);3.53.52.62.6实参实参a实参实参b形参形参x形参形参y图图4-2 实参和形参数据的传递实参和形参数据的传递124.2 函数的声明、定义和调用函数的声明、定义和调用 函数的调用过程函数的调用过程 void main() float a , b , c; scanf( “%f,%f”, &a , &b ); c = fmax(a , b); printf( “max=%fn”, c);float fmax(float x , float y) float z; z = x y ? x : y; return z;保存返回地址及当前现场,保存返回地址及当前现场,为形参分配内存并将实参为形参分配内存并将实参的值传给形参变量的值传给形参变量恢复恢复main函数的函数的现场,取得返回现场,取得返回地址和返回值地址和返回值134.带自定义函数的程序设计带自定义函数的程序设计 4.2 函数的声明、定义和调用函数的声明、定义和调用 程序设计思路:程序设计思路:(1)定义一个函数定义一个函数isprime(int m)判断)判断m是否为是否为素数,若是素数,函数素数,若是素数,函数返回返回1,否则返回,否则返回0。int isprime(int m) int i; for(i=2;i=m-1; i+) if (m % i = 0) return 0; return 1;(2)在主函数中输入一个整数,调用在主函数中输入一个整数,调用isprime函数,如果函数值为函数,如果函数值为1,则,则打印是素数,否则打印不是素数。打印是素数,否则打印不是素数。void main() int iNumber; printf (请输入一个整数:请输入一个整数:); scanf (%d , &iNumber); if (isprime (iNumber) ) printf (%d是素数是素数 , iNumber); else printf (%d不是素数不是素数 , iNumber);【例例4-2】从键盘输入一个整数,判断该整数是否为素数。从键盘输入一个整数,判断该整数是否为素数。141.嵌套调用嵌套调用int min2(int a,int b) return ab?a:b; int min3(int a,int b,int c) int x,y; x=min2(a,b); y=min2(t,c); return y;#includevoid main() int t1,t2; t1=min2(-2,8); printf(“min=%dn”t1,); t2=min3(-2,8,-6); printf(“min=%dn”,t2);4.3 函数的多级调用函数的多级调用154.3 函数的多级调用函数的多级调用main函数函数t1=min2(-2,8);t2=min3(-2,8,-6);min3函数函数x=min2(a,b);min2函数函数return a=0 & x = 9) printf(%dn , x); else printf(%d , x % 10); invertLongInt(x / 10);4.3 函数的多级调用函数的多级调用25 小结:小结:函数分为系统函数和自定义函数。函数分为系统函数和自定义函数。每个函数的都是每个函数的都是独立定义独立定义的,如果函数定义在后、的,如果函数定义在后、调用在前,要对函数原型进行说明。调用在前,要对函数原型进行说明。除了主函数外,其他函数可以相互调用,如果除了主函数外,其他函数可以相互调用,如果A调用调用B,B又调用又调用C,称为嵌套调用,如果直接或,称为嵌套调用,如果直接或间接调用自己,称为递归。间接调用自己,称为递归。26 练习:练习:函数函数fun实现计算两个数之差的绝对值,并实现计算两个数之差的绝对值,并将差值返回调用函数,请编写将差值返回调用函数,请编写fun函数函数 fun(int x, int y)27 第第7周作业:周作业:1在主函数中输入三角形的的三条边,调用子在主函数中输入三角形的的三条边,调用子函数,判断是否能组成三角形,若可以则返回函数,判断是否能组成三角形,若可以则返回1否则返回否则返回0。在主函数中输出判断结果。在主函数中输出判断结果。2编写函数,求两个正整数编写函数,求两个正整数m和和n的最大公约数。的最大公约数。m 和和 n 作为函数的参数。函数返回运算结果,由作为函数的参数。函数返回运算结果,由主函数输出。主函数输出。4. 习题习题4.2 要求要求:第第8周上课前提交周上课前提交28(1) 程序区程序区:存放用户程序代码,即程序中各个函数的代码。:存放用户程序代码,即程序中各个函数的代码。(2) 静态存储区静态存储区:存放程序的全局数据和静态数据。分配在静态:存放程序的全局数据和静态数据。分配在静态存储区中的变量的生命期最长,它们在存储区中的变量的生命期最长,它们在main函数运行之前就函数运行之前就存在了,在程序的整个活动期(从程序开始执行到执行结束)存在了,在程序的整个活动期(从程序开始执行到执行结束)中,这些变量始终占用静态存储区中对应的存储空间,即程中,这些变量始终占用静态存储区中对应的存储空间,即程序开始执行时分配存储单元,程序执行完毕后释放。序开始执行时分配存储单元,程序执行完毕后释放。(3) 动态存储区动态存储区:存放局部变量。分配在动态存储区中的变量只:存放局部变量。分配在动态存储区中的变量只有在所定义的函数被调用时才分配存储单元,函数结束时就有在所定义的函数被调用时才分配存储单元,函数结束时就释放。系统对函数调用时的现场保护、返回地址等也占用动释放。系统对函数调用时的现场保护、返回地址等也占用动态保护区。

    注意事项

    本文(C语言模块化程序设计.ppt)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

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

    收起
    展开