C语言程序设计教案
选择结构程序设计(一) 1.关系运算符和关系表达式 说明 内容 重点 难点 问题提出 详细内容 2.逻辑运算符和逻辑表达式 3.条件运算符及条件表达式 4.IF语句 5.IF语句的嵌套 1.关系运算符和关系表达式 2.逻辑运算符和逻辑表达式 3.条件运算符及条件表达式 4.IF语句的格式使用 5.IF语句的嵌套 复杂条件的表示;IF语句的正确使用。 通过前面的顺序结构程序设计的介绍,我们都知道顺序结构程序 设计按照自上而下的流程的顺序执行,但是在实际生活中,仅顺序结 构是无法满足用户要求的,并不是所有的程序都是自上而下的顺序执 行,而是根据条件有选择的执行。这就是我们将要学习的分支结构程 序设计。 一、导入 讨论导入:请教学生翻译下面的英语句子 a.If she is not in Class1 then she will be in Class2. “十 b.If it does not rain then I'll go to park, else I'll go to the movie. 生活中的字路口”也属 创造情景,使学生感觉新鲜和自信,学生可以翻译的准确无于选择结构误。此过程中,教师引导学生注意if 、then、 else三个词的使用。 类型。 学生归纳:条件语句的一般形式: 格式1:if 条件 then 语句组 格式2:if 条件 then 语句组1 else 语句组2 二、if中的条件表示 1.关系运算符和关系表达式 在程序中经常需要比较两个量的大小关系, 以决定程序下一步 的工作。比较两个量的运算符称为关系运算符。 (1).关系运算符: 举例说明 操作符 作用 > 大于 >= 大于等于 < 小于 C语言程序设计教案
= = 等于 != 不等于 关系运算符都是双目运算符,用于两个运算对象比较。 注意:不能将“<=”写成“=<”,也不能将“>=”写成“=>”。 (2).关系表达式: 用关系运算符将两个运算对象连接起来的式子称为关系表达式。 运算对象可以是常量,可以是变量,也可是表达式。如: 实例讲解说明 3>2 b*b-4*a*c>=1e-6 x= =y a%b!=0 关系表达式的值: C语言规定用数值0代表关系运算结果为 “假”,用数值1代表关系运算结果为“真”。关系表达式值的数据类 型为整型。 设有定义 int a=3,b=2,c=1; 则: a>b 的值为1 c= =a 的值为0 (3).优先级和结合方向 >、>=、<和 < = 的优先级相同;= = 和 !=的优先级相同,两组 运算符优先级从高到低的顺序是: > >= < <= = = != 关系运算符的优先级低于算术运算符。如: a+b>c+d 等价于 (a+b)>(c+d) 关系运算符的结合方向都为左结合。如: a>b>c 等价于 (a>b)>c 举例说明 2、逻辑运算符和逻辑表达式 (1).逻辑运算符 && 逻辑与 || 逻辑或 ! 逻辑非 (2).逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑 表达式。运算对象一般为关系表达式或逻辑量(常量或变量)。如; x>10||x<100 x= =y&&a!=b 5&&b 如:3>2&&4>3 的结果为真 3<4||4>5 结果为真 !(3>2) 的结果为假 <= 小于等于 C语言程序设计教案
代表逻辑运算结果为“真”。在判断一个量(常量或变量)是“真” 还是“假”时,C语言规定以0代表“假”,以非0代表“真”。 3<4&&4>5 的结果为0 3<4||4>5 结果为1 !(3>2) 的结果为0 (3).优先级和结合方向 三个逻辑运算符优先级从高到低的顺序为: ! && || ! 的优先级高于算术运算符。&&和||的优先级低于关系运算符。 如: 3>2+1&&4<2+1 等价于 (3>(2+1))&&(4<(2+1)) &&和||的结合方向为左结合,!的结合方向为右结合。如: 通过讲解,向a>b&&c>d&&e>f 等价于 ((a>b)&&(c>d))&&(e>f) if语句过渡 !!!(a>b) 等价于 !(!(!(a>b))) 3、条件运算符及条件表达式 (1).条件运算符 ? : C语言中唯一的一个三目运算符。 (2).条件表达式 条件表达式的一般形式为: 表达式1?表达式2:表达式3 其中,表达式i (1≤i≤3)的类型任意,表达式1一般为关系表达 式或逻辑表达式,表达式2和表达式3一般为同类型表达式。 条件表达式的求解过程是:先求解表达式1,若表达式1的值不 为0,则求解表达 式2,表达式2的值就是条件表达式的值;若表 达式1的值为0,则求解表达式3,表达式3的值就是条件表达 式的值。 如: 3>2?3+2:3*2 表达式的值为5 ’a’>’b’?3!=0:7= =8 表达式的值为0 (3).优先级和结合方向 通 过与前面条件运算符的优先级高于赋值运算符,但低于逻辑运算符、关系引入的例子重点说明其运算符和算术运算符。如: 格式 3>2?3+2:3*2 等价于 (3>2)?(3+2):(3*2) 逻辑表达式的值:用数值0代表逻辑运算结果为“假”,用数值1C语言程序设计教案
条件运算符的结合方向为右结合。如: 注意: ·条件表达式中的表达式2和表达式3只有一个被求解。 ·表达式1的类型可与表达式2和表达式3的类型不同。 三、分支结构表示——IF语句 在C中条件语句的一般形式为: if(表达式) 语句1; else 语句2; 执行过程如下: 如果表达式的值为非0(TURE)即真, 则执行语句1, 执行完语句1 从语句2后开始继续向下执行; 如果表达式的值为0(FALSE)即假, 则 跳过语句1而执行语句2。然后程序继续往下执行。所谓表达式是指 关系表达式和逻辑表达式的结合式, 关于表达式前面已作过介绍, 这 是不再重复。 真(非0) 假(0) 表达式 语 句 1 语 句 2 结合实例说注意: 明其注意事1. 如果语句1或语句2有多于一条语句要执行时, 必须使用\项 和\把这些语句包括在其中, 此时条件语句形式为: if(表达式) { 语句体1; } else {语句体2;} 2. 分支程序的三种形式 (1)单分支: 例1输入一个整型数,输出该数的绝对值。 main() { int a,; ’a’>’b’?3!=0:7= =8 等价于 (’a’>’b’)?(3!=0):(7= =8) C语言程序设计教案
if(a<=0) a=-a; printf(\ } (2)上述是双分支 例2输入两个整型数,将平方值较大者输出。 main() { int a,b,max; scanf(\ if(a*a>b*b) max=a; else max=b; printf(\ } (3)多分支if语句是双分支if语句的一个扩充,其格式为: 例3输入一个百分制成绩,输出其对应的等级。(90~100为A, 80~99为B,70~79为C,60~69为D,0~59为E) main() { int x; char y; 通过图例说 scanf(\明嵌套的匹 if(x>=90) y=’A’; 配关系。 else if(x>=80) y=’B’; else if(x>=70) y=’C’; else if(x>=60) y=’D’; else y=’E’; printf(\ } 四.If嵌套格式 if语句可以嵌套,即在一个if语句中又可以包含一个或多个if语 句,一般形式为: if(表达式1) if(表达式2) 语句1 else 语句2 else scanf(\
c语言选择结构程序设计教案
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)