- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 飞行中鸟击的危害与防范(共48张PPT).ppt VIP
- 统编版小学语文二年级上册第六单元 先辈伟人 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx VIP
- 历史记载-中西闻见录15.pdf VIP
- 历史记载-中西闻见录13.pdf VIP
- 医疗文书书写及规范.ppt VIP
- 统编版语文二年级上册第六单元 追寻伟人足迹单元任务群整体公开课一等奖创新教学设计.docx VIP
- 合力CPCD35-KU5Y4G3 叉车零件图册l.pdf VIP
- 历史记载-中西闻见录12.pdf VIP
- 课前小游戏-看字说颜色(必须wps打开).pptx VIP
- 历史记载-中西闻见录11.pdf VIP
文档评论(0)