演示文稿第3章选择结构流程及应用.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章选择结构流程及应用主要内容单分支和双分支结构程序设计多双分支结构程序设计单分支和双分支结构程序设计主要内容1、选择结构判定条件的构成2、简单if语句3、if-else语句4、条件运算符和条件表达式本单元课程目标应知1、掌握关系表达式和逻辑表达式的使用。2、掌握简单if语句和if-else语句的语法。应会1、根据问题分析画出单分支和双分支选择性问题的流程图2、能够根据流程图编写C语言程序难点:选择结构流程条件语句的C语言语法选择结构判定条件的构成在C语言中,一般用关系表达式和逻辑表达式构成判定条件。表达闰年的条件按照历法的规定,某一年要成为闰年,则应符合以下两个条件之一:(1)能被4整除,但不能被100整除;(2)能被400整除。设year表示年份,用C语言的逻辑表达式来表达润年的逻辑表达式即为:((year%4==O)&&(year%100!=O))||(year%400==O)单分支(简单if)语句If(条件){做某件事}条件表达式复合语句假真如果条件满足做某件事试一试问题3.4从键盘输入一个数,输出其绝对值。1.定义变量二个int变量iX,iY,其中iX用来接收用户从键盘输入的数据,iY用来存放iX的绝对值。2.从键盘输入一个整数放iX;3.把iX放iY;4.正数的绝对值是正数本身,负数的绝对值是其相反数。所以,如果iX0,则iY=-iX,否则不需要做什么;5.输出iX和iY。流程图程序代码#includestdio.hvoidmain(){intiX,iY;printf(pleaseinputainteger:);scanf(%d,&iX);iY=iX;if(iX0)iY=-iX;printf(\n|%d|=%d,iX,iY);getch();}运行结果为:pleaseinputainteger:-12↙(回车)|-12|=12练一练小明去参加一个同学的生日聚会,同学的家长规定18岁以上的才可以饮酒,所以需要编一程序根据输入的年龄打印一张饮酒卷,使的能饮酒的同学可以获取饮酒卷。双分支(if-else)选择语句if(条件表达式)语句1;else语句2;条件表达式复合语句1假真复合语句2试一试问题3.5编一程序控制电灯开关。从键盘输入1表示开灯,这时显示“thelightisOn”,输入0或其它数表示关灯,显示“thelightisoff”。解题步骤:1.定义整型变量iOnOff;2.从键盘接收用户输入存入变量iOnOff;3.根据iOnOff是否为1输出电灯的开关状态。若iOnOff=1,则输出”thelightisOn”,否则电灯为关灯状态,输出”thelightisoff”。流程图程序代码#includestdio.hvoidmain(){intiOnOff;printf(pleaseinput1orainteger:);scanf(%d,&iOnOff);if(iOnOff==1)printf(\nthelightison.);elseprintf(\nthelightisoff.);getch();}运行结果为:pleaseinput1orainteger:1↙(回车)thelightison.练一练问题:编一程序,从键盘输入一个整数,判断它的奇偶性。如果输入的是奇数,输出“ODD”,如果输入的是偶数,则输出“EVEN”。条件运算符与条件表达式?:可以实现双分支选择结构。表达式1?表达式2:表达式3运算规则为:如果“表达式1”的值为真,则条件表达式的运算结果等于“表达式2”的值,否则,运算结果等于“表达式3”的值。试一试问题3.6编一程序从键盘输入两个整数,输出较大的一个。解题步骤:1.定义整型变量iX,iY用来存放两个整数;2.定义变量iMax,存放两个数中较大的一个;3.从键盘接收用户输入;4.比较iX和iY,大者放iMax中;5.输出iMax。流程图程序代码#include“stdio.h”voidmain(){intiX,iY,iMax;printf(pleaseinpit2integers:);scanf(%d,%d,&iX,&iY);iMax=iXiY?iX:iY;printf(iMax=%d,iMax);getch();}课堂实践1.用if-else语句实现问题3-6的双分支选择结构。2.用条件表达式实现问题3-5的双分支选择结构。小结1.if和else同属于一个if语句,else不能作为语句单独使用,它只是if语句的一部分,与if配对使用。因此程序中不可以没有if而只有else。2.if-else语句在执行时,只能执行与if有关的语句或者执行与else有关的语句,而不可能同时执行两者。3.if语句的表达式可以是任意类型的C语言的合法的表达式,除常见的关系表达式或逻辑表达式外,也允许是其它类型的数据,如整型、实型、字符型等。4.在if和else的后面,可以是单条语句,也可以复合语句。单条语句时,注意别忘记写分号“;”,复合语句时要注意“{}”的后面不能加“;”。5.条件运算符的其结合性为“从右到左”(即右结合性)。比如表达式iAiB?iA:iCiD?iC:iD相当于iAiB?iA:(iCiD?iC:iD),如果iA=1,iB=2,iC=3,iD=4,则上述条件表达式的值等于4。作业编一程序,从键盘输入三角形的三条边长,判断是否构成三角形,如能则求出三角形的周长和面积并输出,如不能,输出不能构成三角形的信息。要求1)写出解题步骤2)画出流程图3)编写程序调试运行提示:构成三角形的条件为:三角形任意两边的和大于第三边时,构成三角形。面积计算公式为:fArea=其中,f1,f2,f3是三角形的三条边长,fTemp,fTemp=(f1+f2+f3)/2。计算一个数的平方根可用函数floatsqrt(floatf),该函数是数学库函数,需要在程序的开头加上#includemath.h。多分支结构程序设计主要内容1、嵌套if-else语句2、switch语句本单元课程目标应知掌握嵌套if-else语句和switch语句的语法。应会1、根据问题分析画出多分支选择性问题的流程图2、能够根据流程图编写C语言程序难点:多分支语句的C语言语法上节课内容回顾单分支判断语句(简单if语句)双分支选择语句(if-else语句)条件运算符1请列举生活中具有这三种特点的问题。2写出它们的c语句嵌套if-else语句所谓嵌套就是在if-else语句的if或else子句中又包含了一个或多个if-else语句,其目的就是解决多分支选择问题。其一般形式如下:if(条件1)语句1;elseif(条件2)语句2;elseif(条件3)语句3;┇elseif(条件n-1)语句n-1;else语句n;可以是简单语句或复合语句嵌套if-else语句流程图试一试问题3.7从键盘输入一个自变量x,求分段函数y=f(x)的值,f(x)的表达式如下:【解题步骤】1.定义整型变量iX,iY;2.从键盘输入数据放iX;3.根据iX的值,选择相应的函数表达式计算iY;4.输出iY。)0(302)50(0)5(3xxxxxy流程图程序代码#includestdio.hvoidmain(){intiX,iY;printf(pleaseinputainteger:);scanf(%d,&iX);if(iX5)iY=iX+3;elseif(iX0)iY=2*iX+30;elseiY=0;printf(f(%d)=%d,iX,iY);getch();}运行结果:pleaseinputainteger:2↙(回车)f(2)=0再试一试问题3.8编一程序将成绩的百分制转换为等级制。百分制与等级制的对应关系如下:90-100对应A、80-89对应B、70-79对应C、60-69对应D、0-59对应E。【解题步骤】1.定义float变量fScore用来存放成绩值;2.从键盘输入一个成绩值放变量fScore;3.根据fScore的值输出相应的等级。流程图fScore=90&&fScore=100YN开始定义fScore结束输入数据存入fScoreNNYYYYNInvalidinputfScore=80&&fScore=89BNfScore=70&&fScore=79fScore=60&&fScore=69CEAfScore=0&&fScore=59D程序代码#includeStdio.hvoidmain(){floatfScore;printf(pleaseinputyourscore:);scanf(%f,&fScore);if(fScore=90&&fScore=100)printf(yourgradeisA.);elseif(fScore=80&&fScore=89)printf(yourgradeisB.);elseif(fScore=70&&fScore=79)printf(yourgradeisC.);elseif(fScore=60&&fScore=69)printf(yourgradeisD.);elseif(fScore=0&&fScore=59)printf(yourgradeisE.);elseprintf(invalidinput!!);getch();}课堂实践问题:将星期一、星期二…星期六、星期日依次编号为1、2…6、7,编一程序从键盘输入星期的序号,可输出其对应的英文。比如,输入6,可输出”Saturday”。星期一Monday星期二Tuseday星期三Wenday星期四Thuseday星期五Friday星期六Saturday星期日Sundayswitch语句switch语句是C语言中又一种实现多分支选择结构的语句,其一般形式是:switch(表达式){case常量表达式1:语句序列1case常量表达式2:语句序列2……case常量表达式n:语句序列ndefault:语句序列n+1}switch语句流程图其它常量表达式1语句序列1表达式常量表达式2常量表达式n语句序列2语句序列n语句序列n+1...试一试问题3.9编一程序可查询驾驶证可以驾驶的车辆类型。要求从键盘输入驾照的类型。比如输入驾照类型‘C’,输出“你可以驾驶小轿车”。其中,A牌驾照可驾驶大客车、人货车和小轿车,B牌驾照可驾驶人货车和小轿车,C牌驾照可驾驶小轿车,D牌驾照可驾驶摩托车。【解题步骤】1.定义字符变量chLicence用来存放驾照类型代码;2.从键盘输入一个字符放chLicence;3.根据chLisence中的值,输出相应的准驾车型。流程图开始定义chLicence结束输入驾照代码存入chLicence‘D’‘A’chLicence‘B’‘C’youcandrivebus,car,truck.youcandrivecar,truck.youcandrivecar.youcandriveautobikeonly.其它inputerror!!程序代码#includeStdio.hvoidmain(){charchLicence;printf(pleaseinputyourdrivinglicence:);scanf(%c,&chLicence);switch(chLicence){case'A':printf(youcandrivebus,car,truck..);break;case'B':printf(youcandrivetruck,car);break;case'C':printf(youcandrivecar.);break;case'D':printf(youcandriveautobikeonly.);br

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功