《2022年c语言选择结构程序设计教案.pdf》由会员分享,可在线阅读,更多相关《2022年c语言选择结构程序设计教案.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、选择结构程序设计(一)说明内容1关系运算符和关系表达式2逻辑运算符和逻辑表达式3条件运算符及条件表达式4IF 语句5IF 语句的嵌套生活中的“十字路口”也属于 选 择 结 构类型。举例说明重点1关系运算符和关系表达式2逻辑运算符和逻辑表达式3条件运算符及条件表达式4IF 语句的格式使用5IF 语句的嵌套难点复杂条件的表示;IF 语句的正确使用。问题提出通过前面的顺序结构程序设计的介绍,我们都知道顺序结构程序设计按照自上而下的流程的顺序执行,但是在实际生活中,仅顺序结构是无法满足用户要求的,并不是所有的程序都是自上而下的顺序执行,而是根据条件有选择的执行。这就是我们将要学习的分支结构程序设计。详
2、细内容一、导入讨论导入: 请教学生翻译下面的英语句子 a.If she is not in Class1 then she will be in Class2. b.If it does not rainthen Ill go to park, else Ill go to the movie. 创造情景, 使学生感觉新鲜和自信,学生可以翻译的准确无误。此过程中,教师引导学生注意if 、then 、 else 三个词的使用。学生归纳: 条件语句的一般形式:格式 1:if 条件then 语句组格式 2:if 条件then 语句组 1 else 语句组 2 二、 if 中的条件表示1关系运算符和关
3、系表达式在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。(1) 关系运算符:操作符作用 大于= 大于等于 小于精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 8 页 - - - - - - - - - - = 小于等于= = 等于!= 不等于关系运算符都是双目运算符,用于两个运算对象比较。注意: 不能将“ =”写成“ =”写成“ =” 。(2) 关系表达式:用关系运算符将两个运算对象连接起来的式子称为关系表达式。运算对象可以是常量,可以是变量,也
4、可是表达式。如:32 b*b-4*a*c=1e-6 x= =y a%b!=0 关系表达式的值:C 语言规定用数值0 代表关系运算结果为“假”,用数值 1 代表关系运算结果为“真”。关系表达式值的数据类型为整型。设有定义int a=3,b=2,c=1; 则:ab 的值为 1 c= =a 的值为 0 (3)优先级和结合方向、=、和 = c+d 等价于(a+b)(c+d) 关系运算符的结合方向都为左结合。如:abc 等价于(ab)c 2、逻辑运算符和逻辑表达式(1) 逻辑运算符& 逻辑与| 逻辑或! 逻辑非(2) 逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。运算对象一般为
5、关系表达式或逻辑量(常量或变量)。如;x10|x2&43 的结果为真35 结果为真!(32) 的结果为假实 例 讲 解 说明举例说明精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 8 页 - - - - - - - - - - 逻辑表达式的值:用数值 0 代表逻辑运算结果为“假”,用数值 1代表逻辑运算结果为“真”。在判断一个量(常量或变量)是“真”还是“假”时,C 语言规定以0 代表“假”,以非 0 代表“真”。35 的结果为0 35 结果为 1 !(32) 的结果为 0 (3)优先级和结合
6、方向三个逻辑运算符优先级从高到低的顺序为:!& | ! 的优先级高于算术运算符。& 和|的优先级低于关系运算符。如:32+1&4(2+1)&(4b&cd&ef 等价于(ab)&(cd)&(ef) !(ab) 等价于!(!(!(ab) 3、条件运算符及条件表达式(1) 条件运算符? :C 语言中唯一的一个三目运算符。(2) 条件表达式条件表达式的一般形式为:表达式 1?表达式2:表达式 3 其中,表达式i (1 i3)的类型任意,表达式1 一般为关系表达式或逻辑表达式,表达式2 和表达式 3 一般为同类型表达式。条件表达式的求解过程是:先求解表达式1,若表达式1 的值不为 0,则求解表达式 2,
7、表达式 2 的值就是条件表达式的值;若表达式 1 的值为 0,则求解表达式3,表达式3 的值就是条件表达式的值。如:32?3+2:3*2 表达式的值为5 a b ?3!=0:7= =8 表达式的值为0 (3) 优先级和结合方向条件运算符的优先级高于赋值运算符,但低于逻辑运算符、关系运算符和算术运算符。如:32?3+2:3*2 等价于(32)?(3+2):(3*2) 通过讲解, 向if 语句过渡通 过 与 前 面引 入 的 例 子重 点 说 明 其格式精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,
8、共 8 页 - - - - - - - - - - a b ?3!=0:7= =8 等价于( a b )?(3!=0):(7= =8) 条件运算符的结合方向为右结合。如:注意:条件表达式中的表达式2 和表达式 3 只有一个被求解。表达式 1 的类型可与表达式2 和表达式3 的类型不同。三、分支结构表示IF 语句在 C 中条件语句的一般形式为: if(表达式 ) 语句 1; else 语句 2; 执行过程如下:如果表达式的值为非0(TURE) 即真, 则执行语句1, 执行完语句 1从语句 2后开始继续向下执行; 如果表达式的值为0(FALSE) 即假 , 则跳过语句1 而执行语句2。然后程序继续
9、往下执行。所谓表达式是指关系表达式和逻辑表达式的结合式, 关于表达式前面已作过介绍, 这是不再重复。注意:1. 如果语句1 或语句2 有多于一条语句要执行时, 必须使用 和 把这些语句包括在其中, 此时条件语句形式为:if(表达式 ) 语句体 1; else 语句体 2; 2. 分支程序的三种形式(1)单分支:例 1 输入一个整型数,输出该数的绝对值。main() int a,; 结 合 实 例 说明 其 注 意 事项表达式真(非 0) 假(0) 语 句 1 语 句 2 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - -
10、- - -第 4 页,共 8 页 - - - - - - - - - - scanf(%d,&a); if(ab*b) max=a; else max=b; printf(%5dn,max); (3)多分支 if 语句是双分支if 语句的一个扩充,其格式为:例 3 输入一个百分制成绩,输出其对应的等级。(90100 为 A,8099 为 B,7079 为 C,6069 为 D,059 为 E)main() int x; char y; scanf(%d,&x); if(x=90) y= A ; else if(x=80) y= B ; else if(x=70) y= C ; else if(
11、x=60) y= D ; else y= E ; printf(y=%cn,y); 四 If嵌套格式if 语句可以嵌套, 即在一个 if 语句中又可以包含一个或多个if 语句,一般形式为:if( 表达式 1) if(表达式 2) 语句 1 else 语句 2 else 通 过 图 例 说明 嵌 套 的 匹配关系。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 8 页 - - - - - - - - - - if(表达式 3) 语句 3 else 语句 4 注意:在缺省花括号的情况下,if 和
12、else的配对关系是:从最内层开始,else总是与它上面最近的并且没有和其他else配对的 if 配对。程序员应该养成良好的编程习惯,从书写格式上,注意if 和 else的层次关系, 反映 if 与 else的配对关系。 以便提高程序的维护和理解。如下 if 与 else 的配对举例。例 4 已知函数y=)0(1)0(0)0(1xxx编写程序,输入x,输出 y 值。main() float x; int y; scanf(%f,&x); if(x=0) if(x0) y=1; else y=0; else y=-1; printf(x=%f y=%dn,x,y); 使用 if 语句时应注意以下
13、几点: if 后面圆括号内的表达式可以为任意类型,但一般为关系表对比实例, 详细 细 化 注 意事项通过实例, 说明 分 支 程 序设计的思想,巩 固 前 面 所讲的内容。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 8 页 - - - - - - - - - - 达式或逻辑表达式。 if 和 else后面的语句可以是任意语句。 if(x) 与 if(x!=0) 等价。 if(!x) 与 if(x= =0) 等价。五、举例说明例 5:读入一个整数, 判断其能否被3 整除。#include m
14、ain() int a ; printf(Enter an integer “) ;scan(%d,&a) ; /*输入一个整数*/ if (a%3= =0) /*判断能否被3 整除并输出相应信息*/ printf(%d能被 3 整除 n”,a) ;else printf(%d不能被 3 整除n”,a) ; 例 6 从键盘输入三个数, 求出绝对值最大者并显示输出。分析:可将输入的三个数存放于变量a,b,c中,先用 a 和 b 比较(绝对值比较) ,将大数存放于临时变量max中,再用 max和 c 比较,再将大数存放于max中,这样进行比较之后得到的max一定为 a,b,c中绝对值最大的数。程序
15、如下:#include #include math.h main () float a ,b ,c ; float max ; printf(“Enter 3 numbers n”) ;scanf (%f , %f , %f ,&a,&b,&c); if (abs(a) abs (b) max=abs(a) ; else max=abs(b) ; if (max abs (c) max=abs(c) ; printf(Max=%fn,max) ; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共
16、 8 页 - - - - - - - - - - 例 7 输入三个整数,按大小顺序输出程序如下:#include main() int a,b,c,temp ; scanf( “%d,%d,%d ”,&a,&b,&c) ;if (ab) temp=a; a=b ; b=temp ; if (ac) temp=a; a=c ; c=temp ; if (bc) temp=b; b=c ; c=temp ; printf(“%4d ,%4d ,%4d” ,a,b,c) ; 六总结本讲对关系运算符和关系表达式、逻辑运算符和逻辑表达式做了详细的论述;并对条件运算符及条件表达式;通过对上面的论述,可以得到对选择结构条件的建立。用 IF 语句对选择结构来得到实现,IF语句的格式及其应用。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 8 页 - - - - - - - - - -