第5章(C程序结构及控制语句9课时).ppt
《第5章(C程序结构及控制语句9课时).ppt》由会员分享,可在线阅读,更多相关《第5章(C程序结构及控制语句9课时).ppt(101页珍藏版)》请在三一办公上搜索。
1、1,第5章 C程序结构及控制语句,2,学习目标,理解并熟练运用C语言的顺序、选择、循环控制语句进行编程。培养良好的编程风格。,3,学习内容,4,顺序结构概念,程序中的语句是按照编写时的顺序自上而下,一条接一条地执行的,这一过程称为顺序执行。顺序结构程序三步曲是输入、计算、输出。,5,顺序结构例5.1,要求:输入三角形的三边长,求三角形面积。海伦公式:;s=(a+b+c)/2。,#include#include void main()float a,b,c,s,area;scanf(%f,%f,%f,6,顺序结构例5.3,交换数据。对输入的两个变量a、b,交换它们的值并输出。请思考一个问题:现有
2、两个500ML的瓶子,一个里面装着醋,一个里面装着酱油,请问如何交换两个瓶子的液体?,7,顺序结构例5.3,醋,酱油,1,醋,酱油,醋,酱油,2,醋,酱油,A,B,C,D,8,顺序结构例5.3,醋,酱油,3,醋,酱油,醋,酱油,醋,酱油,E,F,G,H,9,顺序结构例5.3,引入第三个瓶子!两个变量的交换亦是如此!,10,顺序结构例5.3,交换数据。对输入的两个变量a、b,交换它们的值并输出。,#include void main()int a,b,c;printf(“Please input two integers:”);scanf(“%d%d”,11,选择结构,选择结构又称分支结构或者选
3、取结构。if 语句 switch语句,12,选择结构if语句格式一,格式1:if(表达式)语句功能:如果表达式为真,则执行其后的语句,否则不执行语句。例如:if(ab)max=a;,13,选择结构if语句格式二,格式2:if(表达式)语句1 else 语句2功能:如果表达式为真,则执行语句1;否则执行语句2。例如:if(ab)max=a;else max=b;,14,选择结构if语句格式三,格式3:if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式n)语句n else 语句n+1,功能:依次判断表达式的值,当出现某个值为真时,则执
4、行对应语句,然后跳到整个if语句之外继续执行程序。如果所有的表达式均为假,则执行语句n+1。然后继续执行后续程序。,15,选择结构if语句格式三,根据用户购物的总价Cost,选择不同的折扣率Rate。Cost1000 七折800Cost=1000 八折500Cost=800 九折Cost=500 无折扣,16,选择结构if语句格式三,if(Cost1000)Rate=0.7;else if(Cost800)Rate=0.8;else if(Cost500)Rate=0.9;elseRate=1.0;,if(Cost1000)Rate=0.7;if(Cost800)Rate=0.8;if(Cos
5、t500)Rate=0.9;if(Cost=500)Rate=1.0;,17,选择结构if语句说明,if关键字之后均为表达式。该表达式可以是逻辑表达式、关系表达式以及其它表达式。在if语句中的条件判断表达式必须用圆括号括起来,每个语句之后必须加分号。else子句不能作为语句单独使用,须与if配对使用。,18,选择结构if语句说明,如果在满足条件时执行一组(多个)语句,则必须把这一组语句用“”括起来组成一个复合语句。“”之后不加分号。,if(ab)a+;b+;elsea=0;b=1;,19,选择结构if语句说明,在if语句的表达式中,一定要避免判断实数与零值的等值比较。因为无论是float还是d
6、ouble变量,都有精度限制。应使用=、=来替代=、!=。float x;if(x=0)改为:#define EPS 1E-7float x;if(fabs(x)EPS)/表达式的含义为x的值为0,20,选择结构if语句举例,【例】输入两个实数,输出两个数的最大值。#include void main()float a,b;scanf(“%f,%f“,运行情况如下:3.6,-3.2 3.60,21,选择结构if语句的嵌套,如果if语句中的执行语句又是一个if语句,就构成了if语句嵌套的情形。格式:if(表达式)if语句或者:if(表达式)if语句 else if语句,if(ab)if(b0)p
7、rintf(“ab0n”);else printf(“ab,b0)printf(“b=a0n”);else if(a=0)printf(“b=a=0n”);else printf(“b=a,a0n”);,在多重嵌套时,else总是与在它之前出现的、尚未匹配的且离它最近的if匹配。,22,选择结构if语句的嵌套,注意:在多重嵌套时,else总是与在它之前出现的、尚未匹配的且离它最近的if匹配。可能会更改配对的原则。一般情况下,较少使用if语句的嵌套结构,以使程序更便于阅读理解。,23,选择结构if语句的嵌套例,例:有一函数:-1(x0)编一程序:输入一个x值,输出y值。,24,选择结构if语句的
8、嵌套例,有以下几个程序,请判断哪个是正确的,哪个是错误的?程序1:void main()int x,y;scanf(d,&x);if(x0)y=-1;else if(x=0)y=0;else y=1;printf(x=d,y=dn,x,y);正确,25,选择结构if语句的嵌套例,程序2:void main()int x,y;y=-1;scanf(d,&x);if(x!=0)if(x0)y=1;else y=0;/else与第二个if配对 printf(x=d,y=dn,x,y);错误 请思考:错误的原因是什么?,26,选择结构if语句的嵌套例,程序2修改如下:void main()int x,
9、y;y=-1;scanf(d,&x);if(x!=0)if(x0)y=1;else y=0;/else与第一个if配对 printf(x=d,y=dn,x,y);说明:更改了配对的原则,27,选择结构switch语句,格式:switch(表达式)case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default:语句n+1,28,选择结构switch语句,N-S图,功能:将表达式的值逐个与其后的常量表达式进行比较。当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后
10、的常量表达式均不相同时,则执行default后的语句。,29,选择结构switch语句,#include void main()int a;scanf(“%d”,运行情况如下:5FridaySaturdaySundayerror,30,选择结构switch语句,#include void main()int a;scanf(“%d”,加break,运行情况如下:5Friday,31,选择结构switch语句,#include void main()int a;scanf(“%d”,运行情况如下:7Sunday,运行情况如下:8Sunday,多个case可以共用一组执行语句,32,选择结构swi
11、tch语句,#include void main()int a;scanf(“%d”,运行情况如下:5Friday,case分支顺序改变,33,选择结构switch语句,#include void main()int a;scanf(“%d”,运行情况如下:1Monday,case分支语句用括起来,34,选择结构switch语句,说明:多个case可以共用一组执行语句。“case 常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch语句。为了避免上述情况,C提供了break语句。在case后的各个常量表达式的值不能相同,
12、否则会出现错误。在case后,允许有多个语句,可以不用括起来。各个case和default子句的先后顺序可以变动,不影响程序的执行结果。default子句可以省略不用,此时当表达式的值与所有case后的常量表达式的值不同时,退出switch语句,继续执行后续程序。switch后面括号中的表达式只能是整型、字符型、枚举类型,case后的常量表达式的类型必须与之匹配。各个case之后是常量表达式,一定不要试图使用条件表达式或者逻辑表达式。,#include void main()int score;scanf(“%d”,35,错误!该如何实现该程序?,if(score=60)printf(“及格n
13、”);else printf(“不及格n”);,36,switch(score/10)case 0:case 1:case 2:case 3:case 4:case 5:printf(“不及格n”);break;,37,case 6:case 7:case 8:case 9:case 10:printf(“不及格n”);break;,38,选择结构switch语句例5.6,计算器程序。从键盘接收两个运算数和四则运算符,计算并输出结果。,#include void main()float a,b;char c;printf(input expression:a+(-,*,/)b n);scanf
14、(%f%c%f,P93/例5.8请大家课后阅读,一题多解方法。,39,40,循环结构,在给定条件成立时,反复执行某程序段,直到条件不成立为止,这就是循环结构。给定的条件称为循环条件反复执行的程序段称为循环体在循环变量中用于控制循环执行次数的变量称为循环变量。C语言提供了三种循环控制语句。while语句 do-while语句 for语句,41,循环结构while语句,格式:while(表达式)语句功能:计算表达式的值,当值为真时,执行循环体。说明:(1)while语句中的表达式一般是关系表达式或者逻辑表达式,只要值为真就可以继续执行循环体。(2)如果循环体包含一个以上的语句,必须用括起来构成复合
15、语句。例:求1100之间所有偶数的和。,42,循环结构while语句例5.9,求1100之间所有偶数的和。,#include void main()int sum=0,n;n=0;/循环变量初始化 while(n=100)/循环执行条件 sum+=n;/循环体 n+=2;/改变循环变量的值 printf(%dn,sum);,分析:int n=0;/n为每一项int sum=0;/sum为求得的和while(循环执行条件)循环体输出sum的值所以程序的关键是要确定:1.循环执行条件2.循环体,43,循环结构do-while语句,格式:do 语句 while(表达式);功能:先执行一次循环体,再判
16、别表达式的值,如果为真则继续执行循环,否则终止循环。说明:(1)do-while语句的表达式后必须加分号。(2)如果循环体由多个语句组成,也必须由括起来,组成一个复合语句。,44,循环结构do-while语句例5.10,求1100之间所有偶数的和。,#include void main()int sum=0,n=0;do sum+=n;n+=2;while(n=100);printf(%dn,sum);,45,while和do-while循环的比较,(1)void main()int sum=0,i;scanf(“%d”,,(2)void main()int sum=0,i;scanf(%d,
17、,输入1,结果如何?输入3,结果又如何?,46,while和do-while循环的比较,运行情况如下:运行情况如下:1 1sum=3 sum=3再运行一次:再运行一次:3 3sum=0 sum=3,计算n!=123n。问题分析:这是一个循环次数已知的累乘问题。n!=(n-1)!n,47,算法:step1:输入n值。step2:累乘求积变量赋初值,p=1。step3:累乘次数计数器i置初值,i=1。step4:若循环次数i未超过n,则反复执行step5和step6,否则转去执行step7。step5:进行累乘运算,p=p*i.step6:累乘次数计数器i加1,i=i+1,且转step4。step
18、7:打印累乘结果,即n的阶乘值p。,48,49,while,计算n!=123n。,#include void main()int i=1,n;long p=1;printf(“Please enter n:”);scanf(“%d”,分析:int i=1,n;long p=1;/p为求得的乘积printf(“Please enter n:”);scanf(“%d”,while(循环执行条件)循环体输出p的值,50,dowhile,计算n!=123n。,#include void main()int i=1,n;long p=1;printf(“Please enter n:”);scanf(“
19、%d”,51,循环结构for语句,格式:for(表达式1;表达式2;表达式3)语句功能:(1)首先计算表达式1的值;(2)再计算表达式2的值,若值为真,则执行一次循环体,否则跳出循环;(3)计算表达式3的值,转回第(2)步重复执行。,改写为while语句:表达式1;while(表达式2)语句;表达式3;,52,循环结构for语句例5.11,例如:求1100之间所有偶数的和。,#include void main()int sum=0,i;for(i=0;i=100;i+=2)sum+=i;printf(%dn,sum);,53,for,计算n!=123n。,#include void main



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序结构 控制 语句 课时

链接地址:https://www.31ppt.com/p-5651093.html