程序的控制结构 (2)精选PPT.ppt
《程序的控制结构 (2)精选PPT.ppt》由会员分享,可在线阅读,更多相关《程序的控制结构 (2)精选PPT.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C C语言程序设计语言程序设计关于程序的控制结构(2)第1页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计 分支结构又称选择结构,是结构化程序设计的三种基本分支结构又称选择结构,是结构化程序设计的三种基本结构之一。在程序设计时,如果需要根据某些条件作出判断,结构之一。在程序设计时,如果需要根据某些条件作出判断,决定不同的处理方式,则要用到分支结构。分支结构能根据决定不同的处理方式,则要用到分支结构。分支结构能根据条件是否成立自动选择要执行的程序段。条件是否成立自动选择要执行的程序段。3.1 3.1 分支结构分支结构第2页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计3.
2、1.1关系运算符和表达式关系运算符和表达式关系运算符关系运算符种类种类:=!=结合方向:自左向右结合方向:自左向右优先级别:优先级别:=!=优先级优先级10(高)(高)优先级优先级9(低)(低)例例 ca+b /c(a+b)ca+b /c(a+b)a=bc /a=(bc)a=bc /a=(bc)关系表达式的值:是逻辑值关系表达式的值:是逻辑值“真真”或或“假假”,用,用1和和0表示表示例例 int a=3,b=2,c=1,d,f;ab (ab)=c b+cb f=abc/表达式值表达式值1/表达式值表达式值1/表达式值表达式值0/d=1/f=0低于算术运算符,但高低于算术运算符,但高于赋值运算
3、符。于赋值运算符。第3页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计关系运算注意:关系运算注意:例例 若若a=0;b=0.5;x=0.3;则则 a=x278在在C中是允许的,中是允许的,值为值为0例例 a0 结果为结果为 A100 结果为结果为10第4页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计关系运算注意:关系运算注意:例例 注意区分注意区分“=”与与“=”int a=0,b=1;if(a=b)printf(“a equal to b”);else printf(“a not equal to b”);例例 应避免对应避免对实数实数作相等或不等的判断作相等或不等
4、的判断如如 1.0/3.0*3.0=1.0 结果为结果为可改写为:可改写为:fabs(1.0/3.0*3.0-1.0)1e-60第5页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计ab!a!ba&ba|b真真假假真真假假假假假假真真真真3.12逻辑运算符和表达式逻辑运算符和表达式逻辑运算符逻辑运算符种类:种类:!&|逻辑运算真值表逻辑运算真值表C C语言中语言中,运算量运算量:0 0表示表示“假假”,非非0 0表示表示“真真”,”,运算结果运算结果:0 0表示表示“假假”,1 1表示表示“真真”,”,真真假假假假假假假假假假真真真真假假假假真真真真真真假假真真真真第6页,讲稿共50
5、张,创作于星期二C C语言程序设计语言程序设计例例 a=x&xbl优先级:优先级:l结合方向:结合方向:!:从右向左从右向左&:从左向右从左向右|:从左向右从左向右/(a=x)&(xb)!14&5|4高高低低!算术运算算术运算 关系运算关系运算&|赋值运算赋值运算例例 a=4;b=5;!a a&b a|b 4&0|2 53&2|83)&2|(8b)&(n=cd)/结果结果m=0,n=1补充:补充:第8页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计3.1.2 if3.1.2 if语句语句三种形式三种形式 形式一形式一(单分支选择单分支选择):格式:格式:if(表达式表达式)语句语句
6、执行过程:执行过程:表达式表达式语句语句非非0=0例:例:if(xy)printf(“%d”,x);表达式表达式语句语句1语句语句2非非0=0 形式二形式二(双分支选择双分支选择):格式格式:if(表达式表达式)语句语句1 else 语句语句2执行过程:执行过程:例:例:if(xy)max=x;else max=y;第9页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计 形式三形式三(多分支选择多分支选择):格式格式:if(表达式表达式1)语句语句1else if(表达式表达式2)语句语句2else if(表达式表达式3)语句语句3.else 语句语句n expr1statemnt1
7、非非0=0expr2expr3statemntnstatemnt3statemnt2非非0非非0=0=0u执行过程:执行过程:例:例:if(xy输输出出 max 的的值值max=ymax=xNoYesxy输输入入x,y开始开始max=y输输出出max结结束束(a)案例案例3.1的流程的流程图图(b)案例案例3.1的的N-S图图max=x图图3-2 3-2 案例案例3.13.1的算法描述的算法描述第11页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计【程序详解】【程序详解】/*ex3-1.c 求两个数的最大数求两个数的最大数*/#include void main()int x,y,
8、max;printf(请输入两个整数请输入两个整数:);scanf(%d%d,&x,&y);if(xy)/判断条件判断条件max=x;elsemax=y;printf(max is :%dn,max);/输出输出max【思考】【思考】求求3个数中的最大数个数中的最大数/最小数或最小数或求求4个数中的最大数个数中的最大数/最小数最小数如何实现?如何实现?第12页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计 (1)在案例在案例3.2中,初学者经常将中,初学者经常将“if(xy)”错误地添加分号,写成错误地添加分号,写成“if(xy);”,这会导致程序错误。,这会导致程序错误。(2)在
9、在if语句中,语句中,条件判断表达式必须用括号括起来条件判断表达式必须用括号括起来。(3)if后的表达式后的表达式一般为关系表达式或逻辑表达式,但也可以是其他表达式,一般为关系表达式或逻辑表达式,但也可以是其他表达式,用用0和非和非0取其逻辑值取其逻辑值。(4)if和和else嵌套可组成多分支选择结构,但要注意嵌套可组成多分支选择结构,但要注意if和和else的配对关系,其的配对关系,其原则是:原则是:else总是和上面最近的未曾配对的总是和上面最近的未曾配对的if配对配对。经验交流经验交流第13页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计【案例【案例3.23.2】输入三个数】
10、输入三个数a,b,ca,b,c,要求按由小到大的顺序输出。,要求按由小到大的顺序输出。【目的】掌握少量数据的简单排序算法及交换算法【目的】掌握少量数据的简单排序算法及交换算法【算法分析】【算法分析】(1 1)将三个数分别存入)将三个数分别存入a,b,ca,b,c变量中变量中 (2 2)if(ab)if(ab)将将a a和和b b对换(对换(a a是是a,ba,b中的较小者)中的较小者)(3 3)if(ac)if(ac)将将a a和和c c对换(对换(a a是是a,ca,c中的较小者,因此中的较小者,因此a a是三个数中的最小者)是三个数中的最小者)(4 4)if(bc)if(bc)将将b b和
11、和c c对换(对换(b b是是b,cb,c中的较小者,也是三个数中的次小者)中的较小者,也是三个数中的次小者)(5 5)顺序输出顺序输出a,b,ca,b,c中的值中的值【程序祥解】【程序祥解】/*ex3-2.c 三个数排序三个数排序*/#include void main()int a,b,c,t;printf(请输入三个整数:请输入三个整数:);scanf(%d%d%d,&a,&b,&c);if(ab)t=a;a=b;b=t;/条件成立则交换条件成立则交换a,b if(ac)t=a;a=c;c=t;/条件成立则交换条件成立则交换a,c if(bc)t=b;b=c;c=t;/条件成立则交换条件
12、成立则交换b,c printf(结果是:结果是:%d,%d,%dn,a,b,c);【思考】【思考】4个数个数/5个数的排序如何个数的排序如何实现?实现?第14页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计【案例【案例3.33.3】计算以下分段函数的值。】计算以下分段函数的值。【目的】掌握【目的】掌握ifelse构造多分支选择结构的算法构造多分支选择结构的算法【算法分析】【算法分析】(1 1)输入)输入x x的值的值 (2 2)if(x1),yif(x1),y的值为的值为x x,执行,执行(5)(5),否则执行,否则执行(3)(3)(3 3)if(x10)if(x10),y y的值
13、为的值为2*x-12*x-1,执行,执行(5)(5),否则执行,否则执行(4)(4)(4 4)y y的值为的值为3*x-113*x-11 (5 5)输出输出y y的值的值【程序祥解】【程序祥解】/*ex3-3.c 求解分段函数求解分段函数*/#include void main()float x,y;printf(请输入请输入x :);scanf(%f,&x);if(x1)y=x;else if(x10)y=2*x-1;else y=3*x-11;printf(x=%.2f,y=%.2fn,x,y);y=2x-1 1 x 10 x x1 3x-11 x 10【思考】【思考】程序中虚线部分有没有
14、其他程序中虚线部分有没有其他的写法?的写法?第15页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计3.1.33.1.3条件表达式条件表达式 条件运算符由条件运算符由“?”和和“:”组成,是一个三目运算符,即有三个参与运算组成,是一个三目运算符,即有三个参与运算的量。的量。条件表达式的一般形式为:条件表达式的一般形式为:表达式表达式1?表达式表达式2:表达式表达式3 条件表达式的求值规则为:条件表达式的求值规则为:先计算表达式先计算表达式1的值,若为真,则计算表达式的值,若为真,则计算表达式2的值并将其作为条件表达式的值,否则计算表达式的值并将其作为条件表达式的值,否则计算表达式3的
15、值并将其作为条的值并将其作为条件表达式的值件表达式的值。第16页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计【案例案例3.43.4】输入一个字符,判断它是否是大写字母,如果是,将它转换输入一个字符,判断它是否是大写字母,如果是,将它转换成小字母,如果不是则不转换,然后输出最后得到的字符。成小字母,如果不是则不转换,然后输出最后得到的字符。【程序详解】【程序详解】/*ex3-4.c 大、小写字母的转换大、小写字母的转换*/#include void main()char ch;printf(请输入一个字符:请输入一个字符:);scanf(%c,&ch);ch=(ch=A&ch=Z)
16、?(ch+32):ch;printf(%cn,ch);if语语句句与与条条件件表表达达式式可可以以表表达达相相同同的的条条件件判判断断问问题题,但但为为了了使程序简洁,人们经常使用条件表达式描述。使程序简洁,人们经常使用条件表达式描述。经验交流经验交流【目的】掌握英文字母大小写的转换方法,并练习条件运算符的使用【目的】掌握英文字母大小写的转换方法,并练习条件运算符的使用【思考】【思考】如果输入是的小写字母,如果输入是的小写字母,要求转换为对应的大写字母,要求转换为对应的大写字母,如何实现?如何实现?第17页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计3.1.4 switch语句语
17、句 C语言提供了一种用于多分支结构的选择语句语言提供了一种用于多分支结构的选择语句switch语句,其一般形式为:语句,其一般形式为:switch()case:语句序列语句序列1;case:语句序列语句序列2;case:语句序列语句序列n;default :语句序列语句序列n+1;其执行过程是:先计算其执行过程是:先计算的值,然后自上而下依次与每个的值,然后自上而下依次与每个case后的常后的常量表达式值进行比较。当表达式的值与某个量表达式值进行比较。当表达式的值与某个case后的后的值相等时,值相等时,就执行该就执行该case语句后面的所有语句序列,直到语句后面的所有语句序列,直到switc
18、h语句体内的所有语句序列都执行语句体内的所有语句序列都执行完或遇到完或遇到break语句为止。若语句为止。若值与值与switch中所有中所有case的的值都值都不相等,则执行不相等,则执行default后的语句序列后的语句序列n+1。第18页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计【案例【案例3.5】根据考试成绩的等级输出相应的百分制分数】根据考试成绩的等级输出相应的百分制分数段,用段,用switch语句实现的程序如下:语句实现的程序如下:【任务要求任务要求】掌握掌握switchswitch语句的使用方法。语句的使用方法。【程序详解】【程序详解】/*ex3-5.c 大、小写字
19、母的转换大、小写字母的转换*/#include void main()char grade;printf(“请输入成绩等级:请输入成绩等级:);scanf(%c,&grade);switch(grade)case A:printf(90100n);break;case B:printf(8089n);break;case C:printf(7079n);break;case D:printf(6069n);break;case E:printf(60 n);break;default:printf(Error!n);【思考】【思考】如果输入的是百分制成绩,如果输入的是百分制成绩,如何用如何用s
20、witch语句实现输出其对语句实现输出其对应的等级?应的等级?第19页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计【归纳总结】【归纳总结】(1)switch后后的计算结果必须为整型或字符型,的计算结果必须为整型或字符型,case后的后的必须是整型常量或字符型常量必须是整型常量或字符型常量。(2)每个每个case后的常量表达式的值必须互不相等,否则就会出现互相矛后的常量表达式的值必须互不相等,否则就会出现互相矛盾的现象盾的现象。(3)在在case后,允许有多个语句,可以不用后,允许有多个语句,可以不用 括起来括起来;(4)default子句可以省略不用子句可以省略不用。(5)多条多
21、条case语句可以共用一组执行语句。语句可以共用一组执行语句。第20页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计复 习C实现选择(分支)结构的方法实现选择(分支)结构的方法ifelse语句语句switch语句语句两种方法均可实现两种方法均可实现单分支单分支、双分支双分支及及多分支多分支选择选择在在if之后的表达式可以是任意类型的表达式,取之后的表达式可以是任意类型的表达式,取逻辑值逻辑值else只能和只能和if配对使用,配对原则是配对使用,配对原则是“else总是和上面最近的未曾配对的总是和上面最近的未曾配对的if配对配对”,决定在哪个,决定在哪个if条件不成立时执行该条件不成
22、立时执行该else之后的语句。之后的语句。else和和if都只能控制其后的都只能控制其后的一条语句一条语句,若有多条语句要用,若有多条语句要用括起来构成复合语句。括起来构成复合语句。switch之后的表达式一般是之后的表达式一般是整型或字符型整型或字符型,其中的,其中的case子句列其可能的值,进入某子句列其可能的值,进入某个子句执行后只有遇到个子句执行后只有遇到break或执行结束后退出或执行结束后退出switch条件运算符:三目运算符,右结合条件运算符:三目运算符,右结合相关算法:相关算法:求最值求最值交换交换简单排序简单排序分段函数分段函数第21页,讲稿共50张,创作于星期二C C语言程
23、序设计语言程序设计3.23.2循环结构循环结构 在解决实际问题时,常常遇到许多有规律的重复执行的操在解决实际问题时,常常遇到许多有规律的重复执行的操作过程,利用计算机运算速度快的特点,可以将这些过程写成循作过程,利用计算机运算速度快的特点,可以将这些过程写成循环结构,使计算机反复执行这些操作。环结构,使计算机反复执行这些操作。所谓循环就是在给定条所谓循环就是在给定条件成立时反复执行某一程序段的现象件成立时反复执行某一程序段的现象,被反复执行的程序段被反复执行的程序段称为循环体称为循环体。C语言提供三类语句来实现循环:语言提供三类语句来实现循环:while语句语句、dowhile语句语句和和fo
24、r语句语句。第22页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计3.2.1 while3.2.1 while语句语句while语句的语法形式为:语句的语法形式为:while()循环体循环体;真真(非非0)表达式表达式循循环环体体假假(0)当表达式成立当表达式成立循循环环体体(a)while语语句的流程句的流程图图(b)while语语句的句的N-S图图其算法描述如图其算法描述如图3-93-9所示:所示:图图3-9 while语语句的算法描述句的算法描述第23页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计【案例【案例3.63.6】求】求1+2+3+1001+2+3+10
25、0的值。的值。#include void main()int i,su i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%d,sum);循环初值循环初值循环终值循环终值循环变量增值循环变量增值循环条件循环条件循环体循环体i=1,sum=0 当当i0)x+;(3)在进入循环之前,应当对有关变量初始化。在进入循环之前,应当对有关变量初始化。第25页,讲稿共50张,创作于星期二C C语言程序设计语言程序设计3.2.1 dowhile语句语句dowhile语句的语法形式为:语句的语法形式为:do 循环体循环体;while();其算法描述如图其算法描述如图3-12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序的控制结构 2精选PPT 程序 控制 结构 精选 PPT
限制150内