第二节 switch语句-【单招零距离】计算机专业综合(下)

2025-04-23
| 2份
| 11页
| 69人阅读
| 0人下载

内容正文:

 4.3 5.2 2 【技能实践】  1.(1)floatx,y;  (2)(x>-1)  (3)(x>=0)  (4)y=fabs(x-log(5)/log(10))  2.year%4==0&&year%100||year%400==0  3.(1)c=getchar()  (2)isalpha(c)  (3)isdigit(c)  4.(1)c=c+5  (2)c=c+5-26  5.(1)scanf("%f%f%f",&a,&b,&c); 改为scanf("%lf%lf%lf",&a,&b,&c);  (2)a+b>c&&a+c>b 改为a+b>c&&a+c>b&&b+c>a  (3)a==b==c改为a==b&&b==c  6.#include<stdio.h>  intmain() { doublex; scanf("%lf",&x); printf("%.2lf,",x); if(x<0)printf("error!"); elseif(x<60)printf("%c",'F'); elseif(x<70)printf("%c",'E'); elseif(x<80)printf("%c",'D'); elseif(x<90)printf("%c",'C'); elseif(x<100)printf("%c",'B'); elseif(x==100)printf("%c",'A'); elseprintf("error!"); } 第二节 switch语句 【知识梳理】 一、switch的用法 2.相等 break 3.(1)分号 (2)整 字符 (3)":" 常 变 1 整 字符 三、switch与多分支if的关联 1.多 2.1 从匹配处向下依次执行 break 【巩固练习】  1.4  2.∗∗0∗∗ ∗∗2∗∗  3.a=2  4.passwarn67  5.m=3 【拓展练习】  1.AB  2.a=5,b=6  3.23  4.(1)'a' (2)'b' (3)'c' (4)'d' (5)break;  5.(1)m (2)len=31 (3)len=29 (4)break; 【技能实践】  1.Welcome!  2.(1)c=(int)(s/200) (2)printf("%f",p∗w∗s∗(1-d/100.0));  3.(1)switch(pk=getchar())  (2)case'6':case'7':case'8':case'9':f=-1;break;  (3)case'A':case'J':case'K':case'Q':f=0;break;  (4)case'w':case'W':f=1;break;  (5)if(f==-1)printf("落选");  (6)elseif(f==0)printf("待定");  (7)elseif(f==1)printf("晋级");  4.#include"stdio.h" main() { intn; scanf("%d",&n); if(n<1||n>12)   printf("输入出错!"); else { switch((n-1)/3) { case0:printf("春季!");break; case1:printf("夏季!");break; case2:printf("秋季!");break; case3:printf("冬季!");break; } } } 第3节 选择结构应用举例 【巩固练习】  1.2022isnotaleapyear  2.0.600000  3.ch>='A'&&ch<='Z' ch=ch-32  4.(1)31   (2)year%4==0&&year%100! =0||year%400 ==0 􀅰61􀅰 单招零距离􀅰计算机专业综合􀅰下册 总复习方案·第四章 选择结构程序设计 6. 程序设计题:根据成绩,输出其等级。用多分支if语句实现。等级标准如下表所示: 分数x 等级 x-100 A 90x100 B 80<x90 C 70<x<80 D 60x<70 E x~60 1 共include<stdio.h int main) *END4 第二节 switch语句 知识体系 [switch的用法 break的用法 switch 嵌套switch 多分支if与switch的关联 知识梳理 一、switch的用法 实际问题中常常需要用到多个分支的选择,这些当然可以用嵌套的f语句来处理,但往 往造成if嵌套的层次很多,使程序完长,不便于阅读。此时,便可使用switch语句实现。 1.一般形式: switch(表达式 ) case常量表达式1:语句1:[break;] case常量表达式2:语句2;break; case常量表达式3:语句3;[break:] .59. 单招零距离·计算机专业综合·下册 ._..... case常量表达式n:语句n;[break;] [default:语句n十1;] 2. 执行过程:当表达式的值与某个case后常量表达式的值 时,便从该case后的 语句开始执行,直至执行到 语句或执行到switch语句结束;若所有case后的常量表 达式与表达式的值均不等时,则执行default后的语句,且default书写位置不影响表达式与 case后常量表达式的匹配。 3.注意点: (1)switch(表达式)后不能接" 型或 (2)switch(表达式)中,表达式的类型必须为 型,不允许是浮点型; 量,不能为 ,常量表达式必须为 (3)case常量表达式后接 量,目 个,其类型必须为 仅有 型或 型,不允许是浮点型; (4)同一个switch语句中的所有case后面的常量表达式的值都必须互不相同 (5)当语句超过一条时,可以不用括起来; (6)break语句用于跳出它所在的switch语句,否则会继续依次执行其后的case后的语句。 二、switch语句的嵌套 1.一般形式: switch(表达式1) __ case常量表达式:语句:[break; case常量表达式: switch(表达式2) case常量表达式:语句;[break:] case常量表达式:语句;break: .____. case常量表达式:语句;[break;] [default:语句:] [break;] .____. case常量表达式:语句:break: [default:语句;] 2. 注意点:break语句仅跳出其所在层的switch语句,而不能跳出外层的switch语句。 三、switch与多分支if的关联 1. 两者均是有 条分支; 条分支;而switch会 2. 多分支if至多会执行 ,若需 终止其继续执行,则分支后应加 语句。 .60. 总复习方案·第四章 选择结构程序设计 典例精析 【例1】 程序阅读题: #include <stdio.h> int main() 、 char grade-C; switch(grade) case'A':printf(“90-10o ”); case'B:printf(“80-9o ”); case'C':printf(“70-80 ”); case'D':printf(“60-7o ”);break; case'E':printf(“<6on”); default:printf(“error!)n”) _{ 【分析】 本题的执行过程为:首先从键盘接收一个字符C并将其放在变量grade中,然后 执行switch语句。switch后面的条件表达式为grade,则表达式的值为字符C,用字符C依次 与下面的case中的常量进行匹配。与第3个case后的常量匹配,则从其后的语句开始往下执 行程序(在执行过程中不再进行匹配。)因此先执行printf(“70一80 ”);,屏幕上输出70一80 并换行;再往下继续执行printf(“60一70 ”),屏幕上输出60一70,并换行;再继续执行break 此时跳出switch语句。 【答案】 70-80 60-70 【例2】运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下: s250km 没有折扣 250<s<500 2%折扣 500s1000 5%折扣 1000<s2000 8%折扣 2000s3000 10%折扣 3000<s 15%折扣 设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公 式为:f一p*w*s*(1一d),请编程实现 【分析】首先分析折扣变化的规律性:折扣的“变化点”都是250的倍数,设c的值为s 250,即c代表250的倍数。则c和折扣之间的关系如下; c1,无折扣; 1<c2,折扣d-2% 2c5,d-5% 4<c8,d-8% .61. 单招零距离·计算机专业综合·下册 8 c 12,d-10% c12,d-15% 【答案】 #include <stdio.h int main() int c,s; float p,w,d,f; scanf(”%f,%f,%d”,&p,&.w,&s) if(s-3000)c-12; else c-s/250; switch(c) ) case 0:d-0:break case 1:d-2;break; case 2: case 3: d-5;break; case4: case5: case6: case 7: d-8;break; case8: case9: case 10: case 11:d-10;break; case 12:d-15;break ) f-p*w*s×(1-d100.0); printf("freight-%15,4fn",f; 巩固练习 1. 若inti一1;执行下列程序段后,变量i的值是 switch(i) (case0:i十-1; case1:i+-1: case2:i+-1; default:i+-1; . 62· 总复习方案·第四章 选择结构程序设计 2. 设有说明语句:”inta一1,b一0;”,则执行以下语句后,输出结果为 switch(a) case 1:switch(b) case 0:printf("**0**n”);break; case1:printf(”**1**n”);break; case 2:printf("*×2×* ”);break; ) 3.写出程序的运行结果: #include<stdio.h> int main() ( intx-1,a-0; switch(十十x) default:a十十; case2:a十+: case1:a十+;break: case0:a十 +: ) printf("a-%dn",a); 4.写出程序的运行结果: #includeSstdio.h> #include<ctype.h> int main() )。 char n-C; switch(tolower(n)) /tolower(n)将字符转换为相应小写字母,但变量n中的内容不变。 (default: printf("error");break; case'a':case'b':printf("good"):break: case'c':printf("pass"): case'd':printf("warn"); printf("\t%d",n); 5.写出程序的运行结果: #include <stdio.h> int main() (inta-16,b-15,m-0; switch(a%3) .63. 单招零距离·计算机专业综合·下册 case 0:m十+;break case1:m 十; switch(b%2) . default:m十十; case0:m十十:break: ) break; default:m十+; printf("m=%d ",m); ~ 拓展练习 #C} 1. 阅读下面程序,当从键盘输入字母A时,程序的运行结果为 共include stdio.h intmain() ( char ch; ch一getchar(); switch(ch) case'A':printf(“%c”,A); case'B': printf("%c”,B);break default:printf(“%s ”,”other”) ) 2. 阅读程序,分析结果是 共includestdio. h int main() intx-1,a-2,b-3; switch(x) case0:a十十;b+十; case1:a+十;b+十; case2:a十十;b++; default:a+十;b+十; ) printf("a-%d,b-%dn”,a,b) ) 3. 阅读程序,分析结果是 #includestdio.h intmain() .64· 总复习方案·第四章 选择结构程序设计 ( intx-2; switch(x) case 1:printf("%d”,x十十); case 2:printf(”%d",x十十); case3:printf("%d",x十十);break; default:printf("%d”,x十十); ) ) 4. 程序填空题:输入等级,输出该等级的分数段,评分标准如下: 成绩 等级 90-100 老#心# 70-89 60-79 59以下 #include<stdio.h #include<ctype.h> int main() char grade; scanf("%c”,&.grade) switch(tolower(grade)) { case (1):printf("90-1oo”);break; case (2):printf("70-89"):break; case (3):printf("6o-79");break; case(4):printf("<60”); (5); default: printf("error!") 5.程序填空题;以下程序计算某年某月有几天。一年中1、3、5、7、8、10、12月份为31天, 4、6、9、11月份为30天,闺年的2月为29天,非闺年的2月为28天 共include<stdio.h> int main() ② int y,m,len; printf(”请输入年份与月份:”) scanf("%d%d",&.y,&.m); switch( (1)) case 1:case 3: case 5:case 7:case 8:case 10: case 12: (2) ; break; .65. 单招零距离·计算机专业综合·下册 case 2:len-28; if(y%4-08.8.y%100!-0lly%400-0)(3); (4); case 4:case 6:case 9:case 11: len-30: break; default: printf("error"); ) printf("%d年%d月的天数为%dn”,y,m,len); ) 技能实践 #C} 1. 程序阅读题; #include<stdio.h> int main() ( intx-1,y=0; switch(x) case 1:switch(y) case O: printf("Welcome! n");break; case 1: printf("Good Bye!n");break ) break; case 2:printf("Come in!n"); ) ) 2.程序填空题:运输公司对客户计算运费,输入每吨每千米货物的运费、货物重量、运输 距离,输出总运费。运输距离(以s表示,单位为千米)越远,单位运费(以元/(吨·千米)为单 位)越低。计算标准备如下; (s<200 没有折扣 200s400 2%折扣 400s<800 5%折扣 800s<1600 8%折扣 1600<s<2400 10折扣 2400二s 15%折扣 设每吨每千米货物的运费为p,货物为w,距离为s,折扣为d,则总运费的计算公式为:总 运费-p×w×s×(1-d) 共include<stdio.h> int main() i intc.d; doublep,w,s; scanf(”%lf%lf%lf”,&.p.&.w,&.s): if(s<o|1p<o||w<o) .66. 总复习方案·第四章 选择结构程序设计 printf(”输入出错”) else if (s-2400)c-12; else (1) : switch(c) 1 case 0:d-0;break; case 1:d-2;break; case 2: case 3:d-5;break; case 4: case 5: case 6: case 7:d-8;break; case 8: case 9: case 10:case 11:d-10;break; case 12:d-15;break; (2) 3. 程序改错题:下列程序模拟抽签过程。用符号1~9表示扑克牌A、2~9,用符号A表 示扑克牌10,用符号J、Q、K表示扑克牌J、Q、K,用符号w、W表示扑克牌“小王”、“大王”。若 抽到扑克牌A、2~9表示“落选”,抽到扑克牌10、J、Q、K表示“待定”,抽到扑克牌“小王”、“大 王”表示“晋级”。从键盘输入抽到的牌,输出抽签结果。程序有错,请改正,修改时不得增行或 减行。 共include<stdio.h> int main() r char pk;int f; *found*关***关关关关*关关 switch(getchar(pk)) case 1:case 2.case 3:case 4:case 5: **found*******¥****/ case 6:case 7:case 8:case9:f--1 关*found*关关** 关关*****/ case'A':caseJ':caseK':caseQ':f-0: 关$ound*关关*****关关关关/ case'w':case'W::f-1; default:f--2; 。. (*关*关*****关。 if(f一-1)printf("落选”); .67. 单招零距离·计算机专业综合·下册 else if(f-0)printf("待定") /关*关*关**关*关关*$ound关*※关*关*兴关关关关/ else if(f-1)printf("晋级"); elseprintf(”出错”); 4. 程序设计题:从键盘输入一个整数,如果整数在1一12,则输出对应的季节(月份和季节 对应关系如下表所示),否则输出“输入出错!”。 #includestdio.h>int main( ) 关关 关关 *关关 **BEGIN** 关*关* 苦 *关 月份 季节 1-3月 春季 4一6月 夏季 7一9月 秋季 10-12月 冬季 * 关**关关*关关END*关*关关关关关关 第二节 选择结构应用举例 知识体系 [分段函数问题(如商场打折、行李计费、IP地址分类问题等 最大值最小值问题 间年问题 选择结构应用举例方程求解 日期相关问题 四则运算 知识梳理 选择结构通过判断某些特定条件是否满足来决定下一步的执行流程,是非常重要的控制 结构。常见的有单分支选择结构、双分支选择结构、多分支选择结构以及嵌套的分支结构,形 式灵活多变。 C语言中的选择结构语句有两种:if语句和switch语句。switch语句一般用于判断固定 值的时候;if语句用于判断区间或范围的时候。用switch语句能实现的,用f语句都能实现 反之则不然。 .68.

资源预览图

第二节 switch语句-【单招零距离】计算机专业综合(下)
1
第二节 switch语句-【单招零距离】计算机专业综合(下)
2
第二节 switch语句-【单招零距离】计算机专业综合(下)
3
第二节 switch语句-【单招零距离】计算机专业综合(下)
4
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。