网站大量收购闲置独家精品文档,联系QQ:2885784924

模块化程序设计与语言函数.ppt

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

外部变量与局部变量之间的同名屏蔽外部变量与局部变量同名时,自动屏蔽同名外部变量。为此,C语言提供了外部变量作用域的扩展技术,以便将外部变量的作用域进行文件内部的扩展和文件之间的扩展。①外部变量的作用范围在声明文件内扩展*例6-23*(P156)②外部变量只限定在声明文件中引用*static将外部变量限定在本文件引用(静态外部变量),在其他文件中不能引用。例*:(P155图6-25)③外部变量的作用域扩大到其他文件*例6-24*(P157)第62页,共66页,星期六,2024年,5月外部变量的副作用问题例6-25外部变量使用不当时的副作用。#includestdio.hinti;voidprt(void);intmain(void){for(i=0;i5;i++)prt();return0;}/*Endofmain()*/voidprt(void){for(i=0;i5;i++)printf(%c,*);printf(\n);return;}/*Endofprt()*/当程序规模增大、模块越来越多时,模块间的联系和依赖会越来越多,模块本身的独立性将急剧下降。外部变量使用不小心会带来更多的模块设计及系统集成逻辑错误。过多使用外部变量还会造成计算机资源的浪费和紧张。在系统设计和实现时应尽量有条件地运用外部变量。第63页,共66页,星期六,2024年,5月6.4模块化程序设计实例例6-26**求n个数的最小者并记录其在原始序列中的序号。要求n在运行时输入。例6-27*以例6-3为基础,给出根据输入参数打印不同形状九九表的程序。第64页,共66页,星期六,2024年,5月小结模块化和结构化程序设计是面向过程程序设计技术的重要方法学内容。抽象、分解、自顶向下的逐步求精和模块划分的独立性等特性是基于模块化问题求解和程序设计的基本方法。掌握函数的声明、定义和调用等方法。掌握与程序模块相关的变量存储属性。熟练运用、掌握模块化程序设计和实现的具体方法和过程。主要知识点:第65页,共66页,星期六,2024年,5月TheEnd第66页,共66页,星期六,2024年,5月形参与实参形参:定义函数时函数名后面括号中的变量名实参:调用函数时函数名后面括号中的表达式c=max(a,b);main()max()intmax(intx,inty){intz;z=xy?x:y;return(z);}/*Endofmax()*/例比较两个数并输出大者。#includestdio.hintmax(intx,inty);intmain(void){inta,b,c;scanf(%d,%d,a,b);c=max(a,b);printf(Maxis%d,c);}/*Endofmain()*/intmax(intx,inty){intz;z=xy?x:y;return(z);}/*Endofmax()*/形参实参第30页,共66页,星期六,2024年,5月说明:实参必须有确定的值形参必须指定类型形参与实参类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换——函数调用转换形参在调用前不占内存;调用执行时为形参分配内存;调用结束,释放空间。其存储空间是不固定的且值是不可继承的实参是特定存储空间中的值,在调用期间值不会发生变化且存储空间相对固定第31页,共66页,星期六,2024年,5月例6-7形参和实参的虚实结合实例。#includestdio.hfloataverage(floatval_1,floatval_2,floatval_3){ floatave; ave=(val_1+val_2+val_3)/3.0; returnave;}/*Endofaverage()*/intmain(void){ floatx=1,y=2,z=3,q=4,t=5; floatave_1,ave_2; ave_1=average(x,y,z); printf(ave_1=%f\n,ave_1); ave_2=average(x,q,t); printf(ave_2=%f\n,ave_2); return0;}/*Endofmain()*/654706547465486654906549465478

文档评论(0)

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

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档