- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《C语言程序设计教程》-第五章 第五章 C语言函数 5.1 C语言程序的组成 5.2 函数的参数和返回值 5.3 函数的调用 5.4 程序编译预处理 5.5 存储类型和作用域 5.1 C语言程序的组成 5.1.1 C语言函数的结构 C语言函数:具有相对独立的、完整功能的实体。是完成某一功能的一段程序,是程序的基本组成成分。 2、函数的定义 形式1: [存储类型] [数据类型] 函数名(形式参数表) 形式参数说明; { 说明语句; 执行语句; } 形式2: [存储类型] [数据类型] 函数名(数据类型 形参1, 数据类型 形参2,……) { 说明语句; 执行语句; } 5.1.2 C语言程序的组成 1、程序的结构:一个大程序由多个源程序文件(程序模块)组成,而源程序文件由预编译和多个函数组成。 2、C语言程序源文件(程序模块)结构 包含文件: #include stdio.h 宏定义: #define PI 3.14159 条件编译: #if…#else…#endif 函数声明: 定义函数的原型 全局变量说明:函数外定义的变量 函数模块定义 5.2 函数的参数和返回值 5.2.1 带参数函数定义的一般形式 参数结合规则 静态上看,实参表中的实参与被调用函数中形参表的形参,按位置从左向右依次一一对应。若实参个数多于形参,右边多余的实参被丢弃;若实参个数少于形参,则右边多余的形参值不确定。 各个实参的计算次序依赖于实现。Turbo C从右向左。 参数结合动作 计算实参表达式的值。 把实参的值按赋值转换规则,转换成形参的类型。如果不能完成该转换,则因函数参数不一致,产生错误。 把转换后的实参值送入形参。 函数返回方式: return; return 表达式; return(表达式); 注: ①若函数无返回值,函数类型应定义为void。 ②函数类型非void时,若return语句后无表达式或无return语句,则执行到函数体末尾后,返回一个不确定的值。 ③return语句中表达式的类型与函数类型一致。若不一致,以函数类型为准。 带表达式的return语句的执行过程: 计算表达式的值。 把表达式值按赋值转换规则,转换成函数的结果类型。 用类型转换后的值作为函数值,并带着它返回到调用该函数处。 int f(int x,int y) { return x*y; } void main() { int a=3,b=2,c=9; int d; d=f(a+b,a+c); printf(%d\n,d); printf(%d\n,c); } #include stdio.h int x,y; int f(int z) { x=x+1; return(z*z); } int g(int u,int v) { …… } void main() { x=0; g(x,f(2)); } 1、数组元素作为函数的实参 和基本类型变量作为函数的实参一样,单向传递。 2、数组名作为函数参数 实参和形参都要使用数组名,传递的是数组的首地址,即将实参数组的首地址传递给形参数组名。 [例5.4]求两个班学生的平均成绩。 float average(array,n) float array[10]; int n; { int i; float aver,sum=array[0]; for(i=1;in;i++) sum+=array[i]; aver=sum/n; return(aver); } main() { float score1[5]={90,80,70,60,50}; float score2[10]={1,2,3,4,5,6,7,8,9,10}; clrscr(); printf(The average of class A is %6.2f.\n,average(score1,5)); printf(The average of class B is %6.2f.\n,average(score2,10)); } [例5.5]用选择法对数组中5个整数按由小到大排序。 [例5.6]有一个3*4的矩阵,求其中的最大元素。 max_value(array) int array[][4]; { int i,j,max; max=array[0][0]; for(i=0;i3;i++) for(j=0;j4;j++) if(array[i][j]max) max=array[i][j]; return(max); } main() { int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}}; clrscr
您可能关注的文档
- 2012届高考第一轮复习系中国的自然资源.ppt
- 2012届高考数学二轮复习精品课件完整版第2讲函数的图象与性质.ppt
- 2012届高三英语复习课件人教广东第2讲名词与主谓一致.ppt
- 2012届高三政治二轮复习课件:专题1生活与消费新人教版必修1共110张.ppt
- 2012年《航空画报》沈阳媒体推荐书.ppt
- 2012年高考语文一轮复习之古代诗歌鉴赏.ppt
- 2012年宏观经济分析—十字路口的经济转型与中国拐点.ppt
- 2012年北汽福田伦敦奥运营销方案.pptx
- 2012年秋季学期信息管理与信息系统专业信息组织课程语音答疑1118.ppt
- 2012年伦敦奥运会广告部资源及奥运频道软性广告植入昌荣广告.ppt
文档评论(0)