第5章C语言语句类型与基本控制结构ppt课件_第1页
第5章C语言语句类型与基本控制结构ppt课件_第2页
第5章C语言语句类型与基本控制结构ppt课件_第3页
第5章C语言语句类型与基本控制结构ppt课件_第4页
第5章C语言语句类型与基本控制结构ppt课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 程

3、序的三种基本结构,程序的基本结构有三种: (1) 顺序结构:各操作步骤顺序执行,是一种最简单的基本结构。 (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

4、a,b,c,s,area;scanf(“%f%f%f,数学函数库 因为要用到其中的sqrt函数,运行情况: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); 如果不加 ,程序会有什么变化,

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

6、”,x); else printf(“%d”,y,开始,输入a,b,输出z,ab,z=a,z=b,结束,include void main() 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,例:输入三个整数

7、,将其中最大的整数显示输出。 分析: 输入的三个整数分别放在三个变量a、b、c中。 需要进行两次比较,首先比较a、b谁大,然后用a、b中较大的数再和c比较,因此这里需要有个变量(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)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式m

8、)语句m else 语句n,例: scanf(“%d,例: scanf(“%d,例:求解下面的分段函数并显示结果。 分析: 分段函数中需要用到两个变量x、y 判断x的范围,根据判断结果选择使用哪个公式计算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)低于

9、标准体重5公斤为过瘦,步骤: 将输入的身高存放到变量h中,体重存放到变量w中 计算标准体重,放到变量bw 中(bw=h-110)。 如果w-bw5,则体重过胖,否则进一步进行判断,如果bw-w5,则体重过瘦,否则体重为标准,include main() float h,w,bw; printf(请输入某人的身高和体重(公斤):); scanf(%f%f,if语句的嵌套 在if语句中又包含一个或多个if语句 称为if语句的嵌套。 形式: If(表达式1) if(表达式2) 语句1 else 语句2 Else if(表达式3) 语句3 else 语句4,内嵌if,例 输入三个数x,y,z,然后按从

10、大到小输出。 如果xy printf(请输入三个数字:); scanf(%f%f%f,if(x=y,else printf(%ft,z); if(x=y) printf(%ft%fn,x,y); else printf(%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()

11、语句1 else if() 语句2 else 语句3,例: If() if() 语句1 else if() 语句2 else 语句3,当if和else数目不同时,可以加花括号来确定配对关系,1 (x0) #include void main() int 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

12、; if(x0) y=1; else y=0; else y=-1,正 确,正 确,条件运算符和条件表达式,格式: 表达式?表达式表达式 功能: 判断表达式1的值,如果成立就执行表 达式2,否则就执行表达式3,例: if () max=; else max; 当ab时将a的值赋给max,当ab时将b的值赋给max, 可以看到无论ab是否满足,都是向同一个变量赋值。 可以用下面的条件运算符来处理: (),输入一个整数c,判断c是否大于10,如果大于10,则输出“c10”,否则,输出“c10) printf(“c10”); else printf(“c10?”c10”:”c=10”,说明: (1)

13、.条件运算符优先级高于赋值运算符 ,低于关系 运算符、逻辑运算符和算术运算符。 max=ab?a:b+1 相当于: max=(ab)?a:(b+1) 不等于: max=(ab?a:b)+1,说明: (2).条件运算符的结合方向为“自右至左”。 (3).“表达式2”和“表达式3”不仅可以是数值表达式, 还可以是赋值表达式或函数表达式。 (4).条件表达式中,表达式的类型可以与表达式 和表达式的类型不同,例 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。 #include void main ( ) char ch; scanf(%c,5.

14、4 switch语句,switch (表达式) case常量表达式:语句序列 case常量表达式:语句序列 case常量表达式i:语句序列i case常量表达式:语句序列 default :语句序列 功能:当switch后的表达式的值与某case分支中的 常量表达式i相等时,执行该case分支后语句序列直 到退出switch结构,否则执行default后的语句序列,例: 要求按照考试成绩的等级输出百分制分数段,用 switch语句实现: switch(grade) case printf(); break;/表示退出switch结构 case printf (); break; case pr

15、intf (); break; case printf (); break; default printf ( );,说明: (1)switch和case语句中的表达式需要是整型、字符类型或者枚举类型。 (2) 每一个case的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案)。 (3) 执行完一个case后面的语句后,流程控制转移到下一个case继续执行。不再判断表达式与“case常量表达式”是否相等。为避免执行后面case分支中的语句,应该在一个case分支后, 用一个break语句来终止switch语句的执行,switch(grade) c

16、ase printf(); case printf (); case printf (); case printf (); default printf ( );,4) 良好的程序逻辑结构应该有default分支,但也可以没有这个分支,如果没有default,那么在找不到与表达式相等的常量表达式时,不执行任何分支。default语句的位置没有要求。 (5) 多个case可以共用一组执行语句,int i=10; switch(i) default: printf(“defaultn”); case 1: printf(“1n”); break; case 2: printf(“2n”); break;,最终显示: default 1,switch (day) case 1: case 2: case 3: case 4: case 5:printf( “工作日 n); break; case 6: case 7:printf( “休息日 n); break; default:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论