unit02控制流和函数

上传人:san****019 文档编号:70260325 上传时间:2019-01-16 格式:PPT 页数:79 大小:663.01KB
返回 下载 相关 举报
unit02控制流和函数_第1页
第1页 / 共79页
unit02控制流和函数_第2页
第2页 / 共79页
unit02控制流和函数_第3页
第3页 / 共79页
unit02控制流和函数_第4页
第4页 / 共79页
unit02控制流和函数_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《unit02控制流和函数》由会员分享,可在线阅读,更多相关《unit02控制流和函数(79页珍藏版)》请在金锄头文库上搜索。

1、UNIT 2 控制流和函数,主讲人:谭成予 副教授 武汉大学计算机学院,本讲内容提纲,选择结构:if和switch 循环语句:for、while和do-while 跳转语句:break、continue 函数的定义和调用 函数之间的数据通信 递归函数 变量的作用域和存储类别,1、选择结构,重要知识点: if和else的后面只能写单条语句; if后面的表达式可以是任意数据类型,非零表示“真”,零表示“假”; if的嵌套使用; switch语句的表达式应该是可枚举类型; break语句在switch中的使用 通常和循环结构一起考核,例如程序阅读题和编程题;,1.1、if语句(双分支),statem

2、ent1和statement2只能是一条语句,或者块语句,或者是空语句; expression取值非零(真),执行statement1; expression取值零(假),执行statement2,1.1、if语句范例程序,例题1:从终端接收输入的一个整数,判断该整 数是否 是13的倍数。,1.1、if语句范例程序,/*输入整数,判断是否13的倍数。源程序:LT4-1.C*/ #include #include int main(void) int n; /*用户输入的整数*/ int m; /*n的余数*/ printf(“n欢迎使用13 的倍数判断程序n“); printf(“请输入一个整

3、数: “); scanf(“%d“, ,欢迎使用13 的倍数判断程序 请输入一个整数:14 14不是13的倍数 请按任意键继续,1.2、if语句(单分支),statement1和statement2只能是一条语句,或者块语句,或者是空语句; expression取值非零(真),执行statement1; expression取值零(假),执行if后面的语句,1.3、嵌套if语句,if(表达式1) if(表达式2) 语句1 else 语句2 else if(表达式3) 语句3 else 语句4,嵌套if实例一,C89规定:编译程序至少应该支持15层if嵌套; C99提高到127层。多数编译程序支

4、持远大于15层嵌套。,1.3、嵌套if语句,if(表达式1) if(表达式2) 语句1 else 语句2,嵌套if实例二,if(表达式1) if(表达式2) 语句1 else 语句2,1.2、switch语句,switch(expression) case constant1: statement sequence break; case constant2: statement sequence break; default: statement sequence ,break:跳出case分支的跳转语句,必不可少。,1.2、switch语句,switch(expression) case

5、constant1: statement sequence break; case constant2: statement sequence break; default: statement sequence ,expression:字符型或整型表达式; case constant:case后面只能为常量表达式; 当表达式的值与case后面的常量表达式值相等时就执行此case后面的语句.,1.2、switch语句(三个使用要点),switch(expression) case constant1: statement sequence break; case constant2: stat

6、ement sequence break; default: statement sequence ,switch只能测试是否相等,不能测试关系或逻辑表达式。 各个case常量必须各异。 遇第一个相等的case常量分支之后,顺序向下执行,不再进行相等与否的判断。,/*break语句在switch中的应用,错误版本。源程序:LT4-6-1.C*/ #include #include int main(void) int x; scanf(“%d”, ,3 PassFailPoor,Why?,1.2、switch语句范例程序,例题2:switch语句使用错误范例。,/*break语句在switch

7、中的应用,正确版本。源程序:LT4-6-2.C*/ #include #include int main(void) int x; scanf(“%d”, ,3 Pass,1.2、switch语句范例程序,例题2:switch语句正确使用范例,LT4-6-1.C的改进版。,#include #include int main( ) int a,b,c; a=2;b=7;c=5; switch(a0) case 1:switch(b10) case 1:printf(“);break; case 0:printf(“!“);break; case 0:switch(c=5) case 0:pri

8、ntf(“*“);break; case 1:printf(“#“);break; default:printf(“%“);break; default:printf(“ ,1.2、switch语句范例程序,例题3:阅读以下程序,指出程序运行结果。,A. #& B. !#& C. # D. !*,2、 循环结构,重要知识点: for、while的后面都只能写单条语句; for、while、do-while的循环嵌套; break、continue语句在循环语句中的使用 通常和选择结构一起考核,例如程序阅读题和编程题; 循环和选择结构通常是编程题的考点之一!,2.1、for语句,for(init

9、ialization; condition; increment) statement;,initialization:初始化,一般为赋值语句; condition:循环条件,循环一直执行直到条件为假为止; statement:循环体,单个语句、块语句、空语句; increment:修改控制变量。,/*计算1、2到100的和值,for语句范例。源程序:LT4-8.C*/ #include #include int main(void) int i,sum=0; printf(“nWelcome.n“ “Calculate the result of 1+2+.100nn“); for(i=1;

10、i=100;i+) sum+=i; printf(“1+2+.+100=%dn“,sum); system(“PAUSE“); return 0; ,Welcome. Calculate the result of 1+2+100 1+2+100=5050 请按任意键继续,2.1 for语句范例程序,例题3:计算1+2+3+100的和值。,2.1、for语句(使用要点),initialization、condition、increment:可以是表达式;,for(initialization; condition; increment) statement;,for(x=0,y=0;x+y10

11、;+x) y=getchar(); y=y-0; ,2.1、for语句(使用要点),condition:不是必需的,可以根本不存在;通常用于控制循环;,for(initialization; condition; increment) statement;,for(;) scanf(“%f“”,for(x=100; ;x-=2) ;,2.1、for语句(使用要点),initialization、condition、increment :每个部分都可以缺少。,for(initialization; condition; increment) statement;,for(x=0;x!=123;)

12、 scanf(“%f“,x=100; for(;x=0;x-=2) ;,/*延时循环*/ for(t=0;tSOME_VALUE;t+);,2.2、while语句,initialization; while(condition) statement;,initialization:初始化,一般为赋值语句; condition:循环条件,循环一直执行直到条件为假为止; statement:循环体,单个语句、块语句、空语句;,2.2、while语句(使用要点),statement:应包括increment部分,即修改循环条件的语句;,initialization; while(condition)

13、 statement;,x=0,y=0; while(x+y10) y=getchar(); y=y-0; +x; ,2.3、do-while语句,initialization; do statement sequence while(condition);,initialization:初始化,一般为赋值语句; condition:循环条件,循环一直执行直到条件为假为止; statement sequence:循环体,语句序列;,3、跳转语句,重要知识点: break、continue语句在循环语句中的使用 return语句在函数中的用法。,3.1、break语句,用于switch语句终止一

14、个case的执行; 用于循环体,跳过循环条件,强制终止循环。,for(t=0;t100;t+) count=0; for(;) printf(“%d“,count); count+; if(count=10) break; ,跳出内层循环,3.2、continue语句,用于循环体,跳过本次循环剩余语句,强制开始下一次循环。,done=0; while(!done) ch=getchar(); if(ch= $ ) done=1; continue; putchar(ch+1); ,提前测试循环条件,4、函数的定义和调用,重要知识点: 函数的调用方法和原型说明; 编写函数是编程题的主要考点之一!

15、 通常考核的题型:例如程序阅读题和编程题;,4.1、函数的一般形式,return-value-type function-name(parameter list) body of function ,return-value-type: 函数返回值的数据类型; function-name:函数名; parameter list:参数表,用逗号间隔;函数参数在函数调用时接收由调用者传入的变元值。 body of funcation:函数体。,4.1、定义无参函数,void printStar( ) printf(“*n”); ,4.1、定义有参函数,/*求解两个整数最大值*/ int max(int x,int y) int z; z=xy?x:y; return(z); ,/*计算x的n次方*/ double power(double x,int n) double p; if(n0) for(p=1.0;n0;n-) p*=x; else p=1.0; return p; ,4.1、定义有参函数,int first_func(int a,int b) int second_func(int x,int y) ,C语言中的函数是并列关系:必须定义完上一个函数,才能定义下一个函数。,函数名(实参表),4.2、函数调用的一般形式,说明: 实参与形参个数相等,类型一致,按

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号