c语言选择结构程序设计教学教案.doc
|选择结构程序设计(一) 说明内容1关系运算符和关系表达式2逻辑运算符和逻辑表达式3条件运算符及条件表达式4IF 语句5IF 语句的嵌套重点1关系运算符和关系表达式2逻辑运算符和逻辑表达式3条件运算符及条件表达式4IF 语句的格式使用5IF 语句的嵌套难点 复杂条件的表示;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) 关系运算符:操作符 作用 > 大于 生活中的“十字路口”也属于选择结构类型。举例说明|>= 大于等于 =”写成“=> ”。(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 的值为 1c= =a 的值为 0(3)优先级和结合方向>、>= 、 >= c+d 等价于 (a+b)>(c+d)关系运算符的结合方向都为左结合。如:a>b>c 等价于 (a>b)>c2、逻辑运算符和逻辑表达式(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,; scanf(“%d“, if(ab*b)max=a;elsemax=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“,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(“y=%cn“,y);四If 嵌套格式if 语句可以嵌套,即在一个 if 语句中又可以包含一个或多个 if语句,一般形式为:if(表达式 1)if(表达式 2) 语句 1通过图例说明嵌套的匹配关系。|else 语句 2elseif(表达式 3) 语句 3else 语句 4注意:在缺省花括号的情况下,if 和 else 的配对关系是:从最内层开始,else 总是与它上面最近的并且没有和其他 else 配对的 if配对。程序员应该养成良好的编程习惯,从书写格式上,注意 if 和else 的层次关系,反映 if 与 else 的配对关系。以便提高程序的维护和理解。如下 if 与 else 的配对举例。例 4 已知函数y=)0(1x编写程序,输入 x,输出 y 值。main() float x; int y;scanf(“%f“,if(x>=0)if(x>0) y=1;else y=0;else y=-1;对比实例,详细细化注意事项通过实例,说明分支程序设计的思想,巩固前面所讲的内容。|printf(“x=%f y=%dn“,x,y);使用 if 语句时应注意以下几点: if 后面圆括号内的表达式可以为任意类型,但一般为关系表达式或逻辑表达式。 if 和 else 后面的语句可以是任意语句。 if(x)与 if(x!=0)等价。 if(!x)与 if(x= =0)等价。五、举例说明例 5:读入一个整数,判断其能否被 3 整除。#include main()int a ;printf(“Enter an integer “) ;scan(“%d“, /*输入一个整数*/if (a%3= =0) /*判断能否被 3 整除并输出相应信息*/printf(“%d 能被 3 整除n”,a) ;elseprintf(“%d 不能被 3 整除n”,a) ;例 6 从键盘输入三个数,求出绝对值最大者并显示输出。分析:可将输入的三个数存放于变量 a,b,c 中,先用 a 和 b 比较(绝对值比较) ,将大数存放于临时变量 max 中,再用 max 和 c 比较,再将大数存放于 max 中,这样进行比较之后得到的 max 一定为a,b,c 中绝对值最大的数。程序如下:#include #include math.hmain () float a ,b ,c ;float max ;printf(“Enter 3 numbers n”) ;scanf (“%f , %f , %f “,if (abs(a) > abs (b) max=abs(a) ; else |max=abs(b) ;if (max main() int a,b,c,temp ;scanf(“%d,%d,%d”,if (a<b) temp=a; a=b ; b=temp ; if (a<c) temp=a; a=c ; c=temp ; if (b<c) temp=b; b=c ; c=temp ; printf(“%4d ,%4d ,%4d” ,a,b,c) ;六总结本讲对关系运算符和关系表达式、逻辑运算符和逻辑表达式做了详细的论述;并对条件运算符及条件表达式;通过对上面的论述,可以得到对选择结构条件的建立。用 IF 语句对选择结构来得到实现,IF 语句的格式及其应用。