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

下载本文档

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

文档简介

1、 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语句语句 C语言语句类型与基本控制结构 5.1 C语言语句类型 C C语句分为语句分为 5类类 控制语句控制语句 函数调用语句函数调用语句 表达式语句表达式语句 空语句空语句 复合语句复合语句 C语言语句类型与基本控制结构 空语句空语句 只有一个分号(;)的语句只有一个分号(

2、;)的语句 (什么也不做)(什么也不做) C语言语句类型与基本控制结构 表达式语句表达式语句 语句形式:语句形式: 表达式;表达式; 例如:例如:a a* *=10;=10; (a+b(a+b* *5)20;5)20; 注意:注意:一个表达式可以成为另一个更复杂的表达式一个表达式可以成为另一个更复杂的表达式 的一部分,而表达式语句则不能。的一部分,而表达式语句则不能。 例如:例如:a=b(表达式),可以写(表达式),可以写(a=b)0 a=b;(表达式语句),不可以写(表达式语句),不可以写(a=b;)0 C语言语句类型与基本控制结构 复合语句复合语句 用一对用一对 括起来的语句括起来的语句

3、z=x+y; t=z/100; printf(“%f”,t); 注意:注意:复合语句中最后一个语句中最后的分号复合语句中最后一个语句中最后的分号 不能忽略不写。不能忽略不写。 C语言语句类型与基本控制结构 函数调用语句函数调用语句 语句形式:语句形式: 函数名(实参列表);函数名(实参列表); 例如:例如:scanf(scanf(“%d%d”, printf( printf(“%d%d”,a);,a); C语言语句类型与基本控制结构 控制语句控制语句 用于完成一定的控制功能用于完成一定的控制功能 C C语言有语言有9 9中控制语句:中控制语句: if() elseif() else/条件语句,

4、实现选择结构条件语句,实现选择结构 switchswitch/多分支选择语句多分支选择语句 while()while()/当型循环语句,实现循环结构当型循环语句,实现循环结构 do while()do while()/直到型循环语句直到型循环语句 for()for()/循环语句循环语句 continuecontinue/结束本次循环语句结束本次循环语句 breakbreak/中止执行中止执行switchswitch或循环语句或循环语句 gotgoto o/转向语句转向语句 returnreturn/从函数返回语句从函数返回语句 C语言语句类型与基本控制结构 5.2 程序的三种基本结构程序的三种

5、基本结构 程序的基本结构有三种:程序的基本结构有三种: (1) (1) 顺序结构:各操作步骤顺序执行,是一顺序结构:各操作步骤顺序执行,是一 种最简单的基本结构。种最简单的基本结构。 (2) (2) 选择结构选择结构 (3) (3) 循环结构循环结构 C语言语句类型与基本控制结构 例例 交换两个变量的值交换两个变量的值 #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); 顺序结构程序设计举例顺序结构程序设计举例 C语言

6、语句类型与基本控制结构 例例 输入三角形的三边输入三角形的三边 长,求三角形面积。长,求三角形面积。 假设:三个边长假设:三个边长a a,b b,c c能构能构 成三角形。成三角形。 已知面积公式:已知面积公式: area=area= s=(a+b+c)/2s=(a+b+c)/2 c)-b)(s-a)(s-s(s 开始开始 输入三边长输入三边长 计算计算s s 计算面积计算面积 结束结束 C语言语句类型与基本控制结构 #include#include #include#include void main()void main() float a,b,c,s,area;float a,b,c,s

7、,area; scanf(“%f%f%f”,scanf(“%f%f%f”, s=1.0/2s=1.0/2* *(a+b+c);(a+b+c); area=sqrt(sarea=sqrt(s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c);(s-c); printf(“a=%7.2f, b=%7.2f, c=%7.2f, printf(“a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn”,a,b,c,s);s=%7.2fn”,a,b,c,s); printf(“area=%7.2fn”,area);printf(“area=%7.2fn”,area);

8、数学函数库 因为要用到 其中的sqrt 函数 运行情况: 3.4 4.5 5.6 a= 3.40, b=4.50, c=5.60 area=7.65 C语言语句类型与基本控制结构 5.3 if语句语句 5.3.1 if语句的语句的3种形式种形式 IfIf语句形式语句形式 ifif(表达式)(表达式) 语句语句 表达式为条件判断表达式,表达式为条件判断表达式, 结果为逻辑值结果为逻辑值 例:例: if(xy) printf(“%d”,x); 表达式表达式 语句语句 真(非真(非0) 假假 (0) C语言语句类型与基本控制结构 if的内嵌语句通常多于一条语句,这时必须的内嵌语句通常多于一条语句,这

9、时必须 使用使用 把这些语句括起来,形成复合语句,把这些语句括起来,形成复合语句, 使其在语法上成为一条单语句使其在语法上成为一条单语句 例如:例如: if (x0) y=1; z=10; printf(“y=%d,z=%dn”,y,z); 如果不加如果不加 ,程序会有什么变化,程序会有什么变化 C语言语句类型与基本控制结构 例:输入一个学生的两门课程考试成例:输入一个学生的两门课程考试成 绩,如果两门课程成绩均在绩,如果两门课程成绩均在90分以上,分以上, 则显示则显示“优秀优秀”。 分析:分析: 输入两门课程的考试成绩(输入两门课程的考试成绩(scanf) 判断两门课程成绩是否均在判断两门

10、课程成绩是否均在90分以上分以上 如果如果“是是”,则显示,则显示“优秀优秀” if C语言语句类型与基本控制结构 需要定义两个变量需要定义两个变量x1、x2存放输入的存放输入的 成绩成绩 用用scanf接受输入的数据存放到接受输入的数据存放到x1、 x2中中 判断是否是判断是否是x190并且并且x290 如果是,则如果是,则printf(“优秀优秀”); if C语言语句类型与基本控制结构 #include main() float x1,x2; printf(“请输入两门课程的考试成请输入两门课程的考试成 绩:绩:”); scanf(“%f%f”, if (x190 C语言语句类型与基本控

11、制结构 lif-elseif-else语句形式语句形式 if(if(表达式表达式) ) 语句语句1 1 else else 语句语句2 2 例:例: if (xy) printf(“%d”,x); else printf(“%d”,y); 条件条件 语句语句1 语句语句2 YN C语言语句类型与基本控制结构 开始开始 输入输入a,b 输出输出z ab z=az=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 C语言

12、语句类型与基本控制结构 例:输入一个英文字母,判断是否为大例:输入一个英文字母,判断是否为大 写字母,若是,则转换成小写字母输出,写字母,若是,则转换成小写字母输出, 否则不转换直接输出。否则不转换直接输出。 分析:分析: 输入一个英文字母存放在变量输入一个英文字母存放在变量ch中中 判断判断ch是否为大写字母是否为大写字母 如果是则需要将其转换为小写字母如果是则需要将其转换为小写字母 输出字母输出字母 C语言语句类型与基本控制结构 char ch; printf(请输入一个英文字母:请输入一个英文字母:); scanf(%c, if(ch=A else max=b; if(cmax) max

13、=c; printf(三个数中最大的值为:三个数中最大的值为: %dn,max); C语言语句类型与基本控制结构 lif-else ifif-else if语句形式:语句形式: ifif(表达式(表达式1 1)语句)语句1 1 else if(else if(表达式表达式2)2)语句语句2 2 else if(else if(表达式表达式3)3)语句语句3 3 else if(else if(表达式表达式m)m)语句语句m m else else 语句语句n n 3 C语言语句类型与基本控制结构 例:例: scanf(“%d”, if (grade100 | grade=90) score=A

14、; else if(grade=80) score=B; else if(grade=70) score=C; else if(grade=60) score=D; else score=E; C语言语句类型与基本控制结构 例:例: scanf(“%d”, if (grade=90 ; else if(grade=70) score= else if(grade=70) score=C C; ; else if(grade=60) score= else if(grade=60) score=D D; ; else if(grade=0) score= else if(grade=0) sco

15、re=E E; ; C语言语句类型与基本控制结构 例:求解下面的分段函数并显示结果。例:求解下面的分段函数并显示结果。 分析:分析: 分段函数中需要用到两个变量分段函数中需要用到两个变量x、y 判断判断x的范围,根据判断结果选择使用哪个公的范围,根据判断结果选择使用哪个公 式计算式计算y的值的值 C语言语句类型与基本控制结构 声明变量声明变量x、y 输入输入x的值的值 判断:如果判断:如果x10,则,则y=2*x; 否则再判断是否否则再判断是否x=0并且并且x10) y=2*x; else if(x=0) y=x+1; else y=x-10; printf(y=%d,y); C语言语句类型与

16、基本控制结构 例例 输入某人的身高和体重,根据下面输入某人的身高和体重,根据下面 的计算公式判断此人的体重是标准、的计算公式判断此人的体重是标准、 过胖还是过瘦。过胖还是过瘦。 (1)标准体重)标准体重=(身高(身高-110)公斤;)公斤; (2)超过标准体重)超过标准体重5公斤为过胖;公斤为过胖; (3)低于标准体重)低于标准体重5公斤为过瘦。公斤为过瘦。 C语言语句类型与基本控制结构 步骤:步骤: 将输入的身高存放到变量将输入的身高存放到变量h中,体重存中,体重存 放到变量放到变量w中中 计算标准体重,放到变量计算标准体重,放到变量bw 中中 (bw=h-110)。)。 如果如果w-bw5

17、,则体重过胖,否则进一,则体重过胖,否则进一 步进行判断,如果步进行判断,如果bw-w5,则体重过,则体重过 瘦,否则体重为标准。瘦,否则体重为标准。 C语言语句类型与基本控制结构 #include main() float h,w,bw; printf(请输入某人的身高和体重(公斤):); scanf(%f%f, bw=h-110; if(w-bw5) printf(过胖n); else if(bw-w5) printf(过瘦n); else printf(标准n); C语言语句类型与基本控制结构 ifif语句的嵌套语句的嵌套 在在ifif语句中又包含一个或多个语句中又包含一个或多个ifif

18、语句语句 称为称为ifif语句的嵌套。语句的嵌套。 形式:形式: If(If(表达式表达式1)1) if(if(表达式表达式2) 2) 语句语句1 1 else else 语句语句2 2 ElseElse if(if(表达式表达式3) 3) 语句语句3 3 else else 语句语句4 4 内嵌内嵌ifif C语言语句类型与基本控制结构 例例 输入三个数输入三个数x,y,z,然后按从大到小输出。然后按从大到小输出。 如果如果xy printf(请输入三个数字:请输入三个数字:); scanf(%f%f%f, printf(三数从大到小为:三数从大到小为:”); C语言语句类型与基本控制结构

19、if(x=y if(y=z) printf(%ft%fn,y,z); else printf(%ft%fn,z,y); else if(y=x if(x=z) printf(%ft%fn,x,z); else printf(%ft%fn,z,x); C语言语句类型与基本控制结构 else printf(%ft,z); if(x=y) printf(%ft%fn,x,y); else printf(%ft%fn,y,x); C语言语句类型与基本控制结构 例 输入三个数a,b,c,要求按由大到小的顺序输出。 If ab If ab 将将a a和和b b对换对换 If ac If ac 将将a a和

20、和c c对换对换 If bc If bc 将将b b和和c c对换对换 n ab ac bc a和b交换 a和c交换 c和b交换 y y y n n C语言语句类型与基本控制结构 #include #include void main ( ) void main ( ) float a,b,c,t;float a,b,c,t; scanf( scanf(“%f,%f,%f%f,%f,%f”, if(a if(a b)b) t=a;a=b;b=t;t=a;a=b;b=t; if(a if(a c)c) t=a;a=c;c=t;t=a;a=c;c=t; if(bc) if(bc) t=b;b=c;

21、c=t;t=b;b=c;c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c); printf(%5.2f,%5.2f,%5.2fn,a,b,c); C语言语句类型与基本控制结构 匹配规则:匹配规则: ElseElse总是与它上面的,最近的,总是与它上面的,最近的, 同一复合语句中的,未配对的同一复合语句中的,未配对的 ifif语句配对。语句配对。 例: If() if() 语句1 else if() 语句2 else 语句3 例: If() if() 语句1 else if() 语句2 else 语句3 当当ifif和和elseelse数目不同时,可以加花括号来确定配对关

22、系。数目不同时,可以加花括号来确定配对关系。 C语言语句类型与基本控制结构 -1 (x0) #include#include void main()void main() int x,y; int x,y; scanf( scanf(“%d%d”, 程序段程序段 printf( printf(“x=%d,y=%dnx=%d,y=%dn”,x,y);,x,y); C语言语句类型与基本控制结构 上例中的程序段有四个,请判断哪个是正确的?上例中的程序段有四个,请判断哪个是正确的? 程序程序1: 程序程序2: if(x=0) y=-1; if(x0) y=1; else else y=0; if(x=

23、 =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; 正 确 正 确 C语言语句类型与基本控制结构 条件运算符和条件表达式条件运算符和条件表达式 格式:格式: 表达式?表达式表达式?表达式表达式表达式 功能:功能: 判断表达式判断表达式1 1的值,如果成立就执行表的值,如果成立就执行表 达式达式2 2,否则就执行表达式,否则就执行表达式3 3 C语言语句类型与基本控制结构 例:例: ifif ()() max=ma

24、x=; else else maxmax; 当当abab时将时将a a的值赋给的值赋给maxmax,当,当abab时将时将b b的值赋给的值赋给maxmax, 可以看到无论可以看到无论abab是否满足,都是向同一个变量赋值。是否满足,都是向同一个变量赋值。 可以用下面的条件运算符来处理:可以用下面的条件运算符来处理: ()?()?; C语言语句类型与基本控制结构 输入一个整数输入一个整数c,判断,判断c是否大于是否大于10, 如果大于如果大于10,则输出,则输出“c10”,否,否 则,输出则,输出“c10) printf(“c10”); else printf(“c10?”c10”:”cb?a

25、max=ab?a:b+1b+1 相当于:相当于: max=(ab)?a:(b+1)max=(ab)?a:(b+1) 不等于:不等于: max=(ab?a:bmax=(ab?a:b)+1+1 C语言语句类型与基本控制结构 说明: (2).(2).条件运算符的结合方向为条件运算符的结合方向为“自右至左自右至左”。 (3).(3).“表达式表达式2 2”和和“表达式表达式3 3”不仅可以是数值表达式,不仅可以是数值表达式, 还可以是赋值表达式或函数表达式。还可以是赋值表达式或函数表达式。 (4).(4).条件表达式中,表达式的类型可以与表达式条件表达式中,表达式的类型可以与表达式 和表达式的类型不同

26、。和表达式的类型不同。 C语言语句类型与基本控制结构 例例 输入一个字符,判别它是否大写字母,如果输入一个字符,判别它是否大写字母,如果 是,将它转换成小写字母;如果不是,不转换。是,将它转换成小写字母;如果不是,不转换。 然后输出最后得到的字符。然后输出最后得到的字符。 #include void main ( ) char ch; scanf(%c, ch=(ch=A printf(%cn,ch); C语言语句类型与基本控制结构 5.4 switch语句 switchswitch (表达式)(表达式) casecase常量表达式:语句序列常量表达式:语句序列 casecase常量表达式:语

27、句序列常量表达式:语句序列 case case常量表达式常量表达式i i:语句序列:语句序列i i case case常量表达式:语句序列常量表达式:语句序列 default default :语句序列:语句序列 功能:当功能:当switchswitch后的表达式的值与某后的表达式的值与某casecase分支中的分支中的 常量表达式常量表达式i i相等时,执行该相等时,执行该casecase分支后语句序列直分支后语句序列直 到退出到退出switchswitch结构,否则执行结构,否则执行defaultdefault后的语句序列。后的语句序列。 C语言语句类型与基本控制结构 例例: : 要求按照

28、考试成绩的等级输出百分制分数段,用要求按照考试成绩的等级输出百分制分数段,用 switchswitch语句实现:语句实现: switch(gradegrade) case printfprintf();); break;/break;/表示退出表示退出switchswitch结构结构 case printf printf ();); break;break; case case printf printf ();); break;break; case case printf printf ();); break;break; default printf printf ( );); C语言语

29、句类型与基本控制结构 说明:说明: (1)switch(1)switch和和casecase语句中的表达式需要是整型、字语句中的表达式需要是整型、字 符类型或者枚举类型。符类型或者枚举类型。 (2) (2) 每一个每一个casecase的常量表达式的值必须互不相同,的常量表达式的值必须互不相同, 否则就会出现互相矛盾的现象(对表达式的同否则就会出现互相矛盾的现象(对表达式的同 一个值,有两种或多种执行方案)。一个值,有两种或多种执行方案)。 (3) (3) 执行完一个执行完一个casecase后面的语句后,流程控制转后面的语句后,流程控制转 移到下一个移到下一个casecase继续执行。不再判

30、断表达式与继续执行。不再判断表达式与 “casecase常量表达式常量表达式”是否相等。为避免执行后是否相等。为避免执行后 面面casecase分支中的语句,应该在一个分支中的语句,应该在一个casecase分支后分支后, , 用一个用一个breakbreak语句来终止语句来终止switchswitch语句的执行。语句的执行。 C语言语句类型与基本控制结构 switch(grade) case printf();); case printf ();); case printf ();); case printf ();); default printf ( );); C语言语句类型与基本控制结构 (4) (4) 良好的程序逻辑结构应该有良好的程序逻辑结构应该有defaultdefault分支,分支, 但也可以没有这个分支,如果没有但也可以没有这个分支,如果没有defaultdefa

温馨提示

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

评论

0/150

提交评论