第6章 函数和模块化程序设计基础.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 函数和模块化程序设计基础

第6章 函数与模块化程序设计基础; 6.1 概述;3. 功能模块;4. 函数: 完成相对独立功能的程序;程 序 实 现:;(2)求某月的天数。 /*函数month_days调用函数leap判断year是否为闰年*/ int month_days(int year,int month) { int ds,d; switch(month) {case 1: case 3: case 5: case 7: case 8: case 10: case 12:d=31;break; case 2:d=leap(year)?29:28;break; /*若为闰年,d赋值29,否则赋值28*/ default:d=30;} return d; } ;(3)求天数和。 /*函数days调用函数month_days,求各月份对应的天数*/ int days(int year,int month,int day) {int i,ds=0; for (i=1;imonth;i++) ds=ds+month_days(year,i); ds=ds+day; return ds; } ;(4)主函数。 void main() { int year,month,day,t_day; printf(Input year-month-day:\n); scanf(%d-%d-%d,year,month,day); /*函数scanf作为输入模块是系统定义的, 主函数main可以直接调用它*/ t_day=days(year,month,day); /*求天数和*/ printf(%d-%d-%d is %dth day of the year! \n,year,month,day,t_day); /*函数printf作为输出模块也是系统定义, 主函数main可以直接调用*/ };二. 模块设计原则;2. 模块大小适中;6.2 函数的定义; C语言库函数所用到的常量、外部变量、函数类型和参数说明,都在相应的头文件(扩展名为.h)中声明,这些文件通常存放在系统目录tc\include。如:;二. 用户自定义函数;定义形式二: 函数值类型名 函数名(形式参数类型及参数说明) {数据说明部分 语句 };3. 函数由函数说明与函数体两部分构成。;◆函数体结束在“}”括号处。;(3) return语句的表示形式如下: return 表达式; 或 return(表达式);;例6-3:写出以下程序的运行结果。 max( ) /*函数类型缺省,为int型,return语句缺省*/ { } min( ) /*函数类型缺省,return语句缺省表达式*/ {return ;} main( ) {printf(%d,%d\n,max(),min());} 程序运行结果为: -256,-256 /*返回值不确定,TC2开发环境中返回值为0*/;◆在具有多个函数的C程序中,主函数出现的位置并不重要。为阅读方便,可将主函数main放在最前面。为了避免过多的函数声明语句,习惯上将主函数放在所有函数之后。不论主函数放在什么位置,一旦启动该程序,总是从主函数开始执行,并且最终在主函数结束整个程序的执行。;; ;C语言中函数调用的三种形式:;例6-4, 函数语句调用与函数表达式调用。 #include stdio.h void main() {printf(\nk1=%d,printf(\n%k2));} 程序运行结果为: k2 k1=3;void main( ) /*主函数中采用函数参数调用形式调用函数max2*/ { int x,y,z,m; scanf(%d,%d,%d,x,y,z); printf(max=%d\n,max2(max2(x,y),z)); / *内层函数max2的值作为外层函数max2的实参,整个函数max2的值又作函数printf的的实参*/ };2. 函数声明;例6-6: 编程求两个整数的阶乘之和。;二. 形参与实参;例6-7,求方程ax2+bx+c=0(a?0)的实数根。 ;if(d) {x1=(-b+sqrt(dt))/(2*a); x2=(-b-sqrt(dt))/(2*a); printf(实根x1=%f,x2=%f\n,x1,x2);} else printf(无实数根!\n); } int dict(a,b,c) /*定义函数dict及形参说明*/ float a,b,c; {float

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档