- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 用函数实现模块化程序设计 8.1 概 述 一、C函数的概念 二、C函数与C程序结构 三、C函数的特点 四、函数的分类 8.2 函数定义的一般形式 一、 函数定义一般形式 8.3 函数参数和函数值 一、 形式参数和实际参数 四、函数的返回值 五、对被调用函数的声明 (说明) 8.4 函数的嵌套调用 8.7 函数的递归调用 int age(int n) { int c; if(n==1) c=10; else c=age(n-1)+2; return(c); } main( ) { printf(%d\n,age(5)); } 8.8 局部变量和全局变量 一、局部变量 二、全局变量(外部变量) 例7.14 有一个一维数组,存10个学生成绩,写一个函数,求出平均分,最高分和最低分。 #include stdio.h float max=0,min=0; /*全局变量*/ float average(float array[ ], int n) /*定义函数,形参为数组*/ { int i; float aver,sum=array[0]; max=min=array[0]; for (i=1; in; i++) {if (array[i]max) max=array[i]; else if (array[i]min) min=array[i]; sum=sum+array[i]; } aver=sum/n; return(aver); } main ( ) { float ave,score[10]; int i; for (i=0; i10; i++) scanf (%f,score[i]); ave=average(score, 10); printf(max=%6.2f\nmin=%6.2f\naverge=%6.2f\n,max,min,ave); } 写一个函数,使给定的一个3×3二维整型数组转置,即行列互换 main() { int a[3][3]={1,2,3,4,5,6,7,8,9}, i , j; convert(a); for(i=0;i3;i++) for(j=0;j3;j++) printf(“%3d”, a[i][j]); printf(“\n”); } void convert(int x[][3]) { int i, j, t; for(i=0;i3;i++) for(j=0;j3;j++) { t=x[i][j]; x[i][j] = x[j][i]; x[j][i] = t; } } main() { int a[3][3]={1,2,3,4,5,6,7,8,9}, i , j; convert(a); for(i=0;i3;i++) for(j=0;j3;j++) printf(“%3d”, a[i][j]); printf(“\n”); } void convert(int x[][3]) { int i, j, b[3][3]; for(i=0;i3;i++) for(j=0;j3;j++) b[[i][j] = x[j][i]; } 是否正确?如不正确,如何改正? 数组b是函数convert中局部变量,函数执行完后,释放数组b空间。 将数组b空间在主程序中分配 main() { int a[3][3]={1,2,3,4,5,6,7,8,9}, b[3][3], i , j; convert(a, b); for(i=0;i3;i++) for(j=0;j3;j++) printf(“%3d”, b[i][j]); printf(“\n”); } void convert(int x[][3], int y[][3]) { int i, j; for(i=0;i3;i++) for(j=0;j3;j++) y[[i][j] = x[j][i];
文档评论(0)