第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’ ; }