《程序基本结构》PPT课件.ppt

上传人:wuy****n92 文档编号:70508429 上传时间:2023-01-21 格式:PPT 页数:78 大小:776KB
返回 下载 相关 举报
《程序基本结构》PPT课件.ppt_第1页
第1页 / 共78页
《程序基本结构》PPT课件.ppt_第2页
第2页 / 共78页
点击查看更多>>
资源描述

《《程序基本结构》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《程序基本结构》PPT课件.ppt(78页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、2023/1/20C 语言程序设计语言程序设计1第二章第二章 程序基本结构程序基本结构2.1 关系运算和逻辑运算关系运算和逻辑运算2.2 分支结构分支结构2.3 循环结构循环结构2.4 break和和continue语句语句2.5 goto 语句语句2.6 经典算法举例经典算法举例2023/1/20C 语言程序设计语言程序设计22.1关系运算和逻辑运算关系运算和逻辑运算2.1.1 关系运算符和关系表达式关系运算符和关系表达式一、关系运算符一、关系运算符一、关系运算符一、关系运算符种:种:种:种:、=、=、=、!=!=说明:说明:说明:说明:1 1 1 1、优先级优先级优先级优先级:前前前前4

2、4 4 4种相同,后种相同,后种相同,后种相同,后2 2 2 2种也相同,但前种也相同,但前种也相同,但前种也相同,但前4 4 4 4种高于后种高于后种高于后种高于后两种;所有关系运算符的优先级都两种;所有关系运算符的优先级都两种;所有关系运算符的优先级都两种;所有关系运算符的优先级都低于算术运算符低于算术运算符低于算术运算符低于算术运算符而而而而高于赋高于赋高于赋高于赋值运算符值运算符值运算符值运算符。2 2 2 2、结合性结合性结合性结合性:自左至右自左至右自左至右自左至右ab-cab-ca(b-c)a(b-c)a=b=ca=b=ca=(b=c)a=(b=c)a=b!=ca=b!=ca=(

3、b!=c)a=(b!=c)2023/1/20C 语言程序设计语言程序设计3 二、关系表达式二、关系表达式二、关系表达式二、关系表达式用用用用关系运算符将两个表达式连接起来的式子关系运算符将两个表达式连接起来的式子关系运算符将两个表达式连接起来的式子关系运算符将两个表达式连接起来的式子。其中其中其中其中被连接的表达式可以是被连接的表达式可以是被连接的表达式可以是被连接的表达式可以是算术表达式算术表达式算术表达式算术表达式、关系关系关系关系表达式表达式表达式表达式、逻辑表达式逻辑表达式逻辑表达式逻辑表达式、赋值表达式赋值表达式赋值表达式赋值表达式或或或或字符表达式字符表达式字符表达式字符表达式。如

4、:如:如:如:a+bc+da+bc+d、xy=c+dxy=c+d、aAaA关系表达式的值只能是关系表达式的值只能是关系表达式的值只能是关系表达式的值只能是1 1或或或或0 0,当表达式成立即为当表达式成立即为当表达式成立即为当表达式成立即为“真真真真”时,值为整数时,值为整数时,值为整数时,值为整数1 1;否则为;否则为;否则为;否则为“假假假假”,值为整数,值为整数,值为整数,值为整数0 0。因此可看作。因此可看作。因此可看作。因此可看作整型表达式整型表达式整型表达式整型表达式。假设假设假设假设a=3,b=2,c=1a=3,b=2,c=1,求以下关系表达式的值:求以下关系表达式的值:求以下关

5、系表达式的值:求以下关系表达式的值:ab (ab)=cab (ab)=cabc abc f=abb=c1 11 10 01 12023/1/20C 语言程序设计语言程序设计42.1.2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式一、逻辑运算符一、逻辑运算符一、逻辑运算符一、逻辑运算符种:种:种:种:&|!、优先级优先级优先级优先级:!(非非非非)&(与与与与)|(或或或或)!(非非非非)算术运算符算术运算符算术运算符算术运算符关系运算符关系运算符关系运算符关系运算符&|赋值运算符赋值运算符赋值运算符赋值运算符(高)(高)(高)(高)(低)(低)(低)(低)、结合性结合性结合性结合性:!是右结

6、合性,是右结合性,是右结合性,是右结合性,&和和和和|是左结合性是左结合性是左结合性是左结合性、逻辑运算真值表:、逻辑运算真值表:、逻辑运算真值表:、逻辑运算真值表:a a a ab b b b!a a a a!b b b ba&ba&ba&ba&ba|ba|ba|ba|b非非非非0 0 0 0非非非非0 0 0 00 0 0 00 0 0 01 1 1 11 1 1 1非非非非0 0 0 00 0 0 00 0 0 01 1 1 10 0 0 01 1 1 10 0 0 0非非非非0 0 0 01 1 1 10 0 0 00 0 0 01 1 1 10 0 0 00 0 0 01 1 1 1

7、1 1 1 10 0 0 00 0 0 0例:例:例:例:ab&x/yab&x/yab&x/yab&x/y(ab)&(x/y)ab)&(x/y)ab)&(x/y)a=1|!ba=1|!ba=1|!ba=1|!b(a=1)|(!b)a=1)|(!b)a=1)|(!b)a=1)|(!b)二、逻辑表达式二、逻辑表达式二、逻辑表达式二、逻辑表达式逻辑表达式的值应该是逻辑表达式的值应该是逻辑表达式的值应该是逻辑表达式的值应该是“逻辑真逻辑真逻辑真逻辑真”或或或或“逻辑假逻辑假逻辑假逻辑假”。语言以数值语言以数值语言以数值语言以数值代表代表代表代表“真真真真”,以数值以数值以数值以数值代表代表代表代表“假

8、假假假”;但参加运算的运算量可以是;但参加运算的运算量可以是;但参加运算的运算量可以是;但参加运算的运算量可以是任何数值任何数值任何数值任何数值,进行判断时,进行判断时,进行判断时,进行判断时,非零值非零值非零值非零值代表代表代表代表“真真真真”,零值零值零值零值代表代表代表代表“假假假假”。若若若若a=100a=100a=100a=100,b=5b=5b=5b=5,则则则则!a a a a=?=?=?=?a&ba&ba&ba&b=?=?=?=?a|ba|ba|ba|b=?=?=?=?!a&b!a&b!a&b!a&b=?=?=?=?4&0|24&0|24&0|24&0|2=?=?=?=?a+b

9、|ca+b|ca&0a&038&2|58&2|5=-1&x=-1&x=-1&x=-1&x=1不能写为:不能写为:不能写为:不能写为:-1=-1=-1=-1=x=1x=1x=1xb)&(n=cd)(m=ab)&(n=cd)m=?n=?m=?n=?0 01 12023/1/20C 语言程序设计语言程序设计7 第一章中我们学习了顺序结构的第一章中我们学习了顺序结构的C C程序设计方法,程序设计方法,但是实际应用中,很多问题仅有顺序结构的方法是但是实际应用中,很多问题仅有顺序结构的方法是无法解决的。无法解决的。算法算法问题问题1:输入三个整数,按从大到小的顺序输出。:输入三个整数,按从大到小的顺序输出

10、。问题问题2:编写程序计算:编写程序计算:1+2+3+100。算法算法2023/1/20C 语言程序设计语言程序设计8问题问题问题问题1 1的算法:的算法:的算法:的算法:S1:输入输入3个整数,个整数,分别赋值给分别赋值给a,b,cS2:如果如果ab,则则a b bS3:如果如果ac,ac,则则a ac cS4:S4:如果如果bc,bc,则则b bc cS5:S5:输出输出a,b,ca,b,c的值的值分支结构分支结构输入输入输入输入a,b,ca,b,c的值的值的值的值N NababY Ya b b输出输出输出输出a,b,ca,b,c的值的值的值的值a c cbc cacacY YN Nbcb

11、cY YN N2023/1/20C 语言程序设计语言程序设计9问题问题问题问题2 2的算法:的算法:的算法:的算法:算法算法1:直接写出算式:直接写出算式 S1:result=1+2+3+4+5+100 容易实现吗?容易实现吗?算法算法2 2:考考虑虑到到1+2+3+1001+2+3+100可可以以改改写写为为:(1+2)+3)+100)(1+2)+3)+100)S1:p1=1+2S1:p1=1+2S2:p2=p1+3S2:p2=p1+3S3:p3=p2+4S3:p3=p2+4S99:p99=p98+100S99:p99=p98+100,结果在结果在p99p99里。里。定义定义9999个变量,

12、个变量,容易实现吗?容易实现吗?注意观察:每注意观察:每一步都类似一步都类似2023/1/20C 语言程序设计语言程序设计10算法算法3 3:S0:p=0,i=1S0:p=0,i=1S1:p=p+i,i=i+1S1:p=p+i,i=i+1S2:p=p+i,i=i+1S2:p=p+i,i=i+1S3:p=p+i,i=i+1S3:p=p+i,i=i+1S99:p=p+i,i=i+1S99:p=p+i,i=i+1完全一样的完全一样的完全一样的完全一样的9999步步步步算法算法算法算法4 4:S0:p=0,i=1S0:p=0,i=1(循环初值)循环初值)循环初值)循环初值)S1:p=p+i,i=i+1

13、S1:p=p+i,i=i+1(循环体)循环体)循环体)循环体)S2:S2:i=100i100i1002023/1/20C 语言程序设计语言程序设计122.2分支结构分支结构2.2.1 单分支结构单分支结构例例例例2.12.1:输入两个整数,按从小到大的顺序输出这两个数。输入两个整数,按从小到大的顺序输出这两个数。输入两个整数,按从小到大的顺序输出这两个数。输入两个整数,按从小到大的顺序输出这两个数。算法:算法:S1:S1:输入两个整数输入两个整数a,ba,bS2:S2:如果如果ab,ab,则则a ab bS3:S3:输出输出a,ba,bC C语言单分支结构:语言单分支结构:语言单分支结构:语言

14、单分支结构:if(if(表达式表达式表达式表达式)语句语句语句语句;2023/1/20C 语言程序设计语言程序设计13if(if(if(if(表达式表达式表达式表达式)语句语句语句语句一般形式:一般形式:表达式表达式表达式表达式语句语句语句语句真真真真(非非非非0)0)假假假假(0)(0)流程图:流程图:注意:此位置不注意:此位置不注意:此位置不注意:此位置不使用分号使用分号使用分号使用分号“;”!#include void main()int a,b,temp;printf(Input a,b:);scanf(%d%d,&a,&b);if(ab)/*判断判断a、b的关系的关系*/temp=a

15、;a=b;b=temp;/*a大大于于b,则则交交换换a,b的值的值*/printf(Return is%d,%dn,a,b);/*按按从从小小到到大大顺顺序序输出输出*/例例2.1的的C语言程序如下:语言程序如下:复合语句:复合语句:在同一个在同一个条件下作为一个整体条件下作为一个整体执行得多条语句执行得多条语句例例例例2.22.2输入三个数输入三个数输入三个数输入三个数x1,x2,x3,x1,x2,x3,按从小到大的顺序输出这三个数。按从小到大的顺序输出这三个数。按从小到大的顺序输出这三个数。按从小到大的顺序输出这三个数。#include main()int x1,x2,x3,temp;s

16、canf(“%d%d%d”,&x1,&x2,&x3);if(x1x2)temp=x1;x1=x2;x2=temp;if(x1x3)temp=x1;x1=x3;x3=temp;if(x2x3)temp=x2;x2=x3;x3=temp;printf(“%d,%d,%d”,x1,x2,x3);输入输入输入输入a,b,ca,b,cab?ab?a ab bac?ac?bc?bc?a ac cb bc c输出输出输出输出a,b,ca,b,c是是是是是是是是是是是是否否否否否否否否否否否否输入:输入:351351输出:输出:1 1,3 3,5 52023/1/20C 语言程序设计语言程序设计162.2.2

17、 双分支结构双分支结构例例2.32.3:输入两个整数,输出其中较大的一个。输入两个整数,输出其中较大的一个。算法:算法:S1:S1:输入两个整数输入两个整数a,ba,bS2:S2:如果如果ab,ab,则输出则输出a a,否则输出否则输出b bC C语言单分支结构:语言单分支结构:语言单分支结构:语言单分支结构:if(if(表达式表达式表达式表达式)语句语句语句语句1;1;elseelse 语句语句语句语句2;2;2023/1/20C 语言程序设计语言程序设计17一般形式:一般形式:if(if(if(if(表达式表达式表达式表达式)语句语句语句语句1 1 1 1elseelseelseelse

18、语句语句语句语句2 2 2 2流程图:流程图:表达式表达式表达式表达式语句语句语句语句2 2真真真真(非非非非0)0)假假假假(0)(0)语句语句语句语句1 12023/1/20C 语言程序设计语言程序设计18例例例例2.3 2.3 输入两个整数,输出其中较大的一个。输入两个整数,输出其中较大的一个。输入两个整数,输出其中较大的一个。输入两个整数,输出其中较大的一个。N-SN-S流程图流程图输入输入输入输入x1,x2x1,x2x1x2x1x2Y YN N输出输出输出输出x1x1输出输出输出输出x2x2#includemain()int x1,x2;scanf(“%d%d”,&x1,&x2);i

19、f(x1x2)printf(“%dn”,x1);else printf(“%dn”,x2);2023/1/20C 语言程序设计语言程序设计192.2.3 多分支结构多分支结构一般形式:一般形式:流程图:流程图:if(if(if(if(表达式表达式表达式表达式1)1)1)1)语句语句语句语句1 1 1 1else if(else if(else if(else if(表达式表达式表达式表达式2)2)2)2)语句语句语句语句2 2 2 2 else if(else if(else if(else if(表达式表达式表达式表达式3)3)3)3)语句语句语句语句3 3 3 3 else if(else

20、 if(else if(else if(表达式表达式表达式表达式n)n)n)n)语句语句语句语句n n n n else else else else 语句语句语句语句n+1n+1n+1n+1表达式表达式表达式表达式1 1语句语句语句语句2 2真真真真(非非非非0)0)假假假假(0)(0)语句语句语句语句1 1表达式表达式表达式表达式2 2真真真真(非非非非0)0)语句语句语句语句1 1语句语句语句语句2 2假假假假(0)(0)关于关于关于关于if if语句的说明语句的说明语句的说明语句的说明:1 1 1 1、表达式一般为关系表达式或逻辑表达式。但在、表达式一般为关系表达式或逻辑表达式。但在、

21、表达式一般为关系表达式或逻辑表达式。但在、表达式一般为关系表达式或逻辑表达式。但在C C C C语言语言语言语言中它也中它也中它也中它也可以是任意的数值表达式可以是任意的数值表达式可以是任意的数值表达式可以是任意的数值表达式。if(3)if(3)n=1;n=1;if(a)if(a)printf(%d,a);printf(%d,a);if (n=3-3)if (n=3-3)x=1;x=1;elseelse x=-1;x=-1;2 2 2 2、表达式后面不能有任何标点符号表达式后面不能有任何标点符号表达式后面不能有任何标点符号表达式后面不能有任何标点符号!3 3 3 3、elseelseelsee

22、lse只能与只能与只能与只能与ifififif配对使用配对使用配对使用配对使用。仅。仅。仅。仅elseelseelseelse本身不能单独作为一个语本身不能单独作为一个语本身不能单独作为一个语本身不能单独作为一个语句使用。句使用。句使用。句使用。if (x5)if (x5);y=x;y=x;elseelse y=2*x-1;y=2*x-1;if (x5)if (x5);y=x;y=x;elseelse y=2*x-1;y=2*x-1;将出现语法错误将出现语法错误将出现语法错误将出现语法错误2023/1/20C 语言程序设计语言程序设计214 4、每个语句序列可以是一个语句也可以是若干个语句,、

23、每个语句序列可以是一个语句也可以是若干个语句,、每个语句序列可以是一个语句也可以是若干个语句,、每个语句序列可以是一个语句也可以是若干个语句,但要但要但要但要用花括号括起来用花括号括起来用花括号括起来用花括号括起来构成复合语句构成复合语句构成复合语句构成复合语句。if(ab)t=a;a=b;b=t;if (a+bc&b+ca&c+ab)s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(area=%.2fn,area);else printf(It is not a trilateral!n);复合语句的复合语句的复合语句的复合语句的花括号

24、后不能再写分号花括号后不能再写分号花括号后不能再写分号花括号后不能再写分号。复合语句。复合语句。复合语句。复合语句在语法上是一个整体,相当于一个语句。在语法上是一个整体,相当于一个语句。在语法上是一个整体,相当于一个语句。在语法上是一个整体,相当于一个语句。2023/1/20C 语言程序设计语言程序设计222.2.4 if2.2.4 if2.2.4 if2.2.4 if语句的嵌套语句的嵌套语句的嵌套语句的嵌套在在在在ifififif语句的原语句的原语句的原语句的原“语句语句语句语句”中又包含一个或多个中又包含一个或多个中又包含一个或多个中又包含一个或多个ifififif语句语句语句语句1.1.

25、if (if (表达式表达式表达式表达式1)1)if (if (表达式表达式表达式表达式2)2)语句语句语句语句2.2.if (if (表达式表达式表达式表达式1)1)语句语句语句语句1 1 elseelse if (if (表达式表达式表达式表达式2)2)语句语句语句语句2 23.3.if (if (表达式件表达式件表达式件表达式件1)1)语句语句语句语句1 1 elseelse if (if (表达式表达式表达式表达式2)2)语句语句语句语句2 2 else else 语句语句语句语句3 34.4.if if (表达式表达式表达式表达式1)1)if if (表达式表达式表达式表达式2)2)

26、语句语句语句语句1 1 elseelse 语句语句语句语句2 2二义性二义性二义性二义性?语言规定:语言规定:语言规定:语言规定:elseelse总是与它前面最近的且未曾配对的总是与它前面最近的且未曾配对的总是与它前面最近的且未曾配对的总是与它前面最近的且未曾配对的if if配对。配对。配对。配对。if(if(表达式表达式表达式表达式1)1)if(if(表达式表达式表达式表达式2)2)语句语句语句语句1 1 else else 语句语句语句语句2 2 if(if(表达式表达式表达式表达式1)1)if(if(表达式表达式表达式表达式2)2)语句语句语句语句1 1 elseelse 语句语句语句语

27、句2 22023/1/20C 语言程序设计语言程序设计23例、(例、(例、(例、(P269,6P269,6)输入)输入)输入)输入3 3个数,判断组成什么类型三角形个数,判断组成什么类型三角形个数,判断组成什么类型三角形个数,判断组成什么类型三角形if(a+b)c&(b+c)a&(a+c)b)if(a+b)c&(b+c)a&(a+c)b)if(if(a=b&b=ca=b&b=c)printf(“dengbian!n”);)printf(“dengbian!n”);else if(a=b|b=c|a=c)printf(“dengyao!n”);else if(a=b|b=c|a=c)printf

28、(“dengyao!n”);else printf(“budengyao!n”);else printf(“budengyao!n”);else printf(“Erro!n”);else printf(“Erro!n”);2023/1/20C 语言程序设计语言程序设计24例例例例2.4 2.4 2.4 2.4 编程求解函数:编程求解函数:编程求解函数:编程求解函数:-1-1 0 0 1 1(x0)x0)(x0)y=y=程序程序1:if(x0)y=-1;else if(x=0)y=0;else y=1;y=-1y=0y=1x0 x=0)if(x0)y=1;else y=0;else y=-1;

29、y=-1y=0y=1x=0 x=0 x0 x0真真假假真真假假eg502.c程序程序3:y=-1;if(x!=0)if(x0)y=1;else y=0;y=y=-1 1x!=0 x!=0 x0 x0y=1y=0真真真真假假假假-1-1 0 0 1 1(x=0 x=0)(x0 x0)(x0)y=y=改正程序改正程序3:y=-1;if(x!=0)if(x0)y=1;else y=0;y=-1x!=0 x0y=1y=0真真真真假假假假-1-1 0 0 1 1(x0)x0)(x0)y=y=例例例例2.52.5求一元二次方程求一元二次方程求一元二次方程求一元二次方程axax2 2+bx+c=0+bx+c

30、=0的根,的根,的根,的根,a,b,ca,b,c用键盘输入。用键盘输入。用键盘输入。用键盘输入。#includeinclude float float a,b,c,d,x1,x2,realpart,imagpart;a,b,c,d,x1,x2,realpart,imagpart;scanf(“%f%f%f”,a,b,c);scanf(“%f%f%f”,a,b,c);if(fabs(a)=1e-6)if(fabs(a)=1e-6)printf(“is not a quadratic”);printf(“is not a quadratic”);else else disc=b*b-4*a*c;d

31、isc=b*b-4*a*c;if(fabs(disc=1e-6)if(fabs(disc1e-6)if(disc1e-6)x1=(-b+sqrt(disc)/(2*a);x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(“has distinct real printf(“has distinct real roots:%f,%fn”,x1,x2);roots:%f,%fn”,x1,x2);else else realpart=-b/(2*a);realpart=-b/(2*a);ima

32、gepart=sqrt(-imagepart=sqrt(-disc)/(2*a);disc)/(2*a);printf(“%f+%fin”,realpart,printf(“%f+%fin”,realpart,imagpart);imagpart);pritnf(“%f-pritnf(“%f-%fin”,realpart,imagpart);%fin”,realpart,imagpart);2023/1/20C 语言程序设计语言程序设计271 1、条件运算符:、条件运算符:?:?:(C C中唯一的三目运算符)中唯一的三目运算符)优先级仅高于赋值类,优先级仅高于赋值类,右结合性右结合性2 2、条

33、件表达式的一般形式:、条件表达式的一般形式:表达式表达式1?表达式表达式2:表达式表达式3运算过程运算过程:首先求表达式:首先求表达式1的值,若为真(非的值,若为真(非0),则求表达式),则求表达式2的值,且整个表达式的值为表达式的值,且整个表达式的值为表达式2的值;若表达式的值;若表达式1为假为假(0),则求表达式),则求表达式3的值,且整个表达式的值为表达式的值,且整个表达式的值为表达式3的值。的值。例:例:x=ab?a:b+1;x=(ab)?a:(b+1);if(ab)x=a;else x=b+1;ab?a:cd?c:dab?a:(cd?c:d)二、条件运算符二、条件运算符二、条件运算符

34、二、条件运算符2023/1/20C 语言程序设计语言程序设计283 3、表达式、表达式2 2和表达式和表达式3 3可以是数值表达式,还可以可以是数值表达式,还可以 是赋值表达式获函数是赋值表达式获函数 ab?(a=100)ab?(a=100):(b=100):(b=100)ab?printf(ab?printf(“%dn%dn”,a):printf(,a):printf(“%dn%dn”,b),b)4、当三个表达式的类型不一致时,条件表达式的类型时表、当三个表达式的类型不一致时,条件表达式的类型时表 达式达式2和表达式和表达式3种类型较高的类型。种类型较高的类型。如:如:xy?1:1.5二、条

35、件运算符二、条件运算符二、条件运算符二、条件运算符2023/1/20C 语言程序设计语言程序设计29例例2.6:输入一个字符,如果是大写字母,转换为小写,:输入一个字符,如果是大写字母,转换为小写,如果不是不转换。最后输出。如果不是不转换。最后输出。#includemain()char ch;scanf(“%c”,&ch);/*ch=getchar();*/ch=(ch=A&ch=Z)?(ch+32):):ch;printf(“%c”,ch);/*putchar(ch);*/2023/1/20C 语言程序设计语言程序设计30三、三、三、三、switchswitch(多分支)语句多分支)语句多分

36、支)语句多分支)语句switchswitch结构与结构与结构与结构与else ifelse if结构是多分支选择的两种形式。结构是多分支选择的两种形式。结构是多分支选择的两种形式。结构是多分支选择的两种形式。else ifelse if:多条件并列测试,从中选一多条件并列测试,从中选一多条件并列测试,从中选一多条件并列测试,从中选一switchswitch:单条件测试,从多种结果中选取一种执行单条件测试,从多种结果中选取一种执行单条件测试,从多种结果中选取一种执行单条件测试,从多种结果中选取一种执行2023/1/20C 语言程序设计语言程序设计311 1、格式:、格式:、格式:、格式:swit

37、ch(表达式表达式)case 常量表达式常量表达式1:语句语句1 case 常量表达式常量表达式2:语句语句2 case 常量表达式常量表达式n:语句语句n default:语句语句 n+12 2、功能功能功能功能:先计算表达式的值,先计算表达式的值,先计算表达式的值,先计算表达式的值,测试该值是否与某常量表测试该值是否与某常量表测试该值是否与某常量表测试该值是否与某常量表达式的值相同达式的值相同达式的值相同达式的值相同、若有相同者,流程转若有相同者,流程转若有相同者,流程转若有相同者,流程转向其后面的语句执行向其后面的语句执行向其后面的语句执行向其后面的语句执行、若无,再看有没有若无,再看有

38、没有若无,再看有没有若无,再看有没有defaultdefault部分:部分:部分:部分:若有若有若有若有defaultdefault,则执行其后面的语句;则执行其后面的语句;则执行其后面的语句;则执行其后面的语句;若无若无若无若无defaultdefault,则则则则switchswitch语句语句语句语句什么也不做,流程转向其什么也不做,流程转向其什么也不做,流程转向其什么也不做,流程转向其后继语句。后继语句。后继语句。后继语句。说明:说明:说明:说明:1 1、switchswitch后面括号内的表达式可以是后面括号内的表达式可以是后面括号内的表达式可以是后面括号内的表达式可以是整型整型整型

39、整型,也可以是,也可以是,也可以是,也可以是字符型字符型字符型字符型2 2、各个、各个、各个、各个casecase后常量表达式的值必须互不相同;后常量表达式的值必须互不相同;后常量表达式的值必须互不相同;后常量表达式的值必须互不相同;3 3、各个、各个、各个、各个casecase和和和和defaultdefault的出现次序不影响执行结果的出现次序不影响执行结果的出现次序不影响执行结果的出现次序不影响执行结果;4 4、casecase后的语句为复合语句时可省略花括号;后的语句为复合语句时可省略花括号;后的语句为复合语句时可省略花括号;后的语句为复合语句时可省略花括号;例例例例2.7 2.7 v

40、oid main()void main()int x,y;int x,y;scanf(%d,&x);scanf(%d,&x);switch(x)switch(x)case 1:y=10;printf(%dn,y);case 1:y=10;printf(%dn,y);case 2:y=20;printf(%dn,y);case 2:y=20;printf(%dn,y);case 3:y=30;printf(%dn,y);case 3:y=30;printf(%dn,y);default:y=0;printf(%dn,y);default:y=0;printf(%dn,y);5 5、casecas

41、e后常量后常量后常量后常量表达式只起语表达式只起语表达式只起语表达式只起语句标号的作用,句标号的作用,句标号的作用,句标号的作用,每个每个每个每个casecase之后通之后通之后通之后通常都有一个常都有一个常都有一个常都有一个breakbreak,使流程使流程使流程使流程跳出跳出跳出跳出switchswitch语句语句语句语句,否则流程转到否则流程转到否则流程转到否则流程转到下一个下一个下一个下一个case(default)case(default)中中中中继续执行;继续执行;继续执行;继续执行;eg503.c2023/1/20C 语言程序设计语言程序设计336 6、多个、多个、多个、多个ca

42、secase可以共用一组执行语句;可以共用一组执行语句;可以共用一组执行语句;可以共用一组执行语句;case 6:case 6:case 7:printf(Resetn);case 7:printf(Resetn);break;break;但不能写成:但不能写成:但不能写成:但不能写成:casecase 6,76,7:printf(Resetn);break;:printf(Resetn);break;7 7、switchswitch语句可以嵌套;但有多层语句可以嵌套;但有多层语句可以嵌套;但有多层语句可以嵌套;但有多层switchswitch语句时,语句时,语句时,语句时,breakbrea

43、k只能退出本层的只能退出本层的只能退出本层的只能退出本层的switchswitch语句体;语句体;语句体;语句体;2023/1/20C 语言程序设计语言程序设计34程序举例:程序举例:见教材见教材4545#include#includeMain()Main()intscore,temp;intscore,temp;printf(“inputscore:”);printf(“inputscore:”);scanf(“%d”,&score);scanf(“%d”,&score);temp=score/10;temp=score/10;switch(temp)switch(temp)case10:c

44、ase10:case9:printf(“A”);break;case9:printf(“A”);break;case8:printf(“B”);break;case8:printf(“B”);break;case7:printf(“C”);break;case7:printf(“C”);break;case6:printf(“D”);break;case6:printf(“D”);break;default:printf(“E”);default:printf(“E”);2023/1/20C 语言程序设计语言程序设计352.3循环结构循环结构2.3.1、循环的引出、循环的引出例例2.8:编写程

45、序计算编写程序计算1+2+3+100i=1,sum=1i=1,sum=1当当当当i=100i=100sum=sum+isum=sum+ii=i+1i=i+1打印打印打印打印sumsum2023/1/20C 语言程序设计语言程序设计36一般格式:一般格式:while(表达式表达式)语句;语句;或或 while(表达式表达式)语句序列;语句序列;循环条件循环条件循环体循环体当当P为真为真A当当P为真为真2.3.22.3.2、当型循环、当型循环、当型循环、当型循环2023/1/20C 语言程序设计语言程序设计37例例例例2.82.8#include include void main()void m

46、ain()int i=1,sum=0;int i=1,sum=0;while(i=100)while(i=100)sum=sum+i;sum=sum+i;i+;i+;printf(“%d”,sum);printf(“%d”,sum);说明说明:+运算符的作用是整型变运算符的作用是整型变量自加量自加1 1。i+i+表示先取的值表示先取的值i i再加再加1 1;+i i表示先加表示先加1 1再取再取i i的值。的值。右结合性右结合性例:例:inta=3,b;inta=3,b;b=a+;b=a+;b=+a;b=+a;a=?b=?a=?b=?5 55 52023/1/20C 语言程序设计语言程序设计3

47、8例例2.92.9:输入一个字符,如果是大写字母,转换为小写,如:输入一个字符,如果是大写字母,转换为小写,如果不是则不转换。输入果不是则不转换。输入“0 0”结束程序。结束程序。#include void main()char ch;while(ch=getchar()!=0)ch=(ch=A&ch=1&x=1&x=4)printf(“你选择的是你选择的是你选择的是你选择的是%d d项命令项命令项命令项命令 n”,x);n”,x);while(x);while(x);while(x!=0)while(x!=0)2023/1/20C 语言程序设计语言程序设计41While 和和 do-whil

48、e 循环的比较循环的比较main()int sum=0,i=1;while(i=100)sum=sum+i;i+;printf(“sum=%dn”,sum);main()int sum=0,i=1;/scanf(“%d”,&i);do sum=sum+i;i+;while(i=100);printf(“sum=%dn”,sum);求求1+2+3+1002023/1/20C 语言程序设计语言程序设计42一般形式:一般形式:forforforfor(表达式表达式1 1;表达式;表达式2 2;表达式;表达式3 3)语句语句执行过程执行过程执行过程执行过程:(1)(1)求解表达式求解表达式1 1(2)

49、(2)求解表达式求解表达式2 2,若其值为真(值为非,若其值为真(值为非0 0),则执行循环体,),则执行循环体,转转(3)(3)。若为假(值为。若为假(值为0 0),则结束循环,转到),则结束循环,转到(5)(5)。(3)(3)求解表达式求解表达式3 3(4)(4)转回执行转回执行(2)(2)(5)(5)循环结束,执行循环结束,执行forfor语句下面的语句下面的一个一个语句语句2.3.42.3.4、forfor循环循环循环循环2023/1/20C 语言程序设计语言程序设计43计算表达式计算表达式1 1表达式表达式2 2循环体语句循环体语句表达式表达式3 3真真假假2023/1/20C 语言

50、程序设计语言程序设计44For,求求1+2+3+1002023/1/20C 语言程序设计语言程序设计45例例例例2.152.152.152.15:求:求:求:求1*2*3*4*5*.,1*2*3*4*5*.,1*2*3*4*5*.,1*2*3*4*5*.,求求求求n n n n!#include#include#include#include main()main()main()main()float fact;float fact;float fact;float fact;int i,n;int i,n;int i,n;int i,n;scanf(scanf(scanf(scanf(“%d

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com