




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章 分支结构程序设计分支结构程序设计主要内容主要内容简单的猜数游戏简单的猜数游戏 四则运算四则运算自动售货机中商品的价格自动售货机中商品的价格 教学目标、重点和难点教学目标、重点和难点n教学目标教学目标q掌握关系表达式和逻辑表达式掌握关系表达式和逻辑表达式q掌握用掌握用if语句和语句和switch实现分支结构的应用问题实现分支结构的应用问题q掌握字符型数据的使用方法掌握字符型数据的使用方法q熟悉用流程图描述分支结构熟悉用流程图描述分支结构q初步形成良好的程序编写风格初步形成良好的程序编写风格n教学重点教学重点q用用if语句和语句和switch语句处理分支结构的方法(常用语句处理分支结构
2、的方法(常用算法的实现)算法的实现)n教学难点教学难点q逻辑值的概念;嵌套的逻辑值的概念;嵌套的if语句;语句;switch语句语句问题:简单的猜数游戏问题:简单的猜数游戏n要求:在要求:在1100内输入你所猜的整数,与计算机内输入你所猜的整数,与计算机产生的被猜数比较,若相等则显示猜中;若不等,产生的被猜数比较,若相等则显示猜中;若不等,显示输入数与被猜数的大小关系。显示输入数与被猜数的大小关系。n分析:分析:定义定义s1=55,s2;输入输入s2s1=s2“大于大于”“小于小于”“相等相等”真真假假s1s2真真假假#include int main(void) n程序:程序:int s1
3、= 38, s2; printf(输入你猜的数输入你猜的数: ); scanf(%d, &s2); return 0;if( s2= s1 ) printf(正确正确,你真棒你真棒!n);elseif(s2 s1 ) printf(不好意思不好意思,你猜得太大啦你猜得太大啦!n);else printf(不好意思不好意思,你猜得太小啦你猜得太小啦!n);说明:说明:1. if子句和子句和else子句只能子句只能 有有1条语句条语句(简单简单/复合复合);2. if子句或子句或else子句若本子句若本身又是身又是if语句语句,则构成则构成if语句的嵌套语句的嵌套,形成复杂形成复杂的多分支
4、结构的多分支结构.问题:简单的猜数游戏问题:简单的猜数游戏多分支结构与多分支结构与 if else if语句语句n语句形式语句形式if(条件条件1) 语句语句1;else if(条件条件2)语句语句2;else if(条件条件n)语句语句n;else 语句语句n+1;语句语句1 1非非0 00语句语句n+1n+1语句语句n n语句语句2 2非非0 0非非0 000阶梯式筛选阶梯式筛选说明说明: :语句语句1 1、2 2等都只能是等都只能是一条一条简单语句或复合语句。简单语句或复合语句。int a=10,b=20,c;if (ab) c+; b=a;else if() 条件条件1 1条件条件2
5、2条件条件n n问题:成绩等级判定问题:成绩等级判定n要求:要求:编写一个程序,根据用户输入的期末考试成编写一个程序,根据用户输入的期末考试成绩,输出相应的成绩评定信息。绩,输出相应的成绩评定信息。q成绩大于等于成绩大于等于90分输出分输出“优优”;q成绩大于等于成绩大于等于80分小于分小于90分输出分输出“良良”;q成绩大于等于成绩大于等于70分小于分小于80分输出分输出“中中”;q成绩大于等于成绩大于等于60分小于分小于70分输出分输出“及格及格”;q成绩小于成绩小于60分输出分输出“被挂被挂”。 #include void main()float s;scanf(%f, &s);
6、if( s=90) printf(优优n);else if( s=80) printf(良良n);else if( s=70) printf(中中n);else if( s=60) printf(及格及格n); else printf(被挂被挂n );若需要判断成绩的合法性若需要判断成绩的合法性: :(s=0 & s=0 & s=90真真假假真真s=80假假“良良”真真s=70假假“中中”s=60真真假假“及格及格”“被挂被挂”n程序程序n算法流程图算法流程图n程序程序#include void main()float s;scanf(%f, &s); if ( ) p
7、rintf(成绩非法成绩非法n );else if( s=90) printf(优优n );else if( s=80) printf(良良n );else if( s=70) printf(中中n );else if( s=60) printf(及格及格n ); else printf(被挂被挂n );s 100能否改为:能否改为:(s=70)?(s=70)?及格及格被挂被挂1 10良良优优中中1 101 1001 1二分式二分式嵌套嵌套ifif结构结构7070808090906060问题:成绩等级判定问题:成绩等级判定逻辑逻辑“或或”运算符运算符if(if(条件条件1)1) if(if(条
8、件条件2)2) 语句语句1 1; else else 语句语句2 2;elseelse 语句语句3 3; 内嵌内嵌ififif 语句嵌套形成的多分支结构(理解)语句嵌套形成的多分支结构(理解)n就是就是将将一一个个 if 语句插入到另一个语句插入到另一个 if 语句的语句的if子句子句或或else子句内。子句内。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内嵌内嵌ififif(if(条件条件1)1) 语句语句
9、1 1;elseelse if(if(条件条件2)2) 语句语句2 2; else else 语句语句3 3;内嵌内嵌ififn程序程序#include void main()float s;scanf(“%f”, &s); if (s 100) printf(成绩非法成绩非法n ); else if( s=70) if( s=80) if( s=90) printf(优优n ); else printf(良良n ); else printf(中中n ); else if( s=60) printf(及格及格n ); else printf(被挂被挂n );及格及格被挂被挂1 10良良
10、优优中中1 101 1001 1s827070808090906060运行演示运行演示if 语句嵌套形成的多分支结构语句嵌套形成的多分支结构n试分析以下程序的输出结果。试分析以下程序的输出结果。nif else配对原则配对原则q缺省缺省 时,时,elseelse总是和它上面总是和它上面离它最近离它最近的的尚尚未配未配对对的的ifif配对配对。if 语句嵌套形成的多分支结构语句嵌套形成的多分支结构例如例如: :if(a=b) if(b=c) printf(“全等全等); else printf(“a不等于不等于b);if() if() else if() if() else elseelseif
11、()if()elseif()if()elseelseelsenif else配对分析方法配对分析方法(一下一上法一下一上法)q一下一下:从上至下找:从上至下找没有匹配的没有匹配的elseelseq一上一上:从:从elseelse处向上找处向上找没有匹配的没有匹配的ififn例如:例如:正确配对方法: 将内嵌的简单if语句置于内。if 语句嵌套形成的多分支结构语句嵌套形成的多分支结构第第3章章 分支结构程序设计分支结构程序设计主要内容主要内容简单的猜数游戏简单的猜数游戏 四则运算四则运算自动售货机中商品的价格自动售货机中商品的价格 问题:四则运算问题:四则运算n要求:求解简单的四则运算表达式。要
12、求:求解简单的四则运算表达式。q输入一个输入一个 “数数运算符运算符数数”形式形式 的四则运算表达的四则运算表达式式(例如例如:5.1+7.5) ,输出运算结果。,输出运算结果。n分析:分析:输入输入s1运算符运算符(f)s2+f=+真真假假真真f=-假假-真真f=*假假*f=/真真假假/“非法非法”5.1 + 7.5s1 f s2#include void main(void) n程序:程序: double s1, s2; char f; scanf(%lf%c%lf, &s1, &f, &s2); if(f = +) / +:字符型常量字符型常量 printf(=%
13、.2fn, s1 + s2); else if(f = -) printf(=%.2fn, s1 s2); else if(f = *) printf(=%.2fn, s1 * s2); else if(f = /) printf(=%.2fn, s1 / s2); else printf(“运算符非法!运算符非法!n);问题:四则运算问题:四则运算字符格式字符格式输入输入n字符常量字符常量q用用单引号单引号括起来的括起来的单个字符单个字符或或转义字符转义字符。q字符常量的值:该字符的字符常量的值:该字符的ASCII码码值值(见附录见附录B-P354)n字符型数据参与算术运算字符型数据参与算术
14、运算q其值为其值为字符的字符的ASCII码值码值。例例如如 : A65, a97, 048, (空格空格)32, n10例如:例如: 1 1、A A、? ? 、nn、tt字符型数据字符型数据例如:例如:char a=A,b,c; b=a+2; c=a+32; int x=1+1/a=65/x=50 (49+1)/b=67 (C)/c=97 (a)字符型数据字符型数据n字符型数据的输入与输出字符型数据的输入与输出q方法方法1:scanf(%c, &字符型变量字符型变量); printf(%c, 字符型数据字符型数据);q说明说明n用%c输入字符数据时,空格、回车、Tab键均视为有效字符输
15、入。q例如例如nscanf(%c%c%c, &c1, &c2, &c3);n输入:a b c 则:c1=a, c2= , c3=bq方法方法2:字符型变量字符型变量=getchar(); /从键盘输入从键盘输入一个字符一个字符 putchar(字符型数据字符型数据); /从屏幕输出从屏幕输出一个字符一个字符#include int main() n例题:猜字母游戏程序。例题:猜字母游戏程序。char c1 = M, c2; printf(输入你猜的字母输入你猜的字母: ); c2 = getchar() ; if( c2 = c1 ) /依据字符的依据字符的ASCII码
16、值码值进行比较进行比较 putchar(O); putchar(k); else if( c2 c1 ) printf(不好意思不好意思,你猜得太大啦你猜得太大啦!n);else printf(不好意思不好意思,你猜得太小啦你猜得太小啦!n);return 0;字符型数据字符型数据如何判断如何判断c2c2是一个大是一个大写字母字符呢?写字母字符呢?大于等于大于等于A 并且并且小于等于小于等于Zn逻辑运算符及其优先次序逻辑运算符及其优先次序q& 逻辑逻辑与与(并且并且)q| 逻辑逻辑或或(或者或者) q! 逻辑逻辑非非(取反取反)n逻辑表达式逻辑表达式q用用逻辑运算符逻辑运算符将两个将两
17、个表达式表达式连接起来的式子。连接起来的式子。q参与运算的表达式的值为参与运算的表达式的值为0表示表示“假假”,非非0表示表示“真真”。q逻辑表达式的计算结果为逻辑表达式的计算结果为1或或0(1:真真/0:假)假)q例如:例如:! (! (非非) )算术运算符算术运算符关系运算符关系运算符& & |赋值运算符赋值运算符00&2|8b&bcab&bc 结果为结果为1 ab|bcab|b=0 & ch=A & ch=a & ch=A & ch=a & ch=z#include void main() n程序程序char
18、 ch; int digit=0, letter=0;ch = getchar() ; /读取一个字符读取一个字符while( ) if( ) digit+; else if( ) letter+; ch=getchar(); /继续读取下一个字符继续读取下一个字符 printf(数字数字%d个个,字母字母%d个个n, digit, letter);问题:字符分类统计问题:字符分类统计ch=0 & ch=A&ch=a&ch=z能否用能否用for语句?语句?ch != #for( ; ; )ch=getchar()ch!=#ch=getchar()第第3章章 分支结构程序
19、设计分支结构程序设计主要内容主要内容简单的猜数游戏简单的猜数游戏 四则运算四则运算自动售货机中商品的价格自动售货机中商品的价格 问题:自动售货机中商品的价格问题:自动售货机中商品的价格 n要求:按照列表方式显示要求:按照列表方式显示4种商品的名称种商品的名称,输入商输入商品的序号,则显示该商品的价格,查询品的序号,则显示该商品的价格,查询5次后或者次后或者输入输入0则结束查询。则结束查询。n分析:分析:定义变量定义变量i,choicefor ( i=1 ; i=5 ; i+ )显示商品列表显示商品列表输入输入choicebreak跳出循环跳出循环依据依据choice值分情况值分情况显示价格显示
20、价格choice=0真真假假#include void main(void) n程序:程序: int choice, i; for( i = 1; i = 5; i+) 问题:自动售货机中商品的价格问题:自动售货机中商品的价格跳出跳出(终止终止)其所在其所在的的switch语句语句printf(1王老吉王老吉 n2八宝粥八宝粥 n 3酸梅汤酸梅汤 n 4口香糖口香糖 n);printf(请选择商品编号请选择商品编号: );scanf(%d, &choice);if( choice = 0 ) break; /跳出跳出(终止终止)其所在的循环语句其所在的循环语句else switch (
21、choice) /分情况多路分支语句分情况多路分支语句 case 1: printf(价格价格:3.5元元n); break;case 2: printf(价格价格:5.0元元n); break;case 3: printf(价格价格:3.0元元n); break;case 4: printf(价格价格:9.8元元n); break;default: printf(输入出错!输入出错!n); nswitch语句一般形式语句一般形式n说明说明q语句组可以包含语句组可以包含0到多条语句到多条语句,且且不需要不需要 ;qdefault子句子句可以缺省可以缺省.q各各case子句的排列子句的排列顺序可
22、以任意顺序可以任意,不影响执行结果,不影响执行结果; switch (整型表达式整型表达式) case 常量常量1 1 : 语句组语句组1 1; break; case 常量常量2 2 : 语句组语句组2 2; break; . . case 常量常量n n : 语句组语句组n n; break; default : 语句组语句组n+1n+1; 常量值必须常量值必须各不相同各不相同 计算计算结果必须为整型结果必须为整型( (含字符型含字符型) )switch 语句语句default;每个每个casecase子句子句表示表示一种情况一种情况前面的情况前面的情况都不满足都不满足多种情况多种情况sw
23、itch语句的执行过程语句的执行过程switch (整型表达式整型表达式) case 常量常量1 1: 语句组语句组1 1;break; case 常量常量2 2:语句组语句组2 2;break;.default:语句组语句组n+1;计算整型表达式的值计算整型表达式的值如果值等于常量如果值等于常量1 1 如果值等于常量如果值等于常量2 2 如果没有找到匹配的值如果没有找到匹配的值 n说明说明: :从上往下依据表达式的计算结果与从上往下依据表达式的计算结果与casecase后面常量的后面常量的相等相等比较比较来确定来确定语句体的语句体的执行入口执行入口; ;从入口处依次向下执行各语句从入口处依次
24、向下执行各语句, ,直到遇到直到遇到breakbreak语句或语句或执行完最后一条语句后执行完最后一条语句后, ,整个整个switchswitch语句执行结束。语句执行结束。nbreak语句语句q强制性终止强制性终止其所在其所在的的switch语句语句的执的执行,将程序执行流行,将程序执行流程跳转到程跳转到switch语语句之后句之后。n执行特征执行特征q从上至下找入口从上至下找入口,q一直执行不抬头一直执行不抬头.q直到遇到直到遇到break,q终止执行跳出口终止执行跳出口.expr=c1101breakexpr=c20expr=c321103expr=cn1n0breakbreakbrea
25、kdefaultswitch语句执行流程语句执行流程例题:输入星期值例题:输入星期值1-7,显示中文星期提示。,显示中文星期提示。n程序如下:程序如下:#include void main() int day; scanf(%d,&day); switch( day ) case 1 : printf(星期一星期一n); break; case 2 : printf(星期二星期二n); break; case 3 : printf(星期三星期三n); break; case 4 : printf(星期四星期四n); break; case 5 : printf(星期五星期五n); br
26、eak; case 6 : printf(星期六星期六n); break; case 7 : printf(星期日星期日n); break; default : printf(输入错误输入错误!n); 四则运算另解四则运算另解n程序程序#include void main() int a,b; char ch; scanf(%d%c%d,&a,&ch,&b); switch( ) chb!=0case +: printf(%d+%d=%dn,a,b,a+b); break;case - : printf (%d-%d=%dn,a,b,a-b); break;case * : printf (%d%d=%dn,a,b,a*b); break;case / : default : printf(非法运算符非法运算符!n); if(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 主播兼职劳动合同范本
- 农庄分包经营合同范本
- 单位配送食材合同范本
- 勘察钻机租赁合同范例
- 网页设计复习题及答案
- 高压电工(运行)模拟题含答案
- 一年级的数学上册的期末试卷
- led钢结构合同范本
- 《音乐巨人贝多芬》的教学反思
- 《迷彩服》的教案
- 《过零丁洋》公开课件
- 建设“三型三化551”财务体系加快财务转型创建一流财务指导意见
- 从生产工艺角度详解磷酸铁锂
- 全套桥梁施工技术交底记录
- 《教师职业道德》全书word版
- 城市定制型商业医疗保险(惠民保)知识图谱
- GB∕T 3836.31-2021 爆炸性环境 第31部分:由防粉尘点燃外壳“t”保护的设备
- AMDAR资料的分析和应用
- 桥梁缺陷与预防
- 新苏教版小学科学三年级下册全册教案(2022年春修订)
- AQL抽样标准表xls2
评论
0/150
提交评论