第5章C语言语句类型与基本控制结构ppt课件.ppt

上传人:小飞机 文档编号:2104902 上传时间:2023-01-10 格式:PPT 页数:60 大小:941.50KB
返回 下载 相关 举报
第5章C语言语句类型与基本控制结构ppt课件.ppt_第1页
第1页 / 共60页
第5章C语言语句类型与基本控制结构ppt课件.ppt_第2页
第2页 / 共60页
第5章C语言语句类型与基本控制结构ppt课件.ppt_第3页
第3页 / 共60页
第5章C语言语句类型与基本控制结构ppt课件.ppt_第4页
第4页 / 共60页
第5章C语言语句类型与基本控制结构ppt课件.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《第5章C语言语句类型与基本控制结构ppt课件.ppt》由会员分享,可在线阅读,更多相关《第5章C语言语句类型与基本控制结构ppt课件.ppt(60页珍藏版)》请在三一办公上搜索。

1、第5章,C语言语句类型与基本控制结构,5.1 C语言语句类型5.2 程序的三种基本结构5.3 if语句5.4 switch语句5.5 while语句5.6 do-while语句5.7 for语句5.8 循环嵌套5.9 break语句和continue语句,5.1 C语言语句类型,C语句分为,空语句 只有一个分号(;)的语句(什么也不做),表达式语句 语句形式:表达式;例如:a*=10;(a+b*5)20;注意:一个表达式可以成为另一个更复杂的表达式的一部分,而表达式语句则不能。例如:a=b(表达式),可以写(a=b)0 a=b;(表达式语句),不可以写(a=b;)0,复合语句 用一对 括起来的

2、语句 z=x+y;t=z/100;printf(“%f”,t);注意:复合语句中最后一个语句中最后的分号不能忽略不写。,函数调用语句 语句形式:函数名(实参列表);例如:scanf(“%d”,控制语句 用于完成一定的控制功能C语言有9中控制语句:if()else/条件语句,实现选择结构switch/多分支选择语句while()/当型循环语句,实现循环结构do while()/直到型循环语句for()/循环语句continue/结束本次循环语句break/中止执行switch或循环语句goto/转向语句return/从函数返回语句,5.2 程序的三种基本结构,程序的基本结构有三种:(1)顺序结构

3、:各操作步骤顺序执行,是一种最简单的基本结构。(2)选择结构(3)循环结构,例 交换两个变量的值#include void main()int a=3,b=5,c;printf(“交换前:a=%d,b=%d”,a,b);c=a;a=b;b=c;printf(“交换后:a=%d,b=%d”,a,b);,顺序结构程序设计举例,例 输入三角形的三边长,求三角形面积。假设:三个边长a,b,c能构成三角形。已知面积公式:area=s=(a+b+c)/2,#include#includevoid main()float a,b,c,s,area;scanf(“%f%f%f”,数学函数库因为要用到其中的sq

4、rt函数,运行情况:3.4 4.5 5.6a=3.40,b=4.50,c=5.60area=7.65,5.3 if语句5.3.1 if语句的3种形式,If语句形式if(表达式)语句表达式为条件判断表达式,结果为逻辑值例:if(xy)printf(“%d”,x);,if的内嵌语句通常多于一条语句,这时必须使用 把这些语句括起来,形成复合语句,使其在语法上成为一条单语句例如:if(x0)y=1;z=10;printf(“y=%d,z=%dn”,y,z);如果不加,程序会有什么变化,例:输入一个学生的两门课程考试成绩,如果两门课程成绩均在90分以上,则显示“优秀”。分析:输入两门课程的考试成绩(sc

5、anf)判断两门课程成绩是否均在90分以上如果“是”,则显示“优秀”,if,需要定义两个变量x1、x2存放输入的成绩用scanf接受输入的数据存放到x1、x2中判断是否是x190并且x290如果是,则printf(“优秀”);,if,#include main()float x1,x2;printf(“请输入两门课程的考试成绩:”);scanf(“%f%f”,if-else语句形式if(表达式)语句1else 语句2例:if(xy)printf(“%d”,x);else printf(“%d”,y);,开始,输入a,b,输出z,ab,z=a,z=b,结束,#include void main(

6、)int a,b,z;scanf(“%d,%d”,a,b);if(ab)z=a;else z=b;printf(“最大数是:%d”,z);,Yes,No,例:输入一个英文字母,判断是否为大写字母,若是,则转换成小写字母输出,否则不转换直接输出。分析:输入一个英文字母存放在变量ch中判断ch是否为大写字母如果是则需要将其转换为小写字母输出字母,char ch;printf(请输入一个英文字母:);scanf(%c,例:输入三个整数,将其中最大的整数显示输出。分析:输入的三个整数分别放在三个变量a、b、c中。需要进行两次比较,首先比较a、b谁大,然后用a、b中较大的数再和c比较,因此这里需要有个变

7、量(max)暂时存放a、b中较大的数,并用它来保存最后的最大值。,输入三个数据,放入变量a、b、c中判断:如果ab,则max=a,否则max=b;再判断:如果maxc,则max=c,int a,b,c,max;printf(输入三个整数:);scanf(%d%d%d,if-else if语句形式:if(表达式1)语句1else if(表达式2)语句2else if(表达式3)语句3 else if(表达式m)语句melse 语句n,例:scanf(“%d”,例:scanf(“%d”,例:求解下面的分段函数并显示结果。分析:分段函数中需要用到两个变量x、y判断x的范围,根据判断结果选择使用哪个公

8、式计算y的值,声明变量x、y输入x的值判断:如果x10,则y=2*x;否则再判断是否x=0并且x=10,如果是,则y=x+1;否则y=x-10;输出y的值,int x,y;printf(请输入x的值:);scanf(%d,例 输入某人的身高和体重,根据下面的计算公式判断此人的体重是标准、过胖还是过瘦。(1)标准体重=(身高-110)公斤;(2)超过标准体重5公斤为过胖;(3)低于标准体重5公斤为过瘦。,步骤:将输入的身高存放到变量h中,体重存放到变量w中计算标准体重,放到变量bw 中(bw=h-110)。如果w-bw5,则体重过胖,否则进一步进行判断,如果bw-w5,则体重过瘦,否则体重为标准

9、。,#include main()float h,w,bw;printf(请输入某人的身高和体重(公斤):);scanf(%f%f,if语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。形式:If(表达式1)if(表达式2)语句1else 语句2Elseif(表达式3)语句3else 语句4,内嵌if,例 输入三个数x,y,z,然后按从大到小输出。如果xy&xz,说明x最大,应该首先输出,然后判断,如果yz,则接下来应该先输出y然后输出z,否则接下来应该先输出z后输出y。如果yx&yz,说明y最大,应该首先输出,然后判断,如果xz,则接下来应该先输出x然后输出z,否则接下来应该

10、先输出z后输出x。如果以上两种情况都不是,则说明z最大,应该首先输出z的值,然后判断,如果xy,则接下俩应该按照先x后y的顺序输出,否则应该按照先y后x的顺序输出。,xy&xz,输出x,真,yz,输出y,输出z,输出z,输出y,yx&yz,输出y,真,xz,输出x,输出z,输出z,输出x,输出z,xy,输出x,输出y,输出y,输出x,假,假,假,假,假,真,真,真,#include main()float x,y,z;printf(请输入三个数字:);scanf(%f%f%f,if(x=y,elseprintf(%ft,z);if(x=y)printf(%ft%fn,x,y);elseprin

11、tf(%ft%fn,y,x);,例 输入三个数a,b,c,要求按由大到小的顺序输出。,If ab 将a和b对换If ac 将a和c对换If bc 将b和c对换,n,#include void main()float a,b,c,t;scanf(“%f,%f,%f”,匹配规则:Else总是与它上面的,最近的,同一复合语句中的,未配对的if语句配对。,例:If()if()语句1elseif()语句2 else 语句3,例:If()if()语句1elseif()语句2 else 语句3,当if和else数目不同时,可以加花括号来确定配对关系。,-1(x0)#includevoid main()int

12、 x,y;scanf(“%d”,上例中的程序段有四个,请判断哪个是正确的?程序1:程序2:if(x=0)y=-1;if(x0)y=1;else else y=0;if(x=0)y=0;else y=-1;else y=1;程序3:程序4:y=-1;y=0;if(x!=0)if(x=0)if(x0)y=1;if(x0)y=1;else y=0;else y=-1;,正确,正确,条件运算符和条件表达式,格式:表达式?表达式表达式功能:判断表达式1的值,如果成立就执行表 达式2,否则就执行表达式3,例:if()max=;else max;当ab时将a的值赋给max,当ab时将b的值赋给max,可以看

13、到无论ab是否满足,都是向同一个变量赋值。可以用下面的条件运算符来处理:()?;,输入一个整数c,判断c是否大于10,如果大于10,则输出“c10”,否则,输出“c10)printf(“c10”);else printf(“c10?”c10”:”c=10”);,说明:(1).条件运算符优先级高于赋值运算符,低于关系运算符、逻辑运算符和算术运算符。max=ab?a:b+1相当于:max=(ab)?a:(b+1)不等于:max=(ab?a:b)+1,说明:(2).条件运算符的结合方向为“自右至左”。(3).“表达式2”和“表达式3”不仅可以是数值表达式,还可以是赋值表达式或函数表达式。(4).条件

14、表达式中,表达式的类型可以与表达式和表达式的类型不同。,例 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#include void main()char ch;scanf(%c,5.4 switch语句,switch(表达式)case常量表达式:语句序列 case常量表达式:语句序列 case常量表达式i:语句序列i case常量表达式:语句序列 default:语句序列 功能:当switch后的表达式的值与某case分支中的常量表达式i相等时,执行该case分支后语句序列直到退出switch结构,否则执行default后的语句序列。

15、,例:要求按照考试成绩的等级输出百分制分数段,用switch语句实现:switch(grade)case printf();break;/表示退出switch结构 case printf();break;case printf();break;case printf();break;default printf();,说明:(1)switch和case语句中的表达式需要是整型、字符类型或者枚举类型。(2)每一个case的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案)。(3)执行完一个case后面的语句后,流程控制转移到下一个case继续执行。

16、不再判断表达式与“case常量表达式”是否相等。为避免执行后面case分支中的语句,应该在一个case分支后,用一个break语句来终止switch语句的执行。,switch(grade)case printf();case printf();case printf();case printf();default printf();,(4)良好的程序逻辑结构应该有default分支,但也可以没有这个分支,如果没有default,那么在找不到与表达式相等的常量表达式时,不执行任何分支。default语句的位置没有要求。(5)多个case可以共用一组执行语句。,int i=10;switch(i)

17、default:printf(“defaultn”);case 1:printf(“1n”);break;case 2:printf(“2n”);break;,最终显示:default1,switch(day)case 1:case 2:case 3:case 4:case 5:printf(“工作日 n);break;case 6:case 7:printf(“休息日 n);break;default:printf(“输入不在(17)中 n);break;,例 编程实现两个整数的算术运算。分析:算术运算的基本形式为:根据操作符的不同会有不同的计算结果因此需要判断的是操作符的种类,根据这个判断来选择不同的计算公式操作符的可能种类有:+、-、*、/、%,是有限的几种情况,可以在进行选择判断时使用switch语句,变量声明:操作符:char op;操作数:int x,y;输入算术运算:scanf(%d%c%d,#include main()int x,y;char op;scanf(%d%c%d,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号