当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《C语言》 第13讲 函数的调用和变量的作用域

资源类别:文库,文档格式:PPT,文档页数:25,文件大小:128KB,团购合买
第13讲函数的调用和变量的作用域 一、函数的调用 1、函数的嵌套调用 2、函数的递归调用 二、变量的作用范围 1、局部变量 2、全局变量
点击下载完整版文档(PPT)

第13讲函数的调用 和变量的作用域 、函数的调用 1、函数的嵌套调用 2、函数的递归调用 、变量的作用范围 1、局部变量 2、全局变量

第13讲 函数的调用 和变量的作用域 一、函数的调用 1、 函数的嵌套调用 2、 函数的递归调用 二、变量的作用范围 1、 局部变量 2、 全局变量

、函数的调用 1、函数的嵌套调用 嵌套调用:在一个函数调用过程中又调用另一个 函数

嵌套调用:在一个函数调用过程中又调用另一个 函数。 一、函数的调用 1、 函数的嵌套调用

例嵌套调用 qianI( int x, int y) qian2(int x, int y f c,S,t; freturn(X+y); s=X+y; tx-y; c=qian2(S, t); main return(c); fint a=1, b=2,c; printf("c=%d\n",c); C=2*qian(a, b), printf(c=%d\n",c);

例 嵌套调用: qian1( int x, int y ) { int c, s, t ; s=x+y; t=x-y; c=qian2(s, t); return (c); printf("c=%d\n", c); } qian2( int x , int y ) { return ( x + y ) ; } main( ) { int a=1, b=2, c ; c=2*qian1(a, b); printf("c = %d\n", c); }

例统计字符个数 #include stdio.h! long coutch();/利用函数原型声明函数 main( flong n; n=coutch() printf( n=%ldn",n); long counch f long cn i for(cn=0; getchar(!='n; cn++); return cn i

例 统计字符个数 #include "stdio.h" long countch( ); /* 利用函数原型声明函数 */ main( ) { long n ; n = countch( ) ; printf( " n= %ld\n", n ) ; } long countch( ) { long cn ; for ( cn=0 ; getchar( ) != ‘\n’; cn++) ; return cn ; }

例连接两个字符串 #include stdio. h int chu( charx[ d); /函数原型声明* void lianjie(charx[l, char y D maino i char a[100, b 20]; int i, k gets(a); gets(b) lianjie(a, b ) puts(a); int chd( char c[100)) /测试字符串长度* fint k, for(k-=0; ck!=0; k++); return k. void lianjie( char x, chary)/连接字符串* fint k, m; k-chdu(x) for( m=0; ym: =10; m++)xk+m]=ym xk+m]=0;}

例 连接两个字符串 #include "stdio.h" int chdu( char x[ ] ); /* 函数原型声明*/ void lianjie(char x[ ], char y[ ]); main() { char a[100], b[20]; int i,k; gets(a); gets(b); lianjie(a,b); puts(a); } int chdu( char c[100] ) /* 测试字符串长度*/ { int k ; for(k=0;c[k]!='\0';k++); return k; } void lianjie( char x[], char y[]) /* 连接字符串*/ { int k, m ; k=chdu(x); for ( m=0 ;y[m]!='\0'; m++ ) x[k+m]=y[m] ; x[k+m]=‘\0’ ; }

例输入两个数,求它们的和、差、积、商。 maino float x, y; float add(float, float), min(float, float), mul(float, float), div (float, float); printf(" Please input two numbers scanf(%of,%of, &x, &y); printf(%of+%f=%fn"x, y,add(x, y)); printf( %of- %f%fn",x, y, min(x, y)); printf(%of%f=%fn,x,y, mul(x, y)) printf(%of/%f=%fn", x, y, div(x, y));

例 输入两个数,求它们的和、差、积、商。 main() { float x,y; float add(float,float),min(float,float),mul(float,float),div(float,float); printf("Please input two numbers:"); scanf("%f,%f",&x,&y); printf("%f+%f=%f\n",x,y,add(x,y)); printf("%f-%f=%f\n",x,y,min(x,y)); printf("%f*%f=%f\n",x,y,mul(x,y)); printf("%f/%f=%f\n",x,y,div(x,y)); }

float add(float xx, float yy) float zz; ZEXX+yY; return(zz) float min(float Xx, float yy) i float zz; ZFXX-yy return(zz;

float add(float xx,float yy) {float zz; zz=xx+yy; return(zz); } float min(float xx, float yy) { float zz; zz=xx-yy; return(zz); }

2、函数的递归调用 递归调用:在调用一个函数的过程中又出现 直接或间接地调用该函数本身。这样的调用 称为递归调用。 递归调用必须可以满足一定条件时结束递归 调用,否则无限地递归调用将导致程序无法 结束

2、 函数的递归调用 递归调用:在调用一个函数的过程中又出现 直接或间接地调用该函数本身。这样的调用 称为递归调用。 递归调用必须可以满足一定条件时结束递归 调用,否则无限地递归调用将导致程序无法 结束

例计算 Fibonacci(斐波拉契)数列 long fib( int n) dif (n>2) return(fib(n-1)+fib(n-2)); else return(1); main O i printf ("%ld \n", fib(6));

例 计算Fibonacci(斐波拉契)数列 long fib( int n ) { if (n>2) return (fib(n-1)+fib(n-2)); else return ( 1 ); } main() { printf(" %ld \n",fib( 6 ) ); }

例使用递归算法编写计算n!的函数。 long fac(int n) if(n==1)return 1; else return n *fac(n-1); void maino int m. scanf ("%d", &m); printf(%02d =%dn", m, fac(m))

例 使用递归算法编写计算n!的函数。 long fac(int n) { if (n==1) return 1; else return n*fac(n-1); } void main() { int m; scanf ("%d",&m); printf("%2d!=%d\n",m,fac(m)); }

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共25页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有