1、单元4-2 选择结构程序设计(二)(教案)
教学内容及教学过程
说明
步骤一 问题引入
典型的一个双分支程序如下:
if(m>n)
max=m;
else
max=n;
C语言中有一个特定的运算符,可以将上面的程序简化成一个运算表达式。
步骤二 讲授
4.2.3 条件运算符
条件表达式的一般格式为:
表达式1?表达式2:表达式3
运算符“?:”是条件运算符
条件运算符的优先级高于赋值运算符,引例中的双分支结构等价于:max=m>n?m:n
【随堂练习4-5】
1.将【随堂练习4-4】中第1题的3至6行程序使用条件运算符描述:
2、
4.2.4 if的嵌套
【例4-6】输入三个边长a、b、c,如果这三个边能构成三角形,判断该三角形是等边三角形、等腰三角形,还是其它三角形。
分析:根据输入的三个边长a、b、c,首先判断能否构成一个合法三角形,在能够构成合法三角形的前提下,再根据等边三角形的条件(a==b&&b==c)、等腰三角形的条件(a==b||b==c||c==a)进一步判断。
代码:
void main( )
{ int a,b,c;
printf("请输入三角形三边长:");
3、
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b)
{ if(a==b&&b==c)
printf("该三角形为等边三角形.\n");
else
if(a==b||b==c||a==c)
printf("该三角形为等腰三角形.\n");
else
printf("该三角形为其它三角形.\n");
}
else
printf("注意:不能构成合法三角形.\n");
}
规定:else总是和它前面
4、离它最近的未配对的if相匹配。在实际编程中,为了表明编程者的意图,可以通过“{}”来强制if和else的配对关系。
【随堂练习4-4】
1.以下程序可判断指定的年份是否为闰年,补充完整。
int year,f; //f是闰年的标志位,year表示年份
scanf(“%d”,&year);
f=1;
else
if( )
printf(“%d年是闰年。”,year);
els
5、e
printf(“%d年不是闰年。”,year);
2.以下程序用于判断输入的字符是否为字母,补充完整,然后将程序改写成仅一对if-else的形式。
char ch;
ch=getchar( );
if( )
printf(“%c是字母。”,ch);
else if( )
printf(“%c是字母。”,ch);
else
printf(“%c不
6、是字母。”,ch);
4.2.5 综合应用案例
【例4-8】根据定期存款的期限和相应的利率,计算本息合计。
存款期限
利率
本金
本息合计
三个月
2.6%
六个月
2.8%
一年
3.3%
二年
3.75%
三年
4.25%
五年
4.75%
分析: 当我们在银行办理定期存款业务时,储蓄员将本金金额和存款期限输入电脑后,会显示输出存款到期后的本息合计金额。这个过程可以分解为以下三步:
第一步:输入存款金额c和存款期限m;
第二步:根据存款期限m确定存款利率r;
第三步:根据存款金额c和利
7、率r计算本息合计金额s。
方法一:利用单分支if语句实现
if(m==3) r=0.026;
if(m==6) r=0.028;
if(m==12) r=0.033;
……
步骤三 课堂小结
1.条件运算符
注意:唯一的三目运算符
2.if语句嵌套
注意:逻辑对应关系,else总是和它前面离它最近的未配对的if相匹配。
3.综合应用
注意:解决问题的分析过程
引出
注意运算过程。
板书流程图
重点
注意逻辑匹配关系
实例分析
读懂程序,分析其他解法
交互
课堂演练
在练习中强化
在总结中提升
教
学
总
结