资源描述:
《第5讲 选择结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第四讲 选择结构程序设计C语句概述选择结构程序设计4.1C语句概述C语句:以“;”作分隔符,编译后产生机器指令C语句分类表达式语句:表达式加分号构成如:total=total+limit;a=3;a>b;func();printf(“Hello,world!”);分支if()~else~switch循环for()~while()~do~while()辅助控制continuebreakgotoreturn空语句:;程序控制语句(9种)复合语句:用{…}括起来的一组语句一般形式:{[数据说明部分;]执行语句部分;}说明:“}”后不加分号语
2、法上和单一语句相同复合语句可嵌套main(){inta,b;a=10;printf(“%d,%d”,a,b);}4.2选择结构程序设计if语句(条件选择语句)if语句的三种形式形式一:格式:if(exp)statement形式二:格式:if(exp)statement1elsestatement2执行过程执行过程expstatement非0=0expstatement1statement2非0=0if(x>y)max=x;elsemax=y;例:if(x>y)printf(“%d”,xz);例:形式三格式:执行过程:if(exp1)sta
3、tement1elseif(exp2)statement2elseif(exp3)statement3…[elsestatement]exp1statement1非0=0exp2exp3statementstatement3statement2非0非0=0=0if(salary>1000)index=0.4;elseif(salary>800)index=0.3;elseif(salary>600)index=0.2;elseif(salary>400)index=0.1;elseindex=0;例:说明:第二、第三种形式的if语句中,在
4、每个else前面有一个分号,整个语句结束出有一个分号。If(x>0)printf(“%f”,x);elseprintf(“%f”,-x);在if和else后面如果有多个操作语句,此时用“{}”将几个语句括起来形成一个复合语句If(a+b>c&&b+c>a&&c+a>b){s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%6.2f”,area);}elseprintf(“itisnotatrilateral”);说明:if后面的表达式类型任意语句可以是复合语句考虑下面程序的
5、输出结果:/*EX5-1.C*/main(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y)x=y;y=x;elsex++;y++;printf(“%d,%d”,x,y);}CompileError!if(a==b&&x==y)printf(“a=b,x=y”);if(3)printf(“OK”);if(a=2)printf(“%d”,’a’);Error…9:Misplacedelseinfunctionmain/*ex5-2.c*/main(){floata,b,t;scanf("%f,%f",&a,&b)
6、;if(a>b){t=a;a=b;b=t;}printf(“%5.2f,%5.2f",a,b);}3.6,-3.2-3.20,3.60例5-2输入两个实数,按代数值由小到大输出例5-3输入三个数,要求按由小到大顺序输出分析:Ifa>b将a和b对换Ifa>c将a和c对换Ifb>c将b和c对换需要定义几个变量??才能完成对换??在有“变量对换”这一类的操作中,都要定义一个暂存变量,常起名为temp或者t/*ex5-3.c*/main(){floata,b,c,t;scanf(“%f,%f,%f”,&a,&b,&c);if(a>b){t=a
7、;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf(“%5.2f,%5.2f,%5.2f”,a,b,c);}3,7,11.00,3.00,7.00例5-3输入三个数,要求按由小到大顺序输出例5-4写程序,判断某一年是否是闰年判断闰年的条件是:能被4整除,且不能被100整除 或 能被400整除/*ex5-4.c*/main(){intyear,leap;scanf("%d",&year);leap=0;if((year%4==0&&year%100!=0)
8、
9、(yea
10、r%400==0))leap=1;if(leap==1)printf(“%disaleapyear”,year);elseprintf(“%disnotaleapyear”,year);}20