第四章模块化程序设计1.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文档。上传文档
查看更多
第四章模块化程序设计1

第4章 模块化程序设计 ;第4章 模块化程序设计 ;4.1函 数 ;main(void) { ┇ f1(); ┇ f2(); ┇ return 0; };4.1.2 函数结构 ;1.函数头 函数类型 函数名(形式参数表列) 一个函数的函数头的结构如下: (1)函数类型。指定函数值的类型,即函数返回值的类型。 (2)函数名。函数名必须采用合法的用户标识符。 (3)圆括号:在函数名后面的一对圆括号是“函数运算符”,表示进行函数运算,函数运算符具有很高的运算优先级别 (4)形式参数表。形式参数表由写在一对圆括号(函数运算符)中的一系列参数组成。每一个参数由一个类型符和一个参数名组成。参数名也应当是合法的用户关键字。函数可以没有参数,这时在函数运算符内写一个“void”,也可以空允白。;2. 函数体 函数体由一些语句组成。主要是三种类型的语句: 声明语句:声明在函数??要使用的变量等程序实体。 可执行语句:包括若干流程控制 语句和表达式语句,。 return语句:使流程返回到调用处。 这里主要介绍return语句的用法。 当函数执行到return语句时,将停止本函数的执行,将流程送回到调用处。同时,编译器将函数分为三类进行处理: 纯粹计算型函数,如sqrt()和sin()。这类函数将返回一个计算结果。 完成一项具体工作,返回完成的成败。如printf()执行成功时,返回显示的字节数;失败时,返回一个负整数。 只执行一个过程的函数,不产生返回值,其类型应定义为void。 C99规定,对于非void类型的函数,必须使用有返回值的return语句。;int absolutevalue (int x) { return (x=0?x:-x); } void spc (int n) { int i; for (i=0; in ; i++) printf (″ ″); return; };3. 函数中变量的作用域 ;#include stdio.h int func(int x) { x=5; return x+3; } int main(void) { printf(x=%d\n,x); return 0; } 这个程序企图在main函数中使用func函数中的变量x。编译这个程序,系统将给出如下编译错误: c(13) : error C2065: x : undeclared identifier;4. 空函数;4.1.3 函数定义与函数声明 ;2. 函数声明 ;设有一函数的定义为: double func (double a, int b, char c) { /* 函数体*/ } 与之相应的函数声明应为: double func (double x, int y, char z); /* 注意末尾的分号 */;4.1.4 虚实结合与传值调用 ;1. 函数调用时的虚实结合;2. 传值调用的虚实结合过程 ;#include stdio.h void swap (int x, int y); int main(void) { int a=3, b=5; swap (a,b); printf (″a=%d, b=%d\n″, a,b); return 0; } void swap (int x, int y) { int temp; temp=x, x=y, y=temp; /* 交换变量的值 */ printf(″x=%d,y=%d\n″,x,y); } 执行结果: x=5,y=3 a=3,b=5;4.1.5 递归函数 ; 递归计算n!的函数rfact( )。 通常,n的阶乘可以描述为: n!=1·2·…·n 但是,也可以描述为: n!= n·(n-1)·…·2·1 或者可以写为: n!= n·(n-1)! 更一般的形式是:; 这就形成一个递归表达式。这个递归表达式可以用下面的函数实现。 long rfact(int n) { if (n0) { printf(″Negative argument to fact !\n″); exit (-1); } else if (n=1) return (1); else return (n*rfact (n-1)); /*自己调用自己*/ } ;当n=5时rfact的其调用和回代过程。;汉诺塔(Tower of Hanoi)问题。 ; 下

文档评论(0)

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

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

1亿VIP精品文档

相关文档