如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第5章选择结构5.1关系运算符和关系表达式关系运算符的优先次序1.什么是关系表达式?关系表达式的应用。main(){charc=’k’;inti=4,j=2,k=5;floatx=3e+5,y=7.56;printf(“%d,%d\n”,’a’+3<c,-i-2*j>=k+1);printf(“%d,%d\n”,i+j==-3*j,k==j==i+7);printf(“%d,%d\n”,x<y-3,y!=x+5);}该程序的运行结果为:1,01,10,01,15.2逻辑运算符和逻辑表达式与其它运算符优先级的比较:1.什么是逻辑表达式?注意事项:(1)代数式不等式0<x<5必须写成(x>0)&&(x<5),而不能直接写成0<x<5。(2)C语言允许直接对数或字符进行逻辑运算。例如!5,结果为0。5&&‘c’,结果为1。因为字符‘c’的ASCII为非0值,非0值与非0值作与运算,结果为真。5.3选择结构语句2.双分子语句if(表达式)语句1else语句23.多分子语句if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3:elseif(表达式m)语句melse语句nif语句说明:4.if语句的嵌套说明:缩排用if语句实现选择结构举例例:托运行李计费。用f代表收费,w代表重量,并将它们定义成实型数。则有关系:w*0.205(0<=w<=50)f=w*0.313(50<w<=200)(w-120)*0.413+10*0.23(w>200)main(){floatf,m;printf(“inputweight:”);scanf(“%f”,&w);if(w>200)f=(w-120)*0.413+10*0.23;elseif(w>50)f=w*0.313;elsef=w*0.205;printf(“w=%f,f=%f\n’,w,f);}5.3.2条件运算符1.条件运算符与条件表达式条件运算符的优先级:2.条件表达式与if语句的比较当if语句中嵌套的语句是赋值语句,而且两个分支都给同一个变量赋值时,条件表达式能替代if语句。如下面的写法是错误的:例:把输入字符中的小写字符转换成大写并输出。main(){inta,b,c,t,max;scanf("%d%d%d",&a,&b,&c);t=(a>b)?a:b;max=(t>c)?t:c;printf("max=%d\n",max);}5.3.3switch语句执行过程:例如:switch(grade){case‘A’:printf(“85~100”);case’B’:printf(“70~84”);case’C’:printf(“60~69”);case‘D’:printf(“<60”);default:printf(“error”);}用break语句处理后的程序段:完整程序:流程图为:5.3.4标号语句和goto说明:main(){inti,sum=0;i=1;loop:if(i<100){sum=sum+1;i++;gotoloop;printf(“%d”,sum);}}二、用goto语句和if语句构成循环5.4选择结构程序设计举例main(){intyear,leap=0;scanf(“%d”,&year);/*输入年份值*/if((year%4==0&&year%100!=0)||(year%400==0))leap=1;elseleap=0;if(leap==1)printf(“%disleap”,year);elseprintf(“%disnotleap”,year);}例已知基本运费、货重,以及路程(s)和折扣的关系标准如下:250500100020003000程序为:main(){intc,s;floatp,w,d,f;scanf(“%f,%f,%d”,&p,&w,&s);if(s>=3000)c=12;elsec=s/250;/*按250分类*/switch(c){case0:d=0;break;/*s<250*/case1:d=2;break;/*250≤s<500*/case2:/*500≤s<750*/case3:d=5;break;/*750≤s<1000*/case4:/*1000≤s<1250*/case5:/*1250≤s<1500*/case6:/*1500≤s<1750*/case7:d=8;break;/*1750≤s<2000*/ca