c06计算机C语言复习课件资料.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
主要内容 程序举例 一般来说,递归需要有边界条件、递归推进段和递归返回段。当边界条件不满足时,递归推进;当边界条件满足时,递归返回。上面例子中边界就是n==1 在考虑使用递归算法编写程序时,应满足两点: 1)该问题能够被递归形式描述; 2)存在递归结束的边界条件,此时不能出现递归调用,否则永远无法返回。 程序举例 程序举例 程序举例 循序渐进式编程 小学生加法考试题 /* 函数功能: 计算两整型数之和,如果与用户输入的答案相同,则返回1,否则返回0 函数参数: 整型变量a和b,分别代表被加数和加数 函数返回值:当a加b的结果与用户输入的答案相同时,返回1,否则返回0 */ int AddTest(int a, int b) { int answer; printf(%d+%d=, a, b); scanf(%d, answer); if (a+b == answer) return 1; else return 0; } 递归 阅读程序,给出程序结果 #include stdio.h void Bin(int x) { if (x/2 0) Bin(x/2); printf(%d\n, x%2); } main() { Bin(12);} char st[]=“hello,friend!”; void func1(int i) {printf(“%c”,st[i]); if (i3) func2(i);} void func2(int i) {printf(“%c”,st[i]); if (i3){i+=2;func1(i);} main() {int i=0; func1(i); printf(“\n”); } 结果是: hhllo 解释: i=0,调用func1, 显示st[0]=‘h’ 因:i3成立,i+=2后,i=2,调用func2, 显示st[2]=‘l’ 又因i3成立, i+=2后,i=4,又调用func1,显示st[4]=‘o’ 此时: :i3 不成立,返回到func2,再返回到func1,最后返回main §6.5.2 局部变量 在函数内定义的变量,其作用范围局限于此函数体内部,这种变量叫局部变量,函数的形参、在main函数中定义的变量也是局部变量。 局部变量在函数被调用时由系统分配存储区,在不同的函数中同名的变量实际上在内存中占不同的单元,因此在不同的函数中可以定义相同名字的局部变量。 #include “stdio.h” void fun(int x, int y) { int z=10; x+=10; y+=10; if(z) { int z=20; printf(“x=%d y=%d z=%d\n”, x, y, z); } printf(“x=%d y=%d z=%d\n”, x, y, z); } int main() { int x=10, y=10, z=10; fun(x, y); printf(“x=%d y=%d z=%d”, x, y, z); return 0; } 程序的运行结果是: x=20 y=20 z=20 x=20 y=20 z=10 x=10 y=10 z=10 §6.5.3 全局变量 在任何大括号外面定义的变量叫全局变量,其作用范围是从定义处直到文件末尾。 由于全局变量作用范围很大,若在某个函数中修改了全局变量的值,在其它函数中读出的就是这个新值。 建议:用大写字母命名全局变量,便于区分局部变量。 #include “stdio.h” int x,y; void fun() { int a=20, b=10; x=x+a+b; //x=8+20+10 y=y+a-b; //y=2+20-10 } int main() { int a=5, b=3; x=a+b; //x=8 y=a-b; //y=2 fun(); printf(“%d, %d”, x, y); //x=38, y=12 return 0; } int a=13, b=8; //全局变量 main( ) {int a=5; //局部变量 printf(Max=%d\n, max(a, b)); } max(int a, int b) {int c; c=ab?a: b; return(c); } Max=8 #include stdio.h int k=1; main( ) {int i=4; fun(i); printf((1) %d,%d\n, i, k);

文档评论(0)

5500046 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档