选择结构程序设计课件_第1页
选择结构程序设计课件_第2页
选择结构程序设计课件_第3页
选择结构程序设计课件_第4页
选择结构程序设计课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章选择结构程序设计

主要内容一、选择结构概述二、关系、逻辑表达式三、单分支选择结构四、双分支选择结构五、多分支选择结构六、选择结构的嵌套一、选择结构概述1、为什么要用选择结构?来源于现实如:汽车行驶中,如果交通灯是红色或黄色,则停止,否则通行一、选择结构概述2、选择结构的类型单分支双分支多分支表达式?语句表达式?语句1语句2YNYN二、关系、逻辑表达式1、关系表达式关系运算符:

<、

<=、>、

>=

==、!=关系表达式:a>b,a+b>b+c,’a’<‘b’,(a>b)>(b<c)关系表达式的值是一个逻辑值,即“真”或“假”。优先级高二、关系、逻辑表达式2、逻辑表达式逻辑运算符:

&&、

||、!

逻辑表达式:

a&&b

a||b,

!a值是一个逻辑值,即“真”或“假”。优先次序:

!(非)->&&(与)->||(或)二、关系、逻辑表达式2、逻辑表达式设a=4,b=5:!aa&&ba||b!a||b4&&0||2值为0值为1值为1值为1值为1三、单分支选择结构1、实现单分支选择结构的语句—if语句单分支表达式?语句YNIf(表达式)

语句三、单分支选择结构2、单分支选择结构示例例1、求a、b两数中较大的数。#include<stdio.h>intmain(){inta,b,max;printf(“inputab:”);scanf(“%d%d”,&a,&b);max=a;if(a<b)max=b;printf(“themaxis%d\n”,max);return0;}三、单分支选择结构例2、从键盘上读入一个大写字符,转换为小写字符输出(要求判断是否是大写字母)。#include<stdio.h>intmain(){charc1,c2;printf(“inputacharacter:”);scanf(“%c”,&c1);if(c1>64&&c1<91){c2=c1+32;printf(“theLowercaseletteris%c\n”,c2);}return0;}

四、双分支选择结构1、if语句If(表达式)

语句1;else

语句2;

四、双分支选择结构例3、求a、b两数中较大的数(双分支)。#include<stdio.h>intmain(){inta,b,max;printf(“inputab:”);scanf(“%d%d”,&a,&b);if(a<b)max=b;elsemax=a;printf(“themaxis%d\n”,max);return0;}四、双分支选择结构2、条件表达式格式:条件?表达式2:表达式3如果

条件为真,则返回表达式2的值,否则返回表达式3的值四、双分支选择结构例4、求a、b两数中较大的数(条件表达式)。#include<stdio.h>intmain(){inta,b,max;printf(“inputab:”);scanf(“%d%d”,&a,&b);

max=(a<b)?b:a;printf(“themaxis%d\n”,max);return0;}四、双分支选择结构例5、将大写字母转化为小写字母。charc1;c1=(c1>64&&c1<91)?(c1+32):ch;或者c1=(c1>=’A’&&c1<=’Z’)?(c1+32):ch;五、多分支选择结构表达式1?语句1YN表达式2?语句2YN表达式n?语句nYN…语句n+1五、多分支选择结构1、If语句实现if条件1

语句1

;if条件2

语句2

;if条件3

语句3;a>0a=0a<0或:if条件1

语句1

;elseif条件2

语句2

;else

语句3;五、多分支选择结构2、Switch语句例6:10086语音提示。例7:输入一百分制分数,请转换为等级A,B,C,D。五、多分支选择结构2、Switch语句语句1表达式语句2语句n语句n+1值1值2值n否则五、多分支选择结构2、Switch语句(1)设计要领:①先对要做的几个操作编号。操作1操作2操作3操作4值集合操作集合五、多分支选择结构2、Switch语句(1)设计要领:操作1操作2操作3操作41354②选取合适的某个表达式,让其取值能分别指向某个操作。表达式值2五、多分支选择结构(2)switch语句格式switch(表达式){case常量1:语句1;case常量2:语句2;…case常量n:语句n;default:语句n+1;}break;终止此分支语句五、多分支选择结构(3)break语句终止本次选择结构。格式:break;五、多分支选择结构例8将等级成绩转换为百分制成绩,A等为85分以上,B等为70-84之间,C等为60-69分,D等为60分以下。

成绩的等级由键盘输入。五、多分支选择结构开始结束输入等级grade“85~100”“70~84”“60~69”“<60”grade#include<stdio.h>voidmain(){chargrade;printf(“请输入等级成绩:”);scanf(“%C”,&grade);printf(“Yourscore:”);switch(grade){case‘A’:

printf(“85~100\n”);break;case‘B’:printf(“70~84\n”);break;case‘C’:printf(“60~69\n”);break;case‘D’:

printf(“<60\n”);break;}}ABCD五、多分支选择结构例9运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:s<250km没有折扣250≤s<5002%折扣500≤s<10005%折扣1000≤s<20008%折扣2000≤s<300010%折扣3000≤s15%折扣设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d)

五、多分支选择结构分析折扣变化的规律性:折扣的“变化点”都是250的倍数取表达式为s/250,其值装入c。c代表250的倍数。

c<1,无折扣;1≤c<2,折扣d=2%;2≤c<4,d=5%;4≤c<8,d=8%;8≤c<12,d=10%;c≥12,d=15%。

五、多分支选择结构#include<stdio.h>

voidmain()

{

intc,s;

floatp,w,d,f;

scanf("%f,%f,%d",&p,&w,&s);

if(s>=3000)c=12;

elsec=s/250;

switch(c){

case0:d=0;break;

case1:d=2;break;

case2:

case3:d=5;break;

case4:

case5:

case6:

case7:d=8;break;

case8:

case9:

case10:

case11:d=10;break;

case12:d=15;break;}

f=p*w*s*(1-d/100.0);

printf("freight=%15.4f\n",f);}五、多分支选择结构例10[简单计算器]下面程序是实现一个简单的运算器(保留两位小数点):如果由键盘输入10+50,计算机可以输出结果60.00;如果输入8*6,计算机输出48.00;如果输入20/4,计算机输出5.00;如果输入8-6,计算机输出2.00,请在空处填上适当的代码。五、多分支选择结构#include"stdio.h"voidmain(){floata,b,c;charop;scanf("%f%c%f",&a,&op,&b);switch(op){case'+':

;case'-':

;case'*':

;case'/':

;default:printf("error");return;}printf("result=%f",c);}c=a+b;breakc=a-b;breakc=a*b;breakc=a/b;break六、选择结构的嵌套在选择结构中又包含一个或多个选择结构。如:if()

语句1;elseif()

语句2;

else语句3;注意:if与else配对情况,else与最近的if配对。六、选择结构的嵌套例11有一函数编一程序,输入一个x的值,要求输出相应的y值。方法1:用三个独立的if语句来完成。方法2:用if语句的嵌套。六、选择结构的嵌套例12你的身材标准吗?从键盘输入某人的身高和体重后,按照下面的方法确定此人的体重是否标准。标准体重=(身高-110)kg超过标准体重5kg为过胖,低于标准体重5kg为过瘦六、选择结构的嵌套#include<stdio.h>intmain(){floatheight,weight

温馨提示

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

评论

0/150

提交评论