第五章 选择结构程序设计 信息管理系.

Slides:



Advertisements
Similar presentations
10.2.switch语句.
Advertisements

5 选择结构.
圆的一般方程 (x-a)2 +(y-b)2=r2 x2+y2+Dx+Ey+F=0 Ax2+Bxy+Cy2+Dx+Ey+ F=0.
第4章 选择结构程序设计 选择结构是计算机科学用来描述自然界和社会生活中分支现象的手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作,并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。
社会保险计划 私人经营社会保障的可能性 联邦健康保险制度系统的资金融通仍是一个亟待解决的问题 医疗费用的风险是一个基本风险吗?
第一单元 算法与流程图.
紧扣课程标准 关注社会热点 —苏教版教材新增内容复习建议 南京市南湖第一中学 马 峰.
第3课时 逻辑连结词和四种命题 要点·疑点·考点 课 前 热 身   能力·思维·方法   延伸·拓展 误 解 分 析.
充分条件与必要条件习题课 1.
1.1.2 四 种 命 题.
勾股定理 说课人:钱丹.
C语言实验 第一课 标题:学号+姓名.
算法和程序设计 第4课 分支结构的算法设计 •.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
第三章 磁 场 第 一 节 磁现象和磁场.
第4章 选择结构程序设计 在现实生活中,需要进行判断和选择的情况是很多的 如果你在家,我去拜访你 如果考试不及格,要补考
第4章 选择结构程序设计 二分支选择结构 多分支选择结构 P A B 真 假 k A1 A2 Ai An k=k2 k=k1 k=kn
程序设计基础.
C语言程序设计 第五章 选择结构程序设计.
第4章 选择结构程序设计.
高级语言程序设计 主讲人:陈玉华.
第2章 分支结构 P if语句 2.2 switch语句 2.3 用条件运算符转换大小写字母 2.4 程序举例
Class 2 流程控制-選擇敘述與迴圈.
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
C程序设计.
第五章 选择结构程序设计 一、关系运算符和表达式 1、关系运算符 在程序中经常需要比较两个量的大小关系, 以决定程序下一步
第3章 C语言的基本语句 和程序结构设计.
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
走进编程 程序的顺序结构(二).
第4章 选择结构程序设计 4.1 关系表达式和逻辑表达式 关系表达式 1.关系运算符 关系运算符是比较两个操作数大小的符号。
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Chap 3 分支结构 3.1 统计输入的一批字符中各类字符的数量 3.2 查询自动售货机中商品的价格 3.3 分支结构程序设计.
第3章 程序设计初步 第4章 函数与预处理 第5章 数组 第6章 指针 第7章 自定义数据类型
第3章 选择结构与循环结构 王德俊 上海交通大学继续教育学院.
人教版数学四年级(下) 乘法分配律 单击页面即可演示.
第二章 Java语言基础.
第四章 选择结构程序设计 计算机科学学院.
第4章 PHP流程控制语句.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
6.4不等式的解法举例(1) 2019年4月17日星期三.
目录 4.1选择结构程序设计的概述 4.2关系运算符和表达式 4.3逻辑运算符和表达式 4.4用if语句实现选择结构程序设计
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
课前注意 课前注意 大家好!欢迎加入0118班! 请注意以下几点: 1.服务:卡顿、听不清声音、看不见ppt—管家( ) 2.课堂秩序:公共课堂,勿谈与课堂无关或消极的话题。 3.答疑:上课听讲,课后答疑,微信留言。 4.联系方式:提示老师手机/微信: QQ:
信号量(Semaphore).
几种基本语句 条件语句 广州市63中 岑光.
第三章 程序的控制结构 第一节 概述 第二节 if选择结构 第三节 switch语句.
第九节 赋值运算符和赋值表达式.
THE C PROGRAMMING LANGUAGE
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第四章 选择结构程序设计 计算机科学学院.
9.1.2不等式的性质 周村实验中学 许伟伟.
本节内容 指针类型.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第四章 分支结构的C程序设计 4.1 if语句 4.2 switch语句 4.3 程序举例.
第二章 Java基本语法 讲师:复凡.
美丽的旋转.
输入语句 输出语句 赋值语句 条件语句 循环语句
2.3 程序的选择结构 条件选择语句和多重选择语句的使用 程序条件选择结构的执行流程 会使用条件语句和多重选择语句编写程序解决简单的应用题.
选择结构又称为分支结构。 在选择结构程序设计中,根据条件的判断情况需要选择不同的语句组执行。 选择结构类型:
多重條件選擇敘述
1.2.2条件语句.
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C语言基础学习 从外行到入门.
第二章 柯西不等式与排序不等式及其应用.
Presentation transcript:

第五章 选择结构程序设计 信息管理系

在实际生活中,往往会要求根据情况的不同,选择不同的操作。 例如:输出两个数据a、b中较大的一个。 如果a>b 输出a; 否则 输出b; C语言提供了以下几种语句来实现这种情况。

一、if 语句 1、使用格式 ①、 if(条件) 语句1; else 语句2; 执行流程如图1所示。 满足 条件 语句1 语句2 不满足

【说明】 条件必须要放到()中。 条件可以是任意表达式(常用的是条件表达式和逻辑表达式)。若表达式的值为非0,则视为满足条件,若表达式的值为0,则视为不满足。 整个if 语句是一条语句。 语句1和语句2可以是任意一条语句,也可以是if语句。如果要执行多个操作,需要写成复合语句的形式。

例1:上题输出两数中的大者。 输出两个数据a、b中较大的一个。 如果a>b 输出a; 否则 输出b; 语句实现: 练习1:编写程序,输出实数x的绝对值。 使用格式: if(条件) 语句1; else 语句2; if(条件) 语句1; else 语句2; a>b printf(“%d”,a); printf(“%d”,b);

练习1:编写程序,输出实数x的绝对值。 1、读入x的值 2、根据x的不同情况进行操作: 如果 x>=0 |x|=x;/*也就是说输出x;*/ 否则 |x|=-x;/*也就是说输出-x;*/ 语句实现: (见程序P5_1) if(条件) 语句1; else 语句2; x>=0 printf(“|x|=%f”,x); printf(“|x|=%f”,-x);

if语句的使用格式 ② 如果不满足时什么也不做,则可用如下格式: if(条件) 语句1; 执行流程如图2所示。 图2 满足 条件 语句1

(ch>=‘A’&&ch<=‘Z’) 例2: 读入一个字符,如果是个大写字母,则输出。 (见程序P5_2) char ch; /*定义变量*/ scanf(“%c”, ch); /*读入数据*/ & 进行操作: 使用if的第二种格式 if(条件) 语句1; (ch>=‘A’&&ch<=‘Z’) printf(“%c”,ch);

例3: 有三个整数a、b、c,将其最大者放入a,次之放入b,最小者放入c。(见程序P5_3) 1、先将a、b中的大者放入a(保证a中存放a、b中的较大 的一个): 2、再让a与c比较,将较大的一个放入a(保证a中存放最大的那个): 3、比较b和c,将较大的那个放入b(保证c中存放最小的那个): if (a<b) 交换a、b的值 {z=a;a=b;b=z;} if (a<c) 交换a、c的值 {z=a;a=c;c=z;} if (b<c) 交换b、c的值 {z=b;b=c;c=z;}

练习2: 编写程序,判断输入的年份是否为闰年。若为闰年,则输出“这一年是闰年”,(年份能被4整除,但不能被100整除,或者能被100整除,又能被400整除)。 main() {int year; scanf(“%d”,&year); if(year%4==0 && year%100!=0 || year%100==0 && year%400==0) printf(“%d 年是闰年); }

③ 嵌套格式 如果语句1或语句2是一条if语句,即if语句里面还有一条if语句的情况,称为if语句的嵌套格式。 语句1; else 语句2; 语句3; if(条件1) 语句1; else if(条件2) 语句2; 语句3; if(条件1) if(条件2) 语句1 ; else 语句2; if(条件1) if(条件2) 语句1; else 语句2 if(条件3) 语句3; 思考:满足什么条件时执行语句2?

【说明】 if语句嵌套使用时,if和else的个数可以相同,也可以不同。else总是和它上面最近的、且还没有配对的if对应。 例如:有如下的写法: if(条件1) if(条件2) 语句1; else 语句2; 思考:满足什么条件时执行语句2? 满足条件1,但不满足条件2时执行语句2 if(条件1) if(条件2) 语句1; else 语句2; 所以一般写成:

例3:求一元二次方程ax2+bx+c=0的根。 根据 的情况进行计算: >=0 <0 >0 ==0 有实根 无实根 有两不等实根 有两相等实根 main() { float a,b,c,delta,x1,x2; scanf(“%f%f%f”,&a,&b,&c); delta=b*b-4*a*c; if(delta>=0) if(delta>0) {x1=(-b+sqrt(delta))/4*a; x2=(-b-sqrt(delta))/4*a; printf(“\nx1=%d,x2=%d”,x1,x2);} else {x1=x2= -b/4*a; printf(“x1=x2=%d”,x1);} printf(“no gen”); }

练习3: 已知: y= 1 x>0 0 x=0 -1 x<0 编写程序,任意输入x的值,输出相应y的值。 (见程序P5_4)

练习4: 编写一个程序,判断一个整数是否为三位数,如果是,则反向输出。如输入235,输出532 【分析】 1、如何判断x是三位数:100<=x<=999 2、如何求个位数、十位数和百位数: 假设x为一个三位数则 个位数a= x%10; 十位数b=(x/10)%10或b=(x%100)/10; 百位数c= x/100; (见程序P5_5)

二、条件表达式 max = a>b?a:b 等价于: if (a>b) max=a; else max=b;

三、switch语句 当分支很多时(有多种可能,选其一执行)。 1、使用格式 switch(表达式) {case 常量表达式1:语句1; …… …… case 常量表达式n:语句n; [default:语句n+1;] } [ ]表示其中部分如需要可有,如不需要可无。

例1: 要求按照考试成绩的等级打印出百分制分数段,可以用switch语句实现。 switch ( grade) {case ‘A’:printf(“\n85~100”);break; case ‘B’:printf(“\n70~84”);break; case ‘C’:printf(“\n60~69”);break; case ‘D’:printf(“\n<60”);break; default : printf(“\nerror”); } (见程序P5_6)

【说明】 switch、case等为关键字,要原样照写;{}不要漏掉。 switch后面括弧内的表达式的值只允许它为整型或字符型; 例如可以出现case 3+4 : …,但不能出现case 3.4:…。 当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。 每个case的常量表达式的值必须互不相同。

【说明】 各个case和default的出现次序不影响执行结果,例如,可以先出现default……,再出现case语句。 再执行switch语句时,格式switch后面表达式的值找到匹配的入口,就从此执行,执行完一个case后面的语句后,自动转换到下一个case继续执行。 如果我们想让程序执行完一个分支后,不再执行后面的case语句,即终止switch语句的执行可以用break语句来实现。 每个分支可以包含多个语句。 多个case 可共用一组执行语句。 允许嵌套使用switch语句。

带有break语句的switch语句的执行流程如图3所示: 表达式的值 值1 值2 值3 …… 值n 语句1 语句2 语句3 …… 语句n 图3

例3: 给出一百分制成绩,要求输出成绩等级:100~90分输出’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。 scanf(“%d”,&x); switch ( x%10) {case 0: case 9: printf(“\nA”); break; case 8:printf(“\nB”); break; case 7:printf(“\nC”); break; case 6:printf(“\nD”); break; default : printf(“\nE”); }

练习 : 1、以下程序的输出结果是() main() { int x=1, a=0, b=0 ; switch ( x ) {case 0: b++; case 1: a++; case 2: a++,b++; } printf (“\na=%d,b=%d”,a,b) ; } A)a=2,b=1 B)a=1,b=1 C)a=1, b=0 D)a=2,b=2

练习 : 2、下面程序的输出结果是() main() { int x=1, y=0, a=0, b=0 ; switch (x ) {case 1: switch (y ) {case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; printf (“a=%d,b=%d\n”, a,b); A)a=2,b=1 B)a=1, b=1 C)a=1,b=0 D)a=2,b=2

练习 : 3、与y = ( x > 0 ? 1 : x < 0 ? –1 : 0 ) ;的功能相同的if语句是() A) B) C) D) if(x) if(x>0 y=1; else if (x<0) y=-1; else y=0; if(x>0) y=1; else if (x<0) y=-1; else y=0; if(x>=0) if (x>0) y=1; else y=-1; if(x>0) y=1; else if (x=0) y=0; else y=-1;

练习 : 4、下面程序的输出结果是() main() {float x=2.0,y; if(x<0.0) y=0.0; else if (x<10.0) y=1.0/x; else y=1.0; printf(“\n%f”,y); }A)0.000000 B)0.250000 C)0.500000 D)1.000000 5、当a=3,b=4,c=5时,执行以下程序的输出结果是() if (a!=c) ; a=c; c=b; b=a; }

练习 : 6、设ok1=1,ok2=2,ok3=0,x=15,a=3,b=4,执行以下程序段后x的值是() if(ok1) {if (a<b) {if(!ok3) x=0; else x=1; } else x=2; else x=3;

练习 : 作业: 输入某年月日,计算该天是该年中第几天。 如:若输入2004 1 20,则1月20日是2004年的第20天。 如:若输入2004 1 20,则1月20日是2004年的第20天。 若输入2004 2 5,则2月5日是2004年的第36天。 (见程序P5_7)

总结: 选择结构的程序设计有三种实现方法: 一般情况下: 如果有2种或3种可能情况,从中选择一种来执行,则使用if语句比较方便; 如果有很多种情况,从中选择一种来执行,则使用switch语句实现比较方便; 条件语句在考试中常以填空或选择的形式出现,让你求执行结果。 不管使用哪种语句,一定要牢记使用格式,并多加练习。