第五章 基本语句.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第五章 基本语句.ppt》由用户(hyngb9260)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五章 基本语句 第五 基本 语句
- 资源描述:
-
1、 前面已介绍了顺序结构,本章介绍选择结构和循环结构。C语言中,基本语句包括下列语句:(1)赋值语句 (2)条件语句 (3)循环语句 (4)转移语句 (5)函数语句5.1.1 5.1.1 简单赋值语句简单赋值语句 运算符加上“=”语句格式:r=v;5.1.2 5.1.2 特殊赋值语句特殊赋值语句 5.1.3 5.1.3 连续赋值语句连续赋值语句 ;21vrrrk例5.2 从键盘输入一个任意的小写字母,将其转换成大写字母输出。main()char ch,chep;int bu;printf(“please input a little letter:”);scanf(“%c”,&ch);bu=a-
2、A;chep=ch-bu;printf(“the capital letter is:%c”,chep);C C语言中有三类选择语句语言中有三类选择语句:(1)条件语句(if语句)(2)条件赋值语句(3)开关语句(switch语句)1 1、ifif的三种形式的三种形式 功能:当表达式值非0时,执行语句A,否则不执行语句A.表达式语句A00例如:if(xy)printf(%d,x);形式1 if(表达式)语句A其流程图:例5.5 计算y=|x|绝对值计算公式如下:main()float x;printf(“please input x:”);scanf(“%f”,&x);if(xy)printf
3、(%d,x);else printf(%d,y);例5.6 用键盘输入3个数(a、b、c),确定其中最大值。设max为a、b中最大者,公式如下:main()float a,b,max;printf(“please input a,b,c:”);scanf(“%f%f%f”,&a,&b,&c);if(a=b)max=a;else max=b;if(maxc)max=c;printf(“max=%fn”,max);)()(maxbabbaa再令max为max和c中最大者,此时公式如下:)(max)(maxmaxmaxccc 假设a就是三个数的最大者,并且始终让a中存放三个数中的最大者,计算过程如下
4、:先找a、b中真正大者,并存于a中,公式如下:main()float a,b,c;printf(“please input a,b,c:”);scanf(“%f%f%f”,&a,&b,&c);if(a b)a=b;if(ab?a:b);max=(maxc?max:c);printf(“max=%fn”,max);if语句的嵌套if(表达式1)内嵌ifelse内嵌if注意:else总是与它上面的最近的未配对的if 配对.一般形式 在上述形式的if语句中,又可以是if语句称为嵌套。if(表达式2)语句1if(表达式3)语句3else 语句2else 语句4例:if()if()语句2else 语句3
5、if ()if()语句1 else 所以:必要时加.if()语句1else补充例2 有一函数y=1 (x0)编一程序,输入一个x值,输出y值。有以下几种写法,请判断哪些是正确的?程序1:main()int x,y;scanf(d,&x);if(x=0)if(x0)y=1;else y=0;else y=1;程序3:将上述if语句改为:y=1;if(x!=0)if(x0)y=1;else y=0;程序4:y=0;if(x=0)if(x0)y=1;else y=1;1、语句形式:、语句形式:switch (表达式)(表达式)case 常量常量1:语句语句1;case 常量常量2:语句语句2;cas
6、e 常量常量3:语句语句3;.case 常量常量n:语句语句n;default:语句语句n+1;。数值型数值型或或字符型字符型常量表达式的值必须常量表达式的值必须互不相同,否则执行互不相同,否则执行时将出现矛盾,即同时将出现矛盾,即同一个开关值,将对应一个开关值,将对应多种执行方案。多种执行方案。千万不千万不能接能接(;)号号2、语句执行流程:、语句执行流程:指语句的最指语句的最后一条是否后一条是否为为break简单语句或简单语句或复合语句复合语句breakbreakbreakbreak有有无breakbreak有无有计算表达式计算表达式常量常量1 1常量常量2 2常量常量n n=语句语句1
7、1=语句语句2 2语句语句n n其它其它=语句语句n+1n+1无值值casecase语句出语句出现的次序并现的次序并不影响执行不影响执行结果。结果。例例3 3:假设用:假设用0 0、1 1、2.62.6分别表示星期日、星期一分别表示星期日、星期一.星期六。现输入一个数字,输出对应的星期几星期六。现输入一个数字,输出对应的星期几的英文单词。如果输入的英文单词。如果输入3 3,输出,输出“Wednesday”Wednesday”。#include stdio.hvoid main()int n;scanf(%d,&n);switch(n)case 0:printf(Sundayn);case 1:
8、printf(Mondayn);case 2:printf(Tuesdayn);case 3:printf(Wednesdayn);case 4:printf(Thursdayn);case 5:printf(Fridayn);case 6:printf(Saturdayn);default:printf(Error);程序运行情况如下:程序运行情况如下:3Wednesday ThursdayFridaySaturdayerror在在“switchswitch”语句中,语句中,“case case 常量表达式常量表达式”只相当于一个语句标号,表达式的值和某标号只相当于一个语句标号,表达式的值和
9、某标号相等则转向该标号执行,但不能在执行完该标相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个号的语句后自动跳出整个switch switch 语句,因此语句,因此会继续执行所有后面语句的情况。会继续执行所有后面语句的情况。为此,语言提供了一种为此,语言提供了一种breakbreak语句,其功能是语句,其功能是可以跳出它所在的可以跳出它所在的switchswitch语句。语句。将上面的例将上面的例3 3修改如下:修改如下:#include stdio.hvoid main()int n;scanf(%d,&n);switch(n)case 0:printf(Sundayn);br
10、eak;case 1:printf(Mondayn);break;case 2:printf(Tuesdayn);break;case 3:printf(Wednesdayn);break;case 4:printf(Thursdayn);break;case 5:printf(Fridayn);break;case 6:printf(Saturdayn);break;default:printf(Error);程序运行情况如下:程序运行情况如下:33Wednesday Wednesday 3、说明、说明多个多个casecase语句可以共用一组执行语句。语句可以共用一组执行语句。switch(
11、grade)case A:case B:case C:printf(grade=60n);break;default:printf(grade60);各各casecase和和defaultdefault子句的先后顺序可以变动,而子句的先后顺序可以变动,而不会影响程序执行结果。不会影响程序执行结果。defaultdefault语句可以省略不用。语句可以省略不用。casecase和和defaultdefault与其后面的常量表达式间至少有与其后面的常量表达式间至少有一个空格。一个空格。switchswitch语句可以嵌套,语句可以嵌套,breakbreak语句只跳出它所在语句只跳出它所在的的swi
12、tchswitch语句。语句。如如 case B:例例4 4 企业发放的奖金根据利润提成。从键盘输入当企业发放的奖金根据利润提成。从键盘输入当月利润,求应发放奖金总数?月利润,求应发放奖金总数?10%1012%102014%204016%406018%6010020%100利润利润万利润利润万利润利润万奖金利润利润万利润利润万利润利润万利润xx=1010 x2020 x4040 x6060 x100100c&a+cb&b+ca)if(a=b&b=c)printf(equalateral triangle.n);else if(a=b|a=c|b=c)printf(isoscelestriang
13、le.n);else printf(other triangle.n);else printf(can notn);课堂练习课堂练习1.main()1.main()int x=1,y=0,a=0,b=0;int x=1,y=0,a=0,b=0;switch(x)switch(x)case 1:switch(y)case 1:switch(y)case 0:a case 0:a+;break;+;break;case case 1:b+;break;1:b+;break;case 2:a+;b+;break;case 2:a+;b+;break;case 3:case 3:a+;b+;a+;b+
14、;printf(“a=%d,b=%dn”,a,b);printf(“a=%d,b=%dn”,a,b);结果结果:a=2,b=12.程序填空程序填空:以下程序判断输入的整数能否以下程序判断输入的整数能否被被3或或7整除整除.main()int x,f=0;scanf(“%d”,&x);if(1 )(2 )if(f=1)printf(“YESn”);else printf(“NOn”);在在C语言中可以用以下语句来实现循环:语言中可以用以下语句来实现循环:1.用用goto语句和语句和if语句构成循环;语句构成循环;2.用用while语句;语句;3.用用do-while语句;语句;4.用用for语句
15、。语句。循环循环:就是在给定的条件成立时反复执行某一程就是在给定的条件成立时反复执行某一程 序段,被反复执行的程序段称为循环体。序段,被反复执行的程序段称为循环体。S=1+2+3+1000S12100S+1SS+2SS+100S作100次加法S+iS累加器计数器1、语句形式:、语句形式:goto 语句标号语句标号;例如例如:goto label;label:.语句标号用标识语句标号用标识符表示,它的定符表示,它的定名规则与变量名名规则与变量名相同。相同。5.3.1 goto5.3.1 goto语句及与语句及与ifif语句构成循环语句构成循环2、语句执行流程、语句执行流程:在程序执行过程中,如果
16、遇到在程序执行过程中,如果遇到gotogoto语句,则程序执行流程无条件语句,则程序执行流程无条件地转向语句标号后的语句继续执行。地转向语句标号后的语句继续执行。3、说明、说明 语句标号仅仅对语句标号仅仅对goto goto 语句有效,对语句有效,对其它语句不影响。其它语句不影响。同一个程序中,不允许有同名标号。同一个程序中,不允许有同名标号。gotogoto语句通常与条件语句配合语句通常与条件语句配合使用。可用来实现条件转移、使用。可用来实现条件转移、构成循环、跳出循环体等功能构成循环、跳出循环体等功能 main()int i,sum=0;i=1;loop:if(i=100)sum=sum+
17、i;i+;goto loop;printf(%d,sum);运行结果如下:5050100211001ii例:求 main()int sum=0,i=1;loop:sum=sum+i;i+;if(i=100)goto loop;printf(sum=%d,sum);本例相当于当型循环本例相当于当型循环,若改为直到型若改为直到型:5.3.2 while5.3.2 while语句语句真真(非零非零)表达式表达式 循环体循环体假假(零零)1、while 语句的形式语句的形式:while(表达式表达式)循环体;循环体;2、while 语句语句 常称常称为为“当型当型”循环语句。循环语句。3、说明、说明:
18、先判断表达式,后执行语句。先判断表达式,后执行语句。表达式同表达式同ifif语句后的表达式一样,可以是语句后的表达式一样,可以是任何类型的表达式。任何类型的表达式。循环体多于一句时,用一对循环体多于一句时,用一对 括起括起。whilewhile循环结构常用于循环结构常用于循环次数不固定循环次数不固定,根,根据是否满足某个条件决定循环与否的情况。据是否满足某个条件决定循环与否的情况。i=1;s=0;while(i=100)s=s+i;i+;printf(“n1+2+3+100=%d”,s);循环变量的初始化(循环先导语句)累加器的初始化循环控制条件累加修改循环变量循环语句的三要素循环次数不固定的
19、循环语句循环次数不固定的循环语句,21222ns例例5.18 5.18 计算计算当当s s最接近且不大于最接近且不大于1000010000为止。为止。main()int i,s;s=i=0;while(s+i*i0)printf(+);else printf(-);scanf(%d,&x);判断正负号判断正负号修改循环变量的值修改循环变量的值#include stdio.h void main()char ch;int num=0;ch=getchar();【补充【补充 例例2】统计从键盘输入的一行字符的个统计从键盘输入的一行字符的个数(以回车键作为输入结束标记)。数(以回车键作为输入结束标记
展开阅读全文