《c语言第四章.ppt》由会员分享,可在线阅读,更多相关《c语言第四章.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、易学易学C+C+配套电子教案配套电子教案要走哪条路要走哪条路条件语句条件语句易学易学C+C+第四章第四章本章目标本章目标 掌握掌握ifelseifelse语句语句 掌握关系运算和逻辑运算掌握关系运算和逻辑运算 掌握交换算法掌握交换算法 理解程序的缩进和语句匹配理解程序的缩进和语句匹配 掌握掌握if if语句的嵌套语句的嵌套 掌握条件操作符掌握条件操作符*掌握掌握switchswitch语句语句4/3/20234/3/20232220092009年年11月月1010日更新日更新造句游戏造句游戏 如果明天不下雨,我们就出去逛街。如果明天不下雨,我们就出去逛街。如果明天不下雨,我们就出去逛街,如果明
2、天不下雨,我们就出去逛街,否则就在家里看电视。否则就在家里看电视。如果分数大于如果分数大于9090,就输出,就输出“good”good”。If score90,If score90,coutcout“good”.90)if(mark90)coutcout“good”;90)if(mark90)coutcout“good”;=ba=ba=ba!=b4/3/20234/3/20236620092009年年11月月1010日更新日更新两个整数排序两个整数排序问题描述问题描述 对于给定的两个整数对于给定的两个整数a a和和b b,将它们,将它们从小到大排序,并输出。从小到大排序,并输出。4/3/202
3、34/3/20237720092009年年11月月1010日更新日更新两个整数排序两个整数排序运行结果运行结果4/3/20234/3/20238820092009年年11月月1010日更新日更新交换算法temp=b;b=a;a=temp;变量a变量b变量temp数据1数据2数据24/3/20234/3/20239920092009年年11月月1010日更新日更新两个整数排序两个整数排序设计设计 输入:两个整数输入:两个整数 输出:排序后的两个整数输出:排序后的两个整数 算法:交换算法算法:交换算法 存储:需要三个变量,分别为两个待交换存储:需要三个变量,分别为两个待交换变量和一个临时变量。变量
4、和一个临时变量。4/3/20234/3/2023101020092009年年11月月1010日更新日更新两个整数排序两个整数排序编码编码#include#include using namespace std;using namespace std;intint main()main()intint a,ba,b;coutcout a b;a b;if(ab)if(ab)/如果如果如果如果aa比比比比bb大,则将两个数交换大,则将两个数交换大,则将两个数交换大,则将两个数交换intint temp;temp;/创建一个临时变量创建一个临时变量创建一个临时变量创建一个临时变量temp=a;tem
5、p=a;a=b;a=b;b=temp;b=temp;coutcout a b a b endlendl;/将两个数从小到大输出将两个数从小到大输出将两个数从小到大输出将两个数从小到大输出return 0;return 0;4/3/20234/3/2023111120092009年年11月月1010日更新日更新判断条件判断条件逻辑运算逻辑运算 逻辑运算能够把多个条件组织起来,变成逻辑运算能够把多个条件组织起来,变成一个更为复杂的条件。一个更为复杂的条件。“&”&”相当于相当于“并且并且”,只有两个条件都,只有两个条件都满足时候才满足。满足时候才满足。“|”|”相当于相当于“或者或者”,只要两个条
6、件满,只要两个条件满足一个时就满足。足一个时就满足。“!”!”相当于相当于“否定否定”,表示与条件相反。,表示与条件相反。4/3/20234/3/2023121220092009年年11月月1010日更新日更新划分成绩段划分成绩段问题描述问题描述 对于给定的成绩对于给定的成绩markmark,根据以下对应分数,根据以下对应分数段输出内容,如果输入成绩错误,则输出段输出内容,如果输入成绩错误,则输出“ERROR!”ERROR!”8010080100分分Good!Good!60796079分分So So soso059059分分Please work harder!Please work hard
7、er!4/3/20234/3/2023131320092009年年11月月1010日更新日更新划分成绩段运行结果4/3/20234/3/2023141420092009年年11月月1010日更新日更新划分成绩段划分成绩段设计设计 输入:一个成绩输入:一个成绩 输出:成绩对应的输出内容输出:成绩对应的输出内容 算法:用多个算法:用多个if if语句和逻辑运算语句和逻辑运算 存储:需要一个存储成绩的变量。存储:需要一个存储成绩的变量。4/3/20234/3/2023151520092009年年11月月1010日更新日更新划分成绩段划分成绩段编码编码#include#include using na
8、mespace std;using namespace std;intint main()main()intint mark;mark;coutcout mark;mark;if(mark=80&mark=80&mark=100)coutcout Good!Good!=60&mark=60&mark 80)coutcout So so So so=0&mark=0&mark 60)coutcout Please work harder!Please work harder!endlendl;if(mark100)if(mark100)coutcout ERROR!ERROR!endlendl;
9、return 0;return 0;4/3/20234/3/2023161620092009年年11月月1010日更新日更新if if语句的嵌套语句的嵌套 if if语句可以放在另一个语句可以放在另一个if if语句的语句块中。语句的语句块中。无论嵌套多少层,程无论嵌套多少层,程序的入口和出口都只序的入口和出口都只有一个。有一个。无论如何嵌套,无论如何嵌套,ifelseifelse语句的匹配语句的匹配方法一定是唯一的。方法一定是唯一的。相当于原语句块24/3/20234/3/2023171720092009年年11月月1010日更新日更新ifelseifelse语句的匹配语句的匹配if(if(
10、条件条件1)1)if(if(条件条件2)2)elseelseelseelseif(if(条件条件1)1)if(if(条件条件2)2)elseelseelseelse每输入一次每输入一次,括号内部的,括号内部的语句就会自动向右侧缩进一语句就会自动向右侧缩进一段。段。使用某些语句如使用某些语句如ifelseifelse也会产生自动缩进。也会产生自动缩进。elseelse总是向上寻找最近一个总是向上寻找最近一个和它处于相同层次的和它处于相同层次的if if配对,配对,简称简称“门当户对门当户对”。4/3/20234/3/2023181820092009年年11月月1010日更新日更新淘汰赛淘汰赛问题
11、描述问题描述 进行三次淘汰制比赛,进行三次淘汰制比赛,分别是分别是1/41/4决赛,半决决赛,半决赛和决赛(赛和决赛(3-43-4位决赛)位决赛)。每次都提问该场比赛。每次都提问该场比赛是否获胜,获胜则输入是否获胜,获胜则输入 YY,否则输入其它,否则输入其它字母。最终告知得到了字母。最终告知得到了冠军、亚军还是季军。冠军、亚军还是季军。决赛半决赛半决赛决赛决赛决赛决赛3-4位赛4/3/20234/3/2023191920092009年年11月月1010日更新日更新淘汰赛运行结果4/3/20234/3/2023202020092009年年11月月1010日更新日更新淘汰赛淘汰赛设计设计 输入:
12、三次比赛结果输入:三次比赛结果 输出:冠、亚、季军输出:冠、亚、季军或无名次或无名次 算法:算法:ifelseifelse语句语句的嵌套的嵌套 存储:需要一个存储存储:需要一个存储比赛结果的变量。比赛结果的变量。4/3/20234/3/2023212120092009年年11月月1010日更新日更新淘汰赛淘汰赛编码编码#include#include using namespace std;using namespace std;intint main()main()char char isWinisWin;coutcout 四分之一决赛是否获胜?四分之一决赛是否获胜?四分之一决赛是否获胜?四
13、分之一决赛是否获胜?isWinisWin;if(if(isWinisWin=Y)=Y)/四分之一决赛四分之一决赛四分之一决赛四分之一决赛coutcout 半决赛是否获胜?半决赛是否获胜?半决赛是否获胜?半决赛是否获胜?isWinisWin;if(if(isWinisWin=Y)=Y)/半决赛半决赛半决赛半决赛coutcout 决赛是否获胜?决赛是否获胜?决赛是否获胜?决赛是否获胜?isWinisWin;if(if(isWinisWin=Y)=Y)/决赛决赛决赛决赛coutcout 冠军冠军冠军冠军 endlendl;elseelsecoutcout 亚军亚军亚军亚军 endlendl;4/3/
14、20234/3/2023222220092009年年11月月1010日更新日更新淘汰赛淘汰赛编码(续)编码(续)elseelsecoutcout 三四位决赛是否获胜?三四位决赛是否获胜?三四位决赛是否获胜?三四位决赛是否获胜?isWinisWin;if(if(isWinisWin=Y)=Y)/三四名比赛三四名比赛三四名比赛三四名比赛coutcout 季军季军季军季军 endlendl;elseelsecoutcout 无名次无名次无名次无名次 endlendl;elseelsecoutcout 无名次无名次无名次无名次 a=(bc)?b:cc)?b:c;相当于相当于if(bc)if(bc)a=
15、b;a=b;elseelsea=c;a=c;4/3/20234/3/2023242420092009年年11月月1010日更新日更新条件操作符条件操作符*条件操作符中需要填写三个操作数条件操作符中需要填写三个操作数(OperandOperand),所以称为三目操作符。),所以称为三目操作符。条件操作符的运算结果应该被保存或输出,条件操作符的运算结果应该被保存或输出,否则其运算可能失去意义。否则其运算可能失去意义。条件操作符的功能可以用条件操作符的功能可以用ifelseifelse语句替语句替代。代。4/3/20234/3/2023252520092009年年11月月1010日更新日更新切换的开
16、关切换的开关switchswitch语句语句 switchswitch语句也是典型的语句也是典型的分支结构。分支结构。switchswitch语句主要处理多语句主要处理多个并行的分支情况,个并行的分支情况,即多岔路口。即多岔路口。switchswitch语句的功能可以语句的功能可以由由if if语句代替,但是语句代替,但是switchswitch的可读性更好。的可读性更好。4/3/20234/3/2023262620092009年年11月月1010日更新日更新switchswitch语句的用法语句的用法switch(switch(表达式表达式表达式表达式)case case 常量表达式常量表达
17、式常量表达式常量表达式1:1:语句语句语句语句;break;break;case case 常量表达式常量表达式常量表达式常量表达式n:n:语句语句语句语句;break;break;default:default:语句语句语句语句;casecase表示满足某个常量表达表示满足某个常量表达式时,运行该式时,运行该casecase后的语句后的语句块。块。defaultdefault表示没有匹配的表示没有匹配的casecase时默认运行的语句块。时默认运行的语句块。breakbreak表示退出表示退出switchswitch语句。语句。任意两个任意两个casecase后的常量不能后的常量不能相等。相
18、等。4/3/20234/3/2023272720092009年年11月月1010日更新日更新识别简单表达式识别简单表达式问题描述问题描述 输入形如输入形如1+21+2、4*54*5、8/28/2的简单表达式,知的简单表达式,知还有两个操作数和一个操作符,求出该简还有两个操作数和一个操作符,求出该简单表达式的计算结果。单表达式的计算结果。4/3/20234/3/2023282820092009年年11月月1010日更新日更新识别简单表达式运行结果4/3/20234/3/2023292920092009年年11月月1010日更新日更新识别简单表达式识别简单表达式设计设计 输入:简单表达式,包含输入
19、:简单表达式,包含一个操作数、一个操作符一个操作数、一个操作符和另一个操作数和另一个操作数 输出:简单表达式运算结输出:简单表达式运算结果果 算法:用算法:用switchswitch语句判断语句判断操作符,除数不能为操作符,除数不能为0 0 存储:需要两个浮点型变存储:需要两个浮点型变量存储操作数,一个字符量存储操作数,一个字符变量存储操作符。变量存储操作符。4/3/20234/3/2023303020092009年年11月月1010日更新日更新识别简单表达式识别简单表达式编码编码#include#include using namespace std;using namespace std;
20、intint main()main()float float a,ba,b;char char operoper;coutcout 请输入一个表达式(如请输入一个表达式(如请输入一个表达式(如请输入一个表达式(如1+21+2):):):):a a operoper b;b;switch(switch(operoper)case+:case+:/做加法做加法做加法做加法coutcout a a operoper b=b=a+ba+b endlendl;break;break;case-:case-:/做减法做减法做减法做减法coutcout a a operoper b=a-b b=a-b en
21、dlendl;break;break;4/3/20234/3/2023313120092009年年11月月1010日更新日更新识别简单表达式识别简单表达式编码(续)编码(续)case*:case*:/做乘法做乘法做乘法做乘法coutcout a a operoper b=a*b b=a*b endlendl;break;break;case/:case/:/做除法做除法做除法做除法if(b!=0)if(b!=0)/除数是否为除数是否为除数是否为除数是否为00coutcout a a operoper b=a/b b=a/b endlendl;elseelsecoutcout 出错啦!出错啦!出
22、错啦!出错啦!endlendl;break;break;default:default:coutcout 出错啦!出错啦!出错啦!出错啦!=A=B=B=C!=C!=D=D=4/3/20234/3/2023353520092009年年11月月1010日更新日更新课堂小测试课堂小测试 以下不属于逻辑运算的是:以下不属于逻辑运算的是:A A 与(并且)与(并且)B B 或(或者)或(或者)C C 其他(另外)其他(另外)D D 非(否定)非(否定)4/3/20234/3/2023363620092009年年11月月1010日更新日更新课堂小测试课堂小测试 实现典型的交换算法除了本身两个变量之实现典型
23、的交换算法除了本身两个变量之外,最少还额外需要几个变量?外,最少还额外需要几个变量?A 0A 0个个 B 1B 1个个 C 2C 2个个 D 3D 3个个4/3/20234/3/2023373720092009年年11月月1010日更新日更新课堂小测试课堂小测试 程序代码的缩进是为了:程序代码的缩进是为了:A A 运行速度更快运行速度更快 B B 看上去更炫看上去更炫 C C 方便阅读代码和语句的匹配方便阅读代码和语句的匹配 D D 体现体现tabtab键的功能键的功能4/3/20234/3/2023383820092009年年11月月1010日更新日更新课堂小测试课堂小测试 下面关于下面关于
24、if if语句的说法错误的是:语句的说法错误的是:A ifA if的语句块里面可以含有的语句块里面可以含有if if语句。语句。B ifB if的语句块里面可以含有若干句语句。的语句块里面可以含有若干句语句。C ifC if语句的条件后面必须加上分号。语句的条件后面必须加上分号。D ifD if的语句块里面不必有的语句块里面不必有breakbreak语句。语句。4/3/20234/3/2023393920092009年年11月月1010日更新日更新课堂小测试课堂小测试 条件操作符需要几个操作数?条件操作符需要几个操作数?A 0A 0个个 B 1B 1个个 C 2C 2个个 D 3D 3个个4/
25、3/20234/3/2023404020092009年年11月月1010日更新日更新课堂小测试课堂小测试 switchcaseswitchcase语句的语句的casecase后面不能包含:后面不能包含:A A 加号加号 B B 常量常量 C C 变量变量 D D 减号减号4/3/20234/3/2023414120092009年年11月月1010日更新日更新课堂小测试课堂小测试 为了实现为了实现switchswitch语句的功能,在每个语句的功能,在每个casecase语语句块之后通常都有哪个语句?句块之后通常都有哪个语句?A A coutcout语句语句 B ifB if语句语句 C els
26、eC else语句语句 D breakD break语句语句4/3/20234/3/2023424220092009年年11月月1010日更新日更新本章小结本章小结 所有的程序都可以归结为三种结构,顺序、所有的程序都可以归结为三种结构,顺序、分支和循环。分支结构使计算机能够处理分支和循环。分支结构使计算机能够处理各种不同的情况。各种不同的情况。初学者编程学得好不好,很大程度上取决初学者编程学得好不好,很大程度上取决于能否熟练使用分支结构和循环结构。于能否熟练使用分支结构和循环结构。除了学习语言和语法,更重要的是学会用除了学习语言和语法,更重要的是学会用计算机解决问题的方法。计算机解决问题的方法。4/3/20234/3/2023434320092009年年11月月1010日更新日更新感谢观看感谢观看制作者:潘嘉杰制作者:潘嘉杰联系方式:联系方式:下载网址:下载网址:http:/