PPT05_1第五章--函数.ppt

PPT05_1第五章--函数

第五章 函数;本章主要内容;5.1 结构化程序设计语言 ;子模块1; 5.1.2 引进子程序概念 模块化、分块编译、逐步求精 ↓↓↓ 简化代码、缩小长度及引进数学中的函数概念。 引进函数后,使得程序与问题本身具有极强的可对照性,十分清晰,增加—— (1)增加可读性 (2)增加清晰性 (3)增强正确性; 子程序技术将“做什么”与“怎么做”分离开 1.减轻程序员负担,关心“做什么”。 2. 设计子程序本身时,再具体关心“怎么做”。 子程序技术优点 程序逻辑结构清晰,易写、易读、易懂。 设计、调试、维护容易。;5.1.4 函数组成;5.2.1 函数的分类(1);函数的分类(2);;函数的分类(3);无参数无返回值的函数 无参数有返回值的函数 有参数无返回值的函数 有参数有返回值的函数 ;5.2.1 函数定义;参数列表;5.2.2 函数调用 (function-designator); 5.2.3 参数结合;主程序;5.2.4 函数返回;例子:函数定义与调用; 5.2.5 函数原型 任何函数的函数调用都在相应函数定义之后 C规定: 任何标识符都必须声明,而且必须先声明后使用 但不是所有程序都能做到这点——C引进概念 函数原型 ;5.3 函数调用程序实例;【5.1】有参函数程序设计 ;【5.2】函数举例(输入十个数,找出其中素数,并求平均数) int isprime(int); void main( ) { int i,a[10],sum=0,n=0; float aver; printf(Enter 10 numbers:\n); for(i=0;i10;i++) scanf(%d,a[i]); printf(\n); for(i=0;i10;i++) if(isprime(a[i])==1) /*若a[i]素数*/ { printf(%d ,a[i]); sum+=a[i]; /*求素数和*/ n++; /*统计素数个数*/ } ;aver=sum/n; /*求素数平均值*/ printf(\nsum=%d,aver=%f\n,sum,aver); } int prime(int x) /*该函数判断是否素数*/ { int i; for (i=2;i=x/2;i++) if (x%i==0) return (0); return 1; } ;5.4 参数 5.4.1 C参数传递规则 C只有值参数一种参数类别。函数调用时——实在参数的值传送到形式参数中。 值参数意味着: 1. 赋值兼容 2. “虚实结合” 3. 在函数活化期间,形参与实参无关 4. 当??数执行结束返回后,实参数无任何变化。 ;5.5 数组作参数 数组名即指针。 传递的信息实质上是一个地址。 使用数组作函数参数形式—— 形式参数用数组声明符说明: int f ( float x [10] ) 实在参数用数组名对应形式参数数组: float a[10] ; 则用如下形式调用函数 f(a) 函数调用f(a) 在函数执行期间,形式参数和实在参数使用一个数组。 ; 数组参数可以有各种变形: 省略最外层尺寸 如f的函数定义说明符可以使用 int f ( float x[ ] ); 多维相同—— int q ( float y[ ][20] ); 声明两维数组参数y ,y每行20个元素,具体多少行由实在参数数组决定。设有声明 float u[10][20] , v[15][20] ; 则函数调用—— q(u); q(v); 分别执行时, 数组大小不同。 ;【例5.3】利用数组参数重写第六章例6.4 ,用“主元排序”法对整数组A进行排序,使之能对任意整数数组排序。 把被排序数组和数组长度都作为函数的参数。 void sort ( int a[ ] , int n ) { int i,j,k,r ;

文档评论(0)

1亿VIP精品文档

相关文档