1 / 24
文档名称:

语言第十一讲学习教案.pptx

格式:pptx   大小:1,155KB   页数:24页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

语言第十一讲学习教案.pptx

上传人:wz_198613 2021/11/23 文件大小:1.13 MB

下载得到文件列表

语言第十一讲学习教案.pptx

相关文档

文档介绍

文档介绍:会计学
1
第一页,共24页。
函数的递归调用(diàoyòng)(嵌套调用(diàoyòng)的特例 )
概念:函数直接或间接地自我调用(diàoyòng)称为递归函数。
int fun1(int x)
{

z=fun1(y);

}
int fun1(int x) int fun2(int t)
{ {
… …
z=fun2(y); c=fun1(a);
… …
} }
直接(zhíjiē)引用自身
间接引用自身
递归在没有控制条件的情况下是无穷的递归。
#include<>
void main(void)
{
printf("*****\n");
main();
}
只有通过控制条件,使递归调用终止,才能应用。
#include<>
void main(void)
{ char ch ;
printf("******\n ") ;
ch=getchar() ;
if(ch!='9') main() ;
}
第1页/共24页
第二页,共24页。
递归举例(jǔ lì):求 n!
n!=
1 n=0或n=1
n(n-1)! n>1
f(n)=
1 n=0或n=1
nf(n-1) n>1
#include <>
long lfac(long);
void main(void)
{ long i,x;
scanf("%ld",&i);
x=lfac(i);
printf("\n%ld",x);
}
long lfac(long n)
{
if (n==0||n==1) return 1;
else return(n*lfac(n-1));
}
lfac(4)
4*lfac(3)
3*lfac(2)
2*flac(1)
2*1
3*2*1
4*3*2*1
递推
回归(huíguī)
= n×(n-1)×(n-2)× … × 3×2×1=n×(n-1)!
第2页/共24页
第三页,共24页。
变量的作用域和存储(cún chǔ)类型
变量生存期:变量占用(zhàn yònɡ)内存单元(活着)的时间。
内存中供用户使用(shǐyòng)的存储空间:
程序区:存放程序代码。
数据区:存放数据,分为动态存储区和静态存储区。
变量的生存期和作用域
C语言中,定义变量应包含三个内容:
① 数据类型:变量占用内存空间的大小。如:int, float, char。
② 作用域:变量在程序中的有效区域。
③ 存储类型:变量在内存中的存储方式。存储方式不同,变量占用内存时间不同。
① 静态存储区:定义变量(程序编译)时就分配内存单元,直到程序结束。生存期为整个程序运行期。
② 动态存储区:使用时才分配内存单元,使用完毕,立即释放。生存期为函数调用期。
第3页/共24页
第四页,共24页。
变量(biànliàng)的作用域:变量(biànliàng)在程序中的可使用范围(有效性)。
1. 局部变量
定义在函数内部(nèibù)的变量。也称为内部(nèibù)变量。放在动态区中,只有调用它的函数才能使用它。调用时才分配内存单元,调用结束,内存即刻被释放,
作用域:仅限于函数内部(nèibù)或复合语句内。
生存期:函数调用期间。
作用域可以是一个函数或一个复合(fùhé)语句,取决于定义变量的位置,可分为局部变量和全局变量。
注意:
不同的函数或复合语句中可以使用相同的变量名。因为它们作用域不同,所以它们互不干预。即:同名,不同作用域的变量是不同的变量。
第4页/共24页
第五页,共24页。
例: (见p137 )
#include<>
void func();
main()
{ int y=10;
printf(“1:y=%d\n”,y);
func();
printf(“2:y=%d\n”,y);
}
void func()
{ int x=5;