第7章 函数和存储类别.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上一页 下一页 返 回 (2)静态全局变量 如果希望在一个文件中定义的全局变量的作用域仅局限于此文件中,而不能被其他文件所访问,可以将其定义为静态全局变量。 全局变量f称为静态全局变量(或静态外部变量),它的作用范围是从定义它的位置开始到该文件的结束,而在本程序的其他文件中无法使用该变量。 需要注意的是,全局变量本身都是静态存储的,即在静态存储区中为其分配单元,并不是加上static关键字后才是静态存储的,所以静态全局变量和一般全局变量的区别仅仅是其作用域的不同。 7.4 函数应用举例 【例7.11】 编写一函数,统计字符串中字母的个数 【程序代码】 #include stdio.h int isalp(char c) {if(c=ac=z||cAc=Z) return 1; else return 0;} 上一页 下一页 返 回 main( ) { int i,num=0; char str[80]; printf(Input a string:\n); gets(str); for(i=0;str[i]!=\0;i++) if(isalp(str[i])) num++; puts(str); printf(num=%d\n,num); } 运行结果如下: 上一页 下一页 返 回 【例7.12】求组合数 的值 【编程思路】 (1)组合数的计算公式为: (2)定义函数cmn(m,n)用来计算组合数。函数中3次计算阶乘,因此又可以定义一函数fac(k),用以计算阶乘。 【程序代码】 #include stdio.h long fac(int x); int cmn(int m,int n); main( ) { int c; c=cmn(8,5); printf(c(m,n)=%d,c); } 上一页 下一页 返 回 long fac(int k) { int i; long y=1; for(i=1;i=k;i++) y=y*i; return y; } int cmn(int m,int n) { int mn; mn=fac(m)/(fac(n)*fac(m-n)); return mn; } 运行结果如下: * * 第7章 函数及存储类别 下一页 返 回 本章要点 函数的定义方法 函数的返回值与函数的类型 函数的调用方法 函数的嵌套与递归 变量的作用域 变量的存储类 学习方法建议 学习本章内容时,应深入理解函数的实参和形参之间的传递关系及函数值的返回方法。函数的递归调用不太好理解,可以找一些参考书,多读一些这方面的程序,变量的存储类要注意掌握static类型与auto类型的区别。 目 录 7.1 函数的定义与调用 7.2? 函数的嵌套调用与递归调用 7.3 变量的作用域与存储类别 7.4 函数应用举例 返 回 上一页 7.5 本章小结 7.1 函数的定义与调用 C语言是通过函数来实现模块化程序设计的,从函数定义的形式看,C语言中的函数可可分为两类:无参函数和有参函数。无参函数可以带回函数值,也可以不带回函数值,但一般以不带回函数值的居多。有参函数在调用时,在主调函数和被调用函数之间有数据传递。即主调函数将数据传给被调用函数,被调用函数中的数据也可以带回来供主调函数使用。 下一页 返 回 7.1.1 函数的定义 函数定义的一般形式 函数类型 函数名([形参表]) { 声明部分 执行部分 } 上一页 下一页 返 回 说明: (1)函数类型:用于指定函数带回来的值的类型,可以是任何有效类型。函数类型若省略,则系统默认为int型,这时函数返回一个整数值。当函数无返回值时函数类型一般应写成void,称为无类型或空类型,以明确告诉C编译系统该函数无返回值。 (2)形参表:它是一个用逗号分隔的变量说明表,表中的参数称为“形式参数”,简称“形参”。形参用于主调函数和被调用函数之间进行数据传递,即当函数被调用时,形参接收实参传过来的值。 参数表的定义形式如下: 类型标识符 形式参数1,类型标识符 形式参数2,…… 如:float area(float a,float b,float c) (3)形式参数和函数体均可以为空,形参为空时,一对圆括号不能省,称无参函数;函数体为空时,一对花括号也不能省,称空函数。调用空函数时,不做任何操作,只是表明这里需要调用一个函数。如: int add ( ) { } 上一页 下一页 返 回 【例7.1】 编一函数,求l + 2 + 3 + …… + n的值。 【编程思路】 本题中的n是可变的,不同的n将会得到不同的结

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档