资源描述:
《选择结构程序设计习题解答》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章选择结构程序设计习题解答根据某个变量或表达式的值作出选择,决定执行哪些语句而不执行哪些语句。这样的程序结构称为选择结构或分支结构。实现选择结构的语句有:分支语句(if语句)和多分支语句(switch语句)选择结构程序设计if-else择条件语句选择结构的一种最常用形式:if(表达式)语句1;else语句2;语句3执行过程:当括号内表达式成立时,即表达式的值是非0时,执行语句1,然后语句3;当表达式不成立时,值等于0时,执行语句2,然后语句3,上面else部分也可以没有。if多分支选择语句表达式1先判断表达式1的值真语句1非0就
2、执行下面的语句假表达式2为0就执行下一个判断表达式3语句4语句3语句2真真假假一直这样做下去直到得出最后结果if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;…………else语句4;语句5;开关语句--switch功能格式开关语句就像多路开关一样,程序可根据一个表达式可能产生的不同结果值,选择其中一个——独立分支结构,或几个分支的语句——非独立分支结构去执行。switch(表达式){case常量1:语句系列1case常量2:语句系列2……case常量m:语句系列mdefault:语句系列m+
3、1}说明⑴switch后括号内表达式的值只能是整形、字符型或枚举类型,每个常量的类型和表达式的类型应相同,每个语句序列可以是零个或若干个语句。case3:case4:printf(“%d”,d1);break;default:⑵执行时,先求表达式的值,然后自上而下依次测试每一个常量,若与常量I相匹配,则从其后的语句序列i开始执行每个语句序列,若没有常量与之匹配,则执行default后面的语句序列——非独立分支结构。若只执行语句系列I,则在语句系列I后加break语句——独立分支结构。switch(表达式){case常量1:语句系列1;b
4、reak;case常量2:语句系列2;break;……case常量m:语句系列m;break;default:语句系列m+1;}⑶由于每个case语句后的常量只起语句标号的作用,所以它们的值必须互不相同,否则会出现互相矛盾的现象(C语言系统不允许,编译出错)。case1:case1:case3:⑷独立分支时每个case语句和default语句的出现的前后次序发生改变时,不影响运行结果,但在一般情况下,常量出现频率较高的放在前面。case1:case1:default:case2:case2:case3:case3:deault:7、解#
5、include"stdio.h"voidmain(){charc1,c2;scanf("%c%c",&c1,&c2);if((c1-c2)%2==0)printf("%c,%c",c1+1,c2+1);elseprintf("%c,%c",c1-1,c2-1);}开始输入两字符判断两字符之差是否为偶数输出它们的后继输出它们的前驱结束NY8、解#include"stdio.h"voidmain(){inta,b;scanf("%d%d",&a,&b);if(a%b==0)printf("a/b=%d",a/b);elseprintf(
6、"a/b=%d,%d",a/b,a%b);}9、解:#include"stdio.h"voidmain(){floatx,y;scanf("%f%f",&x,&y);if((x-2)*(x-2)+(y-2)*(y-2)>1)printf("点A在圆外");elseif((x-2)*(x-2)+(y-2)*(y-2)==1)printf("点A在圆上");elseprintf("点A在圆内");}10解:开始输入年、月判断是否为闰年用一整型变量标识,1表示是,0表示否结束YMonth==1、3、5、7、8、10、12?Mo
7、nth==4、6、9、11?Month==2闰年Month==其它值输出31天输出30天输出数据错误YYY输出29天N输出28天NNN#include"stdio.h"voidmain(){intyear,month,leap;scanf("%d%d",&year,&month);/*判断是否为闰年*/if(year%400==0
8、
9、(year%100!=0&&year%4==0))leap=1;elseleap=0;switch(month){case1:printf("Thismonthhas31days");break;cas
10、e2:{if(leap==1)printf("Thismonthhas29days");elseprintf("Thismonthhas28days");break;}case3:printf("T