c语言与程序设计-清华李宛洲.ppt

C 语言程序设计基础 2005.9 第七讲 函数 ( 一 ) 教学内容 ? 自己编制函数 ? 函数的基本概念 ? 函数调用中的变量传递 — 形式参数与实 际参数 ? 变量的作用域 ? 给调用函数的实参赋值的方法 — 传递地 址 如何编制自己的函数? int main(void) { long i=1,n=1;float x,j,sum,ex=1; printf(please val of x:\n); scanf(%f,x); j=x; sum=1.+x; do{ x*=j; i++; n*=i; sum+=x/n; ex=(x*j)/(n*(i+1)); }while(ex1.e-5); printf(N=%d,e(%.2f)=%.4f\n,i,j,sum); return(0); } ... ! 2 1 2 ? ? ? ? x x e x 定义一个误差函数 f 1)! (N x 1 N ? ? ? ? )) 1 ( * /( ) * ( ) , , , ( ? ? i n j x i n j x f 函数值应是浮 点数 , 赋给 ex 自变量是 x,j,n,i float f(float x,float j,long n,long i); int main(void) { long i=1,n=1;float x,j,sum,ex=1; printf(please val of x:\n); scanf(%f,x); j=x; sum=1.+x; do{ x*=j; i++; n*=i; sum+=x/n; ex=f(x,j,n,i); }while(ex1.e-5); printf(N=%d,e(%.2f)=%.4f\n,i,j,sum); return(0); } 调用函数 f, 它有 x,j,n,i 四个参数 , 结果赋给 ex 函数 f 的说明 , 有 x,j,n,i 四个参数 , 返回值是 float 型 float f(float x,float j,long n,long i) { return((x*j)/(n*(i+1))); } 函数 f 的程序体 , 它有 x,j,n 四个参数 , 返回一个浮点类 型结果给调用者 return() 将函数 f 的 结果返回给调用者 定义函数的三要素 : 函数说明 , 调用参数 , 函数类型 ( 返回值 ) int main(void) { int num; coutinput a num:\n; cinnum; while(num){ coutsqr(num)=num*num\ ; coutinput a num:\n; cinnum; } coutclosed!\n; return(0); } 读入一个数,若非零则求其平方,否则退出。 若满足非零条件,则求平方 重新提示输入信息 重新输入一个数 int main(void) {int t; while(t=readnum()) sqrnum(t); return(0); } int readnum() {int t; coutinput a num:\n; cint; return(t); } void sqrnum(int num) {coutsqr(num)=num*num\ ;} int readnum(); void sqrnum(int); 说明了两个函数 , 一个是整数类型 , 没有参数 ; 一个是无值类型(没返回值) , 有一个整数参数。 主函数 调用 readnum 函数的结果赋给 t t 若非零 , 则调用 sqrnum 函数 , 参数 为 t ,没有返回值 readnum 函数体,没有调用参数 读入 t 并返回 sqrnum 函数体,对传 递过来的参数 t 求平方 程序用定义函数的办法 处理输入与运算功能 , 显 得非常结构化 , 干净 ! 函数的基本概念 ? C源程序必须有 , 也只能有一个主函数 main ; ? 程序一定是从 main 函数开始,最后在 main 函 数中结束整个程序的运行。 ? 一个源文件由一个或多个函数组成; ? 除去 main 函数之外,所有函数都是平行的、 互相独立的,即在一个函数内只能调用其他 函数,不能再定义一个函数(嵌套定义)。

文档评论(0)

1亿VIP精品文档

相关文档