C程序设计第8章课件.pptVIP

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

第八章 8.1 概述 说明: 以前的C版本的函数声明方式不是采用函数原型,而只声明函数名和函数类型。 例如:float add( ); 不包括参数类型和参数个数。系统不检查参数类型和参数个数。新版本也兼容这种用法,但不提倡这种用法,因为它未对函数调用的合法性进行全面的检查。 (2) 如果被调用函数的定义出现在主调函数之前,可以不必加以声明。因为编译系统已经先知道了已定义函数的有关情况,会根据函数首部提供的信息对函数的调用作正确性检查。 (3) 如果已在文件的开头(在所有函数之前),已对本文件中所调用的函数进行了声明,则在各函数中不必对其所调用的函数再作声明。 char letter(char, char); /*以下3行在所有函数之前,且在函数外部*/ float f(float, float); int i(float, float); void main() /*在main函数中要调用letter、f和i函数*/ {…} /*不必对它要调用的这3个函数进行声明*/ /*下面定义被main函数调用的3个函数*/ char letter(char c1,char c2) /*定义letter函数*/ {…} float f(float x,float y) /*定义f函数*/ {…} int i(float j,float k) /*定义i函数*/ {…} (4) 如果被调用的函数类型为整型,C语言允许在调用函数前不必作函数原型声明。 但是使用这种方法,系统无法对函数参数的个数和类型进行检查。若调用函数时参数使用不当,在编译时不会报错,而在运行时出错。而且,用TC和VC++时,要求对所有被调用的函数进行声明,下面的程序在TC和VC++中通不过。 void main() { /*可以没有函数原型声明*/ int i=2,p; p=f(i,++i); /*函数调用*/ printf(“%d\n”,p);} f(int a,int b) /*定义整型函数,省写了类型标识符*/ { int c; if(ab) c=1; else if(a==b) c=0; else c=-1; return(c);} 说明: (1)在定义函数时,3个函数f、xpoint、root是互相独立的,并不互相从属。 (2)3个被调用的函数的定义位置均在调用它的函数之前,因此不必对这3个函数进行声明。 (3)程序从main函数开始执行。先执行一个do…while循环,作用是输入x1和x2,直到f(x1)和f(x2)异号。然后调用root(x1,x2)求根x,如图。 (4)在root函数中要用到求绝对值的函数fabs,它是对实型数求绝对值的标准函数,属于数学函数库,故在文件开头用 #include math.h。 注意: 程序不应出现无终止的递归调用,而只应出现有限次数的,有终止的递归调用。 可用if语句来控制,只有在某一条件成立时才继续执行递归调用;否则,不再继续。 说明: age函数共被调用5次,即age(5)、age(4)、 age(3)、 age(2)、 age(1)。 其中age(5)是main函数调用的,其余4次是在age函数中调用的,即递归调用4次。 #include stdio.h void main() { float fac(int n); /*函数声明*/ int n; float y; printf(input an integer number:); scanf(%d,n); y=fac(n); /*函数调用*/ printf(%d!=%10.0f\n,n,y); } float fac(int n) /*函数定义*/ { float f; if(n0) {printf(n0,dataerror!);} else if(n==0||n==1) f=1; else f=fac(n-1)*n;

文档评论(0)

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

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

1亿VIP精品文档

相关文档