- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章函数要点总结
第八章 函数
1、程序的结构:
程序由文件组成;文件由函数及预处理命令
(#include及#define命令行)、外部变量组成;
源程序文件以.c命名,为一个编译单位;一个函
数作为一个较独立的模块实现一定的功能。
2、函数的定义:
(1)有参函数定义基本形式如下:
函数值类型 函数名(类型 参数1,类型 参数
2,……)
{ 定义变量;
算法实现;
返回函数值;
(函数若为void空类型则不需此句)}
例如:int gy(int m,int n)
{int r;
while((r=m%n)!=0)
{m=n;n=r;}
return n;}
(2)无参函数函数名后括号内为空,其它与(1)同(不太常用);
3、函数的调用:
例如:int gb(int m,int n) /*定义公倍数*/
{return m*n/gy(m,n);} /*调用了gy(m,n)*/
函数间可以互相调用,但不能调用main函数。
如果使用库函数,应在本文件开头用#include
命令将有关库函数“包含”到本文件中来。
如果使用自定义的函数,则应该在主调函数中对
被调用的函数作声明(函数首部加;即可)。
建议尽可能将被调函数写在主调函数之前,此时
不需对被调用的函数作声明。
C语言不能嵌套定义函数,但可以嵌套调用函
数,也可以递归调用(效果相当于循环);
4、函数之间的数据传递:
(1)调用时实参传给形参(单向传递),形参
不回传;
(2)被调函数通过return语句给主调函数返
回一个函数值;
(3)一般若函数中只求一个结果,则定义为数
据类型,用return语句返回结果;若函数需得
到的值不只一个,则定义为void类型,采用参
数传递地址,函数中改变地址中的内容的方法
间接实现数据的共享。
(4)必要时也可定义全局变量增加函数之间的
数据联系,但尽量不用此法!
5、数组作参数:
此时传递的是数组的首地址!(即形参数组与实
参数组共用一段内存,此时若形参数组内容改
变,则实参数组随之改变,可间接实现形参与实
参数据共享。
(加*的不做重点要求)
*6、全局变量与局部变量
在函数外部定义的变量为全局变量,在函数内
部定义的变量为局部变量(目前所用的变量均为局
部变量,如非必要,尽量不使用全局变量)所有函
数内部定义的变量只在自己函数体内有效,其它函
数中不能使用。
*7、静态变量与动态变量
目前所用变量均为动态变量,静态变量在编译
时赋初值(即仅赋一次初值),要求读懂即可!
*8、外部变量与内部变量
在函数外定义变量,在其它函数中(或文件)
使用时声明为外部变量(用extren)。
例:8.2 #includemath.h
bdshigen(float a,float b,float d)
{float x1,x2;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf(“两不等实根为%f,%f\n”,x1,x2);}
xdshigen(float a,float b)
{float x;
x=-b/(2*a); printf(“两相等实根为%f\n”,x);}
bdxugen(float a,float b,float d)
{float x1,x2;
x1=-b/(2*a);
x2=sqrt(-d))/(2*a);
printf(“两不等虚根为”);
printf(“%f+%fi,%f-%fi\n”,x1,x2,x1,x2);}main()
{float a,b,c,d;
scanf(“%f,%f,%f”,a,b,c);
d=b*b-4*a*c;
if(a==0)printf(“不是一元二次方程\n”);
else if(d0)bdshigen(a,b,d);
else if(d0)bdxugen(a,b,d);
else xdshigen(a,b);}
例:8.8 #includestdio.h
f(int n,char c1[])
{int i=0,j; char c[10];
while(n!=0)
{c[i]=n%10+’0’; n=n/10;i++;}
for(j=0;ji;j++){c1[2*j]=c [i-1-j]; c1[2*j+1]=’ ’;}
}
void main()
{int n,x,i;
char c[20]={‘\0’};
scanf(“%d”,x);
f(x,c);
printf(“%s ”,c);}
例:8.13
float p(int n,float x)
{if(n==0)return 1;
else i
您可能关注的文档
最近下载
- 中学语文课外活动计划.docx VIP
- 打造高水平双师队伍的探索与实践——以深圳职业技术学院物流管理专业为例.pdf VIP
- “双高计划”背景下高水平“双师型”教师队伍建设路径探究.docx VIP
- FANUC机器人..ppt VIP
- (新教材)部编人教版一年级上册语文全册核心素养教案(教学反思有内容+二次备课版).pdf
- 《“双高计划”背景下高职院校高水平双师队伍建设研究》总结报告.docx VIP
- 《中医学》舌诊--课件.ppt VIP
- 北京大学口腔医学院《352口腔综合》[专业硕士]历年考研真题汇编合集.docx
- GB T 42061-2022 医疗器械标准 条款讲解 培训教程.pptx VIP
- 2024年成都中医药大学辅导员招聘考试笔试题库及答案解析.docx VIP
文档评论(0)