《程序设计基础教案102课时——选择结构单分支结构和双分支.docx》由会员分享,可在线阅读,更多相关《程序设计基础教案102课时——选择结构单分支结构和双分支.docx(9页珍藏版)》请在第一文库网上搜索。
1、教案序号10周次授课形式新授授课章节名称4.3选择结构程序设计(一)教学目的了解单分支、双分支、多分支教学重点理解三种分支教学难点学会使用单分支结构的选择语句使用教具机房课外作业课后体会授课主要内容1.14.3选择结构程序设计计算机在执行程序时,一般是按照程序中语句出现的先后次序逐句执行的,这就是顺序结构的程序。但是对于一些稍复杂的实际问题,常常要求依据某些条件来改变执行顺序,选择所要执行的语句,这种使计算机具有判断选择执行能力的语句称为选择语句,由选择语句构成的程序结构称为选择结构。选择结构有三种形式:单分支结构、双分支结构和多分支结构。C语言为这三种结构分别提供了相应的语句。本节介绍它们的
2、语法和使用方法。构成选择结构的要素有两个:一个是条件,一个是执行操作。条件一般是一个表达式,也可以是常量、变量。条件是能够进行判断,并有一个或一个以上的结果,每种结果都会有相应的执行操作,根据条件的结果,会有相应的一个并且仅有一个确定的执行操作。根据条件的结果数目,选择结构一般有以下三种形式。1、单分支结构在C语言中,用if语句实现单分支结构。单分支结构是根据条件的判断结果,来决定是否执行其后面的执行操作。单分支结构如图4.3(a)所示。2、双分支结构在C语言中,用ife1se语句实现双分支结构。双分支结构是对条件进行判断,从而得到两个结果(即真和假),根据真假结果选择两种执行操作之一。双分支
3、结构如图4.3(b)所示。3、多分支结构在C语言中,用if语句的嵌套形式或者SWitCh语句实现多分支结构。多分支结构,顾名思义,对条件进行判断,会得到n个结果,每种结果对应一个执行操作,印有n个分支:当n个结果不满足时,执行第n+1个分支。即多分支结构在n+1个分寸台选择其中一个执行。多分支结构如图4.3(C)所示。图4.3选择结构4.3.1 if语句if语句是一种非常重要的程序流程控制语句,用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一的一种语句。c语言提供了三种形式的if语句:一、单分支if语句形式单分支if语句也称简单if结构,根据if后面表达式值的真
4、假来决定是否执行其后面的语句,其一般格式为:if(表达式)(语句序列;Printf(请进游乐场n);)returnO;运行情况如下:青输入妈妈,釜爸孩子的年龄:8,29,4青进游乐场例4.5从键盘输入一个字符,若该字符是大写字母,将其转换为小写形式后输出。tinc1udeintmain()(charc;Printf(请输入一个字符:n);c=getchar();if(c=,A,&cb时,进行交换,先将a的值存入t,再将b的值存入a,然后将t中保存的a的原值存入b,运行前t中无固定值,运行后t中存有a的值。N-S流程图如图4.5所示。据此写出源程序如下:ftinc1udeintmain()int
5、a,b,t;Printf(请输入a、b两个整形变量的值:);scanf(zz%d,%d,&a,&b);if(ab)t=a;a=b;b=t;交换变量a,b的值Printf(值小的数是:d,值大的数是:%dn,a,b);return0;)执行情况为:注意:若交换变量a,b的值,直接用如下两条语句做,行不行?a=b;b=a;例4.7输入3个整数a,b,c,要求按由小到大的顺序输出。算法N-S流程图如图4.6所示。据此算法写出源程序如下:ttinc1udeintmain()f1oata,b,c,t;Printf(请输入a、b、C三个实型变量的值:r);scanf(z,%f,%f,%f,&a,&b,&c
6、);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(从小到大的值是:%f,%f,%fzz,a,b,c);return0;二、双分支ife1se语句形式双分支if-e1se语句也称标准形式的选择结构,根据if后面的表达式值的真假来决定执行其后面的两条语句之一,其一般格式为:if(表达式)语句序列1E1se(语句序列2)执行过程为:判断表达式值的真假,如果值为真,则执行后面的语句序列1,如果值为假,则e1se后面的语句序列2。其流程图见图4.7所示。if(xy)printf(%dn”,x);)e1se(printf(%dn,
7、y);)注意:(1) if和e1se是成对出现的,e1se不能单独使用,必须和if配对使用。(2) e1se和后面的语句2之间没有分号“;”,初学者应当注意。(3) if和C1SC后面的语句后都有分号是ife1se内嵌语句所要求的,如果没有这个分号,就会出现语法错误。但是应该注意,不要误认为是两个语句(if语句和e1se语句),它们属于同一个if-e1se语句。(4)表达式可以是任意类型的表达式,也可以是任意类型的常量或者变量。值为非O为真,值为O为假。例4.8使用ife1se结构编程,学习成绩280用A表示,80分以下用B表示。ftinc1udeintmain()intcj;charjg;P
8、rintf(请输入百分制成绩:n);scanf(%d”,&cj);if(cj=80)jg=A,;e1sejg-B,;printf(z,%d属于%cnz,cj,jg);return0;运行结果如下:例4.9使用ife1se结构编程,输入一个年份,判断该年份是否闰年。#inc1udeintmain()intyear;Printf(请输入一个年份:n);scanf(%d”,&year);if(year%4=0&year%100!=0year%400=0)printf(zz%d年是闰年n”,year);e1seprintf(z,%d年不是闰年n”,year);return0;运行结果:请输入一,个年份:199419961996年是闰年