第5章C语言语句类型与基本控制结构课件_第1页
第5章C语言语句类型与基本控制结构课件_第2页
第5章C语言语句类型与基本控制结构课件_第3页
第5章C语言语句类型与基本控制结构课件_第4页
第5章C语言语句类型与基本控制结构课件_第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语句分为5类控制语句函数调用语句表达式语句空语句复合语句空语句 只有一个分号(;)的语句 (什么也不做)表达式语句 语句形式:表达式;例如:a*=10;(a+b*5)20;注意:一个表达式可以成为另一个更复杂的表达式的一部分,而表达式语句则不能。例如:a=b(表达式),可以写(a=b)0 a=b;(表达式语句),不可以写

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

3、/从函数返回语句5.2 程序的三种基本结构程序的基本结构有三种: (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开始输入三边长计算s计算面积结束#include#includevo

4、id main()float a,b,c,s,area;scanf(“%f%f%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn”,a,b,c,s);printf(“area=%7.2fn”,area); 数学函数库因为要用到其中的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(表达式) 语句表达式为条件判断表达式,

5、结果为逻辑值例: if(xy) printf(“%d”,x);表达式语句真(非0)假(0)if的内嵌语句通常多于一条语句,这时必须使用 把这些语句括起来,形成复合语句,使其在语法上成为一条单语句例如:if (x0) y=1; z=10; printf(“y=%d,z=%dn”,y,z);如果不加 ,程序会有什么变化例:输入一个学生的两门课程考试成绩,如果两门课程成绩均在90分以上,则显示“优秀”。分析:输入两门课程的考试成绩(scanf)判断两门课程成绩是否均在90分以上如果“是”,则显示“优秀”if需要定义两个变量x1、x2存放输入的成绩用scanf接受输入的数据存放到x1、x2中判断是否是

6、x190并且x290如果是,则printf(“优秀”);if#include main() float x1,x2;printf(“请输入两门课程的考试成绩:”); scanf(“%f%f”,&x1,&x2); if (x190&x290) printf(“优秀n”);if-else语句形式if(表达式) 语句1else 语句2例: if (xy) printf(“%d”,x); else printf(“%d”,y); 条件 语句1 语句2YN开始输入a,b输出zabz=az=b结束#include void main()int a,b,z;scanf(“%d,%d”,a,b);if (ab

7、) z=a;else z=b;printf(“最大数是:%d”,z); YesNo例:输入一个英文字母,判断是否为大写字母,若是,则转换成小写字母输出,否则不转换直接输出。 分析:输入一个英文字母存放在变量ch中判断ch是否为大写字母如果是则需要将其转换为小写字母输出字母char ch;printf(请输入一个英文字母:);scanf(%c,&ch);if(ch=A&chb,则max=a,否则max=b;再判断:如果maxb) max=a; else max=b; if(cmax) max=c; printf(三个数中最大的值为:%dn,max);if-else if语句形式:if(表达式1)

8、语句1else if(表达式2)语句2else if(表达式3)语句3 else if(表达式m)语句melse 语句n3例: scanf(“%d”,&grade); if (grade100 | grade=90) score=A; else if(grade=80) score=B; else if(grade=70) score=C; else if(grade=60) score=D; else score=E;例: scanf(“%d”,&grade); if (grade=90 & grade=80) score=B; else if(grade=70) score=C; else

9、 if(grade=60) score=D; else if(grade=0) score=E;例:求解下面的分段函数并显示结果。 分析:分段函数中需要用到两个变量x、y判断x的范围,根据判断结果选择使用哪个公式计算y的值声明变量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);例 输入某人的身高和体重,根据下面的计算公式判断此人的体重是标准、过胖还是过瘦。(1)标准体重=(身高-110)公斤;(2)超过标准体重5公斤为过胖;(3)低于标准体重5公斤为过

10、瘦。步骤:将输入的身高存放到变量h中,体重存放到变量w中计算标准体重,放到变量bw 中(bw=h-110)。如果w-bw5,则体重过胖,否则进一步进行判断,如果bw-w5,则体重过瘦,否则体重为标准。#include main() float h,w,bw; printf(请输入某人的身高和体重(公斤):); scanf(%f%f,&h,&w); bw=h-110; if(w-bw5) printf(过胖n); else if(bw-w5) printf(过瘦n); else printf(标准n);if语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。形式:If(表达式1)i

11、f(表达式2) 语句1else 语句2Elseif(表达式3) 语句3else 语句4内嵌if例 输入三个数x,y,z,然后按从大到小输出。 如果xy&xz,说明x最大,应该首先输出,然后判断,如果yz,则接下来应该先输出y然后输出z,否则接下来应该先输出z后输出y。如果yx&yz,说明y最大,应该首先输出,然后判断,如果xz,则接下来应该先输出x然后输出z,否则接下来应该先输出z后输出x。如果以上两种情况都不是,则说明z最大,应该首先输出z的值,然后判断,如果xy,则接下俩应该按照先x后y的顺序输出,否则应该按照先y后x的顺序输出。xy&xz输出x真yz输出y输出z输出z输出yyx&yz输出

12、y真xz输出x输出z输出z输出x输出zxy输出x输出y输出y输出x假假假假假真真真#include main()float x,y,z; printf(请输入三个数字:);scanf(%f%f%f,&x,&y,&z); printf(三数从大到小为:”); if(x=y&x=z)printf(%ft,x);if(y=z)printf(%ft%fn,y,z);else printf(%ft%fn,z,y);else if(y=x&y=z)printf(%ft,y);if(x=z)printf(%ft%fn,x,z);elseprintf(%ft%fn,z,x); elseprintf(%ft,z

13、);if(x=y)printf(%ft%fn,x,y);elseprintf(%ft%fn,y,x);例 输入三个数a,b,c,要求按由大到小的顺序输出。If ab 将a和b对换If ac 将a和c对换If bc 将b和c对换nabacbca和b交换a和c交换c和b交换yyynn#include void main ( ) float a,b,c,t; scanf(“%f,%f,%f”,&a,&b,&c); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c);匹

14、配规则:Else总是与它上面的,最近的,同一复合语句中的,未配对的if语句配对。例:If()if() 语句1elseif() 语句2 else 语句3例:If()if() 语句1elseif() 语句2 else 语句3当if和else数目不同时,可以加花括号来确定配对关系。 -1 (x0)#includevoid main() int x,y; scanf(“%d”,&x); 程序段 printf(“x=%d,y=%dn”,x,y);上例中的程序段有四个,请判断哪个是正确的?程序1: 程序2: if(x=0) y=-1; if(x0) y=1; else else y=0; if(x= =0

15、) 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,可以看到无论ab是否满足,都是向同一个变量赋值。 可以用下面的条件运算符来处理: ()?;输入一个整数c,判断c是否大于10,如果大于10,则输出“c

16、10”,否则,输出“c10) printf(“c10”);else printf(“c10?”c10”:”cb?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,

17、& ch); ch=(ch=A& ch=Z)?(ch+32):ch;printf(%cn,ch);5.4 switch语句switch (表达式) case常量表达式:语句序列 case常量表达式:语句序列 case常量表达式i:语句序列i case常量表达式:语句序列 default :语句序列 功能:当switch后的表达式的值与某case分支中的常量表达式i相等时,执行该case分支后语句序列直到退出switch结构,否则执行default后的语句序列。例:要求按照考试成绩的等级输出百分制分数段,用switch语句实现:switch(grade) case printf();break;

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

19、个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)default:printf(“defaultn”);case 1:printf(“1n”);break;case 2:printf(“2n”);break;最终显示:default1switch (day) case 1: case 2: case 3: case 4: case 5:printf( “工作日 n); break; case 6: case 7:printf( “休息

温馨提示

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

评论

0/150

提交评论