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

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

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

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

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

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

第四章 选择结构程序设计§4.1if语句的基本形式 §4.2if语句的嵌套 §4.3switch语句 §4.4程序举例本节主要内容if语句构成的选择结构是C的三种基本结构之一,用来确定给定的条件是否满足,所含条件一般是关系表达式或逻辑运算表达式。一、if语句的三种基本形式2.格式:if(表达式) 语句组1; else 语句组2; 功能:判断表达式的值,若为非0,执行语句组1,否则 执行语句组2。例1.求a和b两数中较大的一个。main() {inta,b,max; scanf("%d,%d",&a,&b); if(a>b)max=a; elsemax=b; printf("Themaxofaandb:%d\n",max); }3.多分支的if结构格式:if(表达式) if(表达式1)语句1 else语句2 elseif(表达式2)语句3 else语句4注意:在if语句的“语句1”或“语句2”中又包含着if语句注意:if语句中进行条件判断的“表达式”必须用()括起来且不可省略。例题1.if语句中的条件表达式必须用()括起来,并且在括号外部没有分号; 2.If或else子句后面的执行语句均有分号; 3.else是If语句的子句,不可单独使用; 当if或else子句后是多个执行语句构成的语句组时(复合语句),必须用{}括起来,否则各子句均只管到其后第一个分号处; 5.If或else子句后只接一个分号时,应把之作为空语句处理。格式:switch(表达式) {case常量表达式1:语句1;break; case常量表达式2:语句2;break; …….. case常量表达式n:语句n;break; default:语句n+1; break; }例5:按照考试成绩输出百分制分数段。main() {floatx,y;charc;doubler; scanf(“%f,%f,%c”,&x,&y,&c); switch(c) {case‘+’:r=x+y;break; case‘-’:r=x-y;break; case‘*’:r=x*y;break; case‘/’:r=x/y;break; } printf(“%lf”,r); }2case后的每个常量表达式必须各不相同例1、银行如何根据存入现金和年限计算本金+利息?(类似书P70例9)main() { intY;/*表示年*/ floatm,r,t;/*本金,月利率,本利合计*/ printf("Inputmoneyandyear=?"); scanf("%f%d",&m,&Y);/*输入本金和年限*/ if(Y==1)r=0.005;/*根据年限定利率*/ elseif(Y==2)r=0.006; elseif(Y>=3&&Y<5)r=0.0065; elseif(Y>=5&&Y<8)r=0.008; elseif(Y>8)r=0.010; elser=0.0; t=m+m*r*12*y; printf("Total=%f\n",t); }例2:输入年、月、计算该月有多少天?main() {intyear,month,days; printf(“Enteryear&month\n”); scanf(“%d,%d”,&year,&month); switch(month) {case1: case3: case5: case7: case8: case10: case12:days=31;break;case4: case6: case9: case11:days=30;break; case2:if((year%4==0)&&(year%100!=0) ||(year%400)==0)days=29; elsedays=28;break; default:printf(“Entererror!\n”);days=0;break; } if(days!=0) printf(“%d\n”,days); }二、开关语句(基本形式,功能,要求,break的作用, 和default的作用)。1.能正确表示“当x的取值在[1,10]和[200,210]范围内的式子是() A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1||(x<=10)&||(x>=200||x<=210) C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210) 2.判断char型变量c1是否为小写字母的正确表达式为() A.‘a’<=c1<=‘z’B.(c1>=a)&&(c1<=z) C.(c1>=‘a’)||(c1<=‘z’)D.(c1>=‘a’)&&(c1<=‘z’) 3.设有:inta=1,b