第八章函数要点总结.docVIP

  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文档。上传文档
查看更多
第八章函数要点总结

第八章 函数 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

文档评论(0)

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

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

1亿VIP精品文档

相关文档