C语言新教材PPT课堂课件-4(1)-顺序与选择结构.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言新教材PPT课堂课件-4(1)-顺序与选择结构.ppt》由会员分享,可在线阅读,更多相关《C语言新教材PPT课堂课件-4(1)-顺序与选择结构.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第四章第四章 程序控制结构程序控制结构主要内容主要内容4.1 C4.1 C语言的执行语句语言的执行语句4.2 4.2 顺序结构顺序结构4.3 4.3 选择结构选择结构4.4 4.4 循环结构循环结构24.1 C语言的执行语句语言的执行语句一、表达式语句:一、表达式语句:表达式表达式;例如:例如:a-=a*a;赋值语句赋值语句 a=b=5*3;赋值语句赋值语句 i+;自增自增1语句语句 x=0,y=1;逗号表达式语句逗号表达式语句 printf(Hello!);函数调用语句函数调用语句 二、空语句:二、空语句:;3三、复合语句:三、复合语句:用一对花括号括起来的一组语句。用一对花括号括起来的一
2、组语句。语句语句1 语句语句2 语句语句n 说明:说明:1 1、复合语句在语法上是一个语句。、复合语句在语法上是一个语句。2 2、一般将复合语句用在语法上是、一般将复合语句用在语法上是一个语句而相应操作需多条语句完一个语句而相应操作需多条语句完成的场合。成的场合。3 3、复合语句内的各条语句都必须、复合语句内的各条语句都必须以分号以分号“;”结尾,而右花括号结尾,而右花括号“”后面则不能有分号。后面则不能有分号。4 4、复合语句又称为分程序,、复合语句又称为分程序,它它可以有属于自己的数据说明部分。可以有属于自己的数据说明部分。4四、控制语句四、控制语句(1)条件选择语句)条件选择语句:if语
3、句语句(2)开关分支语句)开关分支语句:switch语句语句(3)当循环语句)当循环语句:while语句语句(4)直到循环语句)直到循环语句:dowhile语句语句(5)计数循环语句)计数循环语句:for语句语句(6)中止本次循环语句)中止本次循环语句:continue语句语句(7)中止整个循环语句)中止整个循环语句:break语句语句(8)无条件转移语句)无条件转移语句:goto语句语句(9)函数返回语句)函数返回语句:return语句语句54.2 顺序结构顺序结构l顺序结构程序:由两个或两个以上的语句组成,顺序结构程序:由两个或两个以上的语句组成,先执行先执行 A A 操作操作,然后再执行
4、然后再执行 B B 操作。操作。AB(入口)入口)(出口)出口)ABN-S流程图流程图传统流程图传统流程图6顺序结构程序举例顺序结构程序举例l【例例4.1】求两数之和及平均值求两数之和及平均值 l【例例4.2】数的分离数的分离l【例例4.3】截取二进制位截取二进制位l【例例4.4】求一元二次方程的实数根求一元二次方程的实数根7P63例例4.1 输入任意两个整数,求它们的和及平均值输入任意两个整数,求它们的和及平均值#include void main()int num1,num2;float sum,aver;printf(Please input two integers:n);scanf(
5、%d,%d,&num1,&num2);sum=(float)num1+num2;aver=sum/2.0;printf(sum=%.0f,aver=%.2fn,sum,aver);取两位小数输出取两位小数输出小数部分不输出小数部分不输出int型数之和可能超出型数之和可能超出int型的表示型的表示范围,故将范围,故将sum定义为定义为float型型 num1强制转换为强制转换为float型,型,以使以使num1、num2和为和为float型型 8拆分方法:拆分方法:m0=m%10;m0=m%10;m1=(m/10)%10;m1=(m/10)%10;m2=m/100;m2=m/100;方法方法2)
6、/*1:/*1:将个位数拆分出来将个位数拆分出来 */*2:/*2:将十位数拆分出来将十位数拆分出来 */*3:/*3:将百位数拆分出来将百位数拆分出来 */例例4.2 给定一个三位正整数,分别输出它的个位数、给定一个三位正整数,分别输出它的个位数、十位数和百位数。十位数和百位数。方法方法1)m2=m/100;m2=m/100;m1=(m-m2*100)/10;m1=(m-m2*100)/10;m0=m-m2*100-m1*10;m0=m-m2*100-m1*10;/*1:/*1:将百位数拆分出来将百位数拆分出来 */*2:/*2:将十位数拆分出来将十位数拆分出来 */*3:/*3:将个位数拆
7、分出来将个位数拆分出来 */9推广到五位数的拆分:推广到五位数的拆分:m0=m%10;m0=m%10;m1=(m/10)%10;m1=(m/10)%10;m2=(m/100)%10;m2=(m/100)%10;m3=(m/1000)%10;m3=(m/1000)%10;m4=(m/10000)%10;m4=(m/10000)%10;即即m4=m/10000;m4=m/10000;方法方法2)个位数个位数十位数十位数百位数百位数千位数千位数万位数万位数方法方法1)long m;long m;intint m0,m1,m2,m3,m4;m0,m1,m2,m3,m4;m4=m/10000;m4=m/
8、10000;m3=(m-m4*m3=(m-m4*10000L10000L)/1000;)/1000;m2=(m-m4*m2=(m-m4*10000L10000L-m3*1000)/100;-m3*1000)/100;m1=(m-m4*m1=(m-m4*10000L10000L-m3*1000-m2*100)/10;-m3*1000-m2*100)/10;m0=m-m4*m0=m-m4*10000L10000L-m3*1000-m2*100-m1*10;-m3*1000-m2*100-m1*10;万位数万位数千位数千位数百位数百位数十位数十位数个位数个位数若从个位拆起,若从个位拆起,方法方法2
9、2更好!更好!10/*以十六进制形式输入以十六进制形式输入a*/*使使a右移右移4位存于位存于b*/*置置c=(1111)2*/*b&c得到结果得到结果d*/*以十六进制形式输出以十六进制形式输出d*/#include void main()unsigned a,b,c,d;scanf(%x,&a);b=a4;c=(04);d=b&c;printf(%xn%xn,a,d);例例4.3 取一个取一个1616位的二进制数位的二进制数a a的的7 74 4位位。15876543210了解了解11例例4.4 求方程求方程ax2+bx+c=0的实数根。的实数根。#include#include void
10、 main()float a,b,c,d,x1,x2;printf(Input a,b,c:);scanf(%f,%f,%f,&a,&b,&c);d=b*b-4*a*c;x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(x1=%.4fnx2=%.4fn,x1,x2);124.3 选择结构选择结构4.3.1 if4.3.1 if语句语句4.3.2 switch4.3.2 switch语句语句4.3.3 4.3.3 选择结构的嵌套选择结构的嵌套4.5.4 4.5.4 选择结构程序举例选择结构程序举例13选择结构选择结构l选择结构:先判断条件选择结构:
11、先判断条件P,P,若条件成立若条件成立,跳过跳过B B执执行行A A操作;若条件不成立,跳过操作;若条件不成立,跳过A A执行执行B B操作。操作。BAP(入口)入口)(出口)出口)YNPY NABN-S流程图流程图传统流程图传统流程图144.3.1 if 语句语句lif if 语句是用来判断所给定的条件是否满足,语句是用来判断所给定的条件是否满足,根据判定的结果根据判定的结果(真或假真或假)决定执行给定的某决定执行给定的某种操作之一。种操作之一。15一、一、if 语句的形式语句的形式1单分支选择结构单分支选择结构l格式格式:if (表达式表达式)语句语句 执行过程:执行过程:表达式表达式语句
12、语句(入口)入口)(出口)出口)YN举例举例:if (c=A&c=A&cy)printf(%d,x);else printf(%d,y);此处此处不能不能加加“;”此两此两处不处不能加能加“;”17l用双边用双边ifif实现单边选择结构实现单边选择结构表达式表达式语句语句(入口)入口)(出口)出口)NY 格式格式:if(if(表达式表达式);else else 语句语句 此处此处“;”不能少不能少,代表空语句代表空语句举例举例:if (cZ);else c=c+32;18三、三、if 语句的形式语句的形式3多分支选择结构多分支选择结构表达式表达式1语句语句1Y表达式表达式2N语句语句2Y表达式
13、表达式3N语句语句3Y表达式表达式4N语句语句4Y语句语句5Nl格式格式:if(表达式表达式1)语句语句1 else if(表达式表达式2)语句语句2 else if(表达式表达式3)语句语句3 :else if(表达式表达式n)语句语句n else 语句语句n+1执行过程:执行过程:19例例4.5#include void main()char c;printf(Input a letter:);c=getchar();/*等效于等效于 scanf(%c,&c);*/if(c=A&c=Z)c=c+32;putchar(c);/*等效于等效于 printf(%cn,c);*/举例:输入一字母,
14、以小写字母形式输出举例:输入一字母,以小写字母形式输出Input a letter:Input a letter:A A a aInput a letter:Input a letter:a a a a单分支单分支if20#include void main()char c;printf(Input a letter:);c=getchar();c=(c=A&c=A&c=Z)?c=c+32:c=c;21举例:按升序输出两个数举例:按升序输出两个数#include void main()int a,b;scanf(%d,%d,&a,&b);if(a=b)printf(%d,%dn,a,b);el
15、se printf(%d,%dn,b,a);双分支双分支if(条件(条件判断一次)判断一次)例例4.6 P70解解1)222个单分支个单分支if(条件判(条件判断两次)断两次)#include void main()int a,b,t;scanf(%d,%d,&a,&b);if(ab)printf(%d,%dn,b,a);例例4.6P69解解2)23单分支单分支if(条件(条件判断一次)判断一次)#include void main()int a,b,t;scanf(%d,%d,&a,&b);if(ab)t=a;a=b;b=t;/*两个变量交换数据*/printf(%d,%dn,a,b);例例
16、4.6 P68解解3)3个语句用花括个语句用花括号括起来构成号括起来构成 1个复合语句个复合语句去掉花括号,去掉花括号,会是什么效会是什么效果?果?24#include void main()int a,b,t;scanf(%d,%d,&a,&b);if(ab)t=a;a=b;b=t;printf(%d,%dn,a,b);将分号改为逗号将分号改为逗号则成为则成为1个语句,个语句,可可去掉花括号去掉花括号t=a,a=b,b=t;25 举例:求分段函数的值举例:求分段函数的值#include void main()float x,y;scanf(%f,&x);if(x0)y=0;else if(x
17、=50)y=x;else y=x*x;printf(x=%f,y=%fn,x,y);0 (x0)x (0 x50)x2 (x50)y=例例4.84.8 根据所输入的根据所输入的x x之值之值,求求用多边用多边if 语句:语句:26这是一这是一个嵌套个嵌套结构结构#include void main()float x,y;scanf(%f,&x);if(x=0)if(x=50)y=x;else y=x*x;else y=0;printf(x=%f,y=%fn,x,y);例例4.8另解:用双分支另解:用双分支if 语句的嵌套语句的嵌套 0 (x0)x (0 x50)x2 (x50)y=27四、四、
18、if 语句的嵌套语句的嵌套一般形式一般形式:if (条件条件1)if(条件条件2)语句语句1 else 语句语句2 else if(条件条件3)语句语句3 else 语句语句4在在if if 语句中又包含一个或多个语句中又包含一个或多个if if 语句语句,称为称为if if 语句的嵌套语句的嵌套if if 与与 else else 的配对关系:从最内层开始的配对关系:从最内层开始,else,else 总是总是与它上面最近的且尚未配对的与它上面最近的且尚未配对的 if if 配对。配对。为了使逻辑关系清晰,建议采用为了使逻辑关系清晰,建议采用“分层缩进书写格式分层缩进书写格式”。28在内嵌在内
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 新教材 PPT 课堂 课件 顺序 选择 结构
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内