预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共65页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第五章分支结构程序设计5.1关系表示式5.2逻辑表示式:按照运算符优先次序能够得出:a>b&&c>d等价于(a>b)&&(c>d)!b==c||d<a等价于((!b)==c)||(d<a)a+b>c&&x+y<b等价于((a+b)>c)&&((x+y)<b)例:设x=0,y=2,a=8,k=-1,q=1,z=1,则1、x+y>3&&a==8→2>3&&1→0&&1→02、x+y&&’a’→2&&97→13、x+(y=3)==k*z||!a→0+3==-1||!a→0||0→04、(x!=7)||’a’→0!=7||97→1||97→15、!(x+y>3&&a==8)→!(2>3&&1)→!(0&&1)→!0→16、!(k*q)→!(-1)→07、!!!x→!!(1)→!(0)→15.3逻辑表示式跳跃1、执行inta,b,c;a=b=c=0;++a||++b&&++c;后a、b、c值分别为1、0、02、执行inta=5,b=6,x=1,y=2;(a=x>y)&&(b=x>y);后a、b值分别为0、6例1:5.4选择结构(if语句)例4:从键盘输入一个字符,判断它是否小写字母。若是,将其转换成大写字母,不然不进行转换,作后输出该字母。#include<stdio.h>main(){charc,a;c=getchar();if(c<‘a’||c>‘z’)a=c;/*判断非小写字母情况*/if(c<=‘z’&&c>=‘a’)a=c-32;*判断是否是小写字母情况*/printf("%c\n",a);}4、在使用if语句中应注意以下问题:1)在三种形式if语句中,在if之后均为表示式。该表示式通常是逻辑表示式或关系表示式,但也能够是其它表示式,如赋值表示式等,甚至也能够是一个变量。比如:if(a=5)语句;if(b)语句;都是允许。只要表示式值为非0,即为“真”。如在:if(a=5)…;中表示式值永远为非0,所以其后语句总是要执行,当然这种情况在程序中不一定会出现,但在语法上是正当。2)在if语句中,条件判断表示式必须用括号括起来,在语句之后必须加分号。3)在if语句三种形式中,全部语句应为单个语句,假如要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意是在}之后不能再加分号。比如:if(a>b){a++;b++;}else{a=0;b=10;}5.4.2条件运算符和条件表示式使用条件表示式时,还应注意以下几点:1)条件运算符运算优先级低于关系运算符和算术运算符,但高于赋值符。所以:max=(a>b)?a:b能够去掉括号而写为max=a>b?a:b2)条件运算符?和:是一对运算符,不能分开单独使用。3)条件运算符结合方向是自右至左。比如:a>b?a:c>d?c:d应了解为a>b?a:(c>d?c:d)这也就是条件表示式嵌套情形,即其中表示式3又是一个条件表示式。例6:计算例8:P1055.5计算方法二:方法三:若上面分段函数改为则程序改为voidmain(){floatx,y;scanf(”%f”,&x);if(x<=-2||x>20)printf(”输入数据是错误”);elseif(-2<x&&x<1)y=x;elseif(1<=x&&x<10)y=2*x-1;elsey=3*x-11;printf(”y=%f\n”,y);}程序应改为voidmain(){floatx,y;scanf(”%f”,&x);if(x<=-2||x>20)printf(”输入数据是错误”);elseif(-2<x&&x<1){y=x;printf(”y=%f\n”,y);}elseif(1<=x&&x<10){y=2*x-1;printf(”y=%f\n”,y);}else{y=3*x-11;printf(”y=%f\n”,y);}}5.4.3if语句嵌套如:例10:写出下面两程序输出结果为了使逻辑关系清楚:(1)按下面所表示书写程序:(2)适当地加大括号:例12:输入一年份,判别是否闰年。voidmain(){intyear,leap;scanf(“%d”,&year);if(year%4==0){if(year(%100==0){if(year%400)==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if(leap)printf(“%dis“,year);elseprintf(“%dis“,year);printf(“aleapyear.\n“);}5.5switch语句(另一个分支语句)例13:输出:WednesdaThursdayFridaySaturdaySundayerror5.5.3break语句:专用于跳出switch语句Switch语句惯用形式:在使用