长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第五章 选择结构程序设计(2/2)

第5章第4节 §54 switch语句 多分支选择结构,即“多选一”,常用于设计菜单 switch语句的形式 switch(表达式) {case常量表达式1:语句1; case常量表达式2:语句2; case常量表达式n:语句n; default:语句n+1 二 switch语句的执行过程 成立,则执行语句,然后执行下一个 case语句中和语句计+1,继续向下 判该 case,…,:行 defaul:中的语句n1,结 计算 switch)中值?ca中人束 表达式的值常量表达式 i>的值 不成立,执行 defaul:中的语句n+1, 结束
第5章 第4节 §5.4 switch 语 句 多分支选择结构,即“多选一”,常用于设计菜单 一. switch语句的形式 switch(表达式) {case 常量表达式1:语句1; case 常量表达式2:语句2; ..... case 常量表达式n:语句n; default : 语句n+1 } 二. switch语句的执行过程 计算switch()中 表达式的值 判该 值?=case 中的值 成立,则执行语句i, 然后执行下一个 case 语句中和语句i+1 ,继续向下一个 case, .....执行defaul : 中的语句n+1,结 束。 不成立,执行defaul : 中的语句n+1, 结束

第5章第4节 解决办法:语句后面加 break语句 switch(表达式) {case常量表达式1:语句1; break; case常量表达式2:语句2; break; case常量表达式n:语句n; break; default:语句n+1 例:输入一个考试分数,输出成绩等级(优、良、中等、及格、不及格) 解法一:用 ifa. else if语句实现 main float score prin(“输入分数”); scanf(“%r”,& rscore); if( score>=90.0) printf(“成绩为:优n”); else if( score>=80.0) printf(“成绩为:良好\n) else if( score>=70.0) printf(“成绩为:中等n”) else if( score>=60.0) printf(“成绩为:及格Ⅶn”); else printf(“成绩为:不及格Ⅷ”);
解决办法:语句i后面加break语句 第5章 第4节 switch(表达式) {case 常量表达式1:语句1;break; case 常量表达式2:语句2;break; ..... case 常量表达式n:语句n;break; default : 语句n+1 } 例: 输入一个考试分数,输出成绩等级(优、良、中等、及格、不及格) 解法一:用if... else if 语句实现 main() {float score; printf(“输入分数:”); scanf(“%f”,&score); if (score>=90.0) printf(“成绩为:优\n”); else if (score>=80.0) printf(“成绩为:良好\n”); else if (score>=70.0) printf(“成绩为:中等\n”); else if (score>=60.0) printf(“成绩为:及格\n”); else printf(“成绩为:不及格\n”); }

第5章第4节 解法二:用if语句实现 main Float score printf(“输入分数:”); scanf(“%r”,& rscore); if( score>=90.0) print(“成绩为:优m”); if( score>=80.0&& score=70.0&& score=60.0&& score<70.0) printf(“成绩为:及格\n”); if( score<60.0) printf(“成绩为:不及格n”);} 想一想if…和i. else if语句在这 个例子中有什么异同???
第5章 第4节 main() {float score; printf(“输入分数:”); scanf(“%f”,&score); if (score>=90.0) printf(“成绩为:优\n”); if (score>=80.0 &&score=70.0&&score=60.0&&score<70.0) printf(“成绩为:及格\n”); if (score<60.0) printf(“成绩为:不及格\n”);} 解法二: 用if... 语句实现 想一想if ....和if...else if 语句在这 个例子中有什么异同???

第5章第4节 解法三:用 switch语句实现 mainO Float score; int print“输入分数:”); scanf(“%r”,& score); i=(int)(score/10.0) switch (i Case 10:; case9: printf(“成绩为:优Ⅷ”); break; case8: printf“成绩为:良好m”); break; case7: printf(“成绩为:中等m”); break; case6: printf(“成绩为:及格Ⅶn”); break; default: printf(“成绩为:不及格in”);}
main() {float score; int i; printf(“输入分数:”); scanf(“%f”,&score); i= (int)(score/10.0); switch(i) {case 10: ; case 9: printf(“成绩为:优\n”); break; case 8: printf(“成绩为:良好\n”); break; case 7: printf(“成绩为:中等\n”); break; case 6: printf(“成绩为:及格\n”); break; default: printf(“成绩为:不及格\n”); } } 解法三: 用switch 语句实现 第5章 第4节

第5章第4节 有关说明 1) switch(表达式 任何类型(ANSI新标准) 常用:整型表达式 1字符型表达式 2)可以多个cae共用一组语句枚举型 switch(i) icase 10: case9: printf(“成绩为:优m”); break; case8: printf(“成绩为:良好n”; break; case7: printf(“成绩为:中等n”); break; case6: printf、成绩为:及格”); break; default: printi(“成绩为:不及格”);} 3)加入 break语句后,各个case及deau的次序不影响结果 switch(i) { default: printf(“成绩为:不及格n”; break; case 10: case9: printf(“成绩为:优ln”); break; case8: printf“成绩为:良好Ⅷm”; break; case7: printf“成绩为:中等m”; break; case6: printf(“成绩为:及格”; break;}
第5章 第4节 三 . 有关说明 1). switch (表达式) 任何类型(ANSI新标准) 常用:整型表达式 字符型表达式 枚举型 2). 可以多个case共用一组语句 switch(i) {case 10: case 9: printf(“成绩为:优\n”); break; case 8: printf(“成绩为:良好\n”); break; case 7: printf(“成绩为:中等\n”); break; case 6: printf(“成绩为:及格\n”); break; default: printf(“成绩为:不及格\n”); } 3)加入break语句后,各个case及default的次序不影响结果 switch(i) {default: printf(“成绩为:不及格\n”); break; case 10: ; case 9: printf(“成绩为:优\n”); break; case 8: printf(“成绩为:良好\n”); break; case 7: printf(“成绩为:中等\n”); break; case 6: printf(“成绩为:及格\n”); break;}

第5章第5节 §55程序举列 P10557给一个不多于5位的正整数,要求:1)求出它是几位数,2)分别 打印出每一位数字,3)按逆序打印了各位数字,例如原数为123,应输出321 思考:1)根据数值大小来判断其位数2)必须分离各位数上的数字 程序:法 main( dlong a; int b, i, j, k, l, m; printf(“ input a data:"”); scanf(“old”,&a); if(a<10)b=1; else if (a<100)b=2 else if (a<1000)b=3 else if (a<10000)b=4; else b=5 a%10;a=a/10; =a%10;a=a/10; k=a%10;a=a/10: l=a%10;a=a/10; m=a%10;a=a/10; printf(“%d,%d,%d,%d,%d,%dn”,b,ii,k】,m)
§5.5 程序举列 第5章 第5节 P105 5.7 给一个不多于5位的正整数,要求:1)求出它是几位数, 2)分别 打印出每一位数字,3)按逆序打印了各位数字,例如原数为123,应输出321。 思考:1)根据数值大小来判断其位数 2)必须分离各位数上的数字。 程序:法一: main() {long a; int b,i,j,k,l,m; printf(“input a data: ”); scanf(“%ld”,&a); if (a<10) b=1; else if (a<100) b=2; else if (a<1000) b=3; else if (a<10000) b=4; else b=5; i=a%10; a=a/10; j=a%10; a=a/10; k=a%10; a=a/10; l=a%10; a=a/10; m=a%10; a=a/10; printf(“%d,%d,%d,%d,%d,%d\n”,b,i,j,k,l,m) }

第5章第5节 程序:法二: maino flong a; int b, i,j, k, l, m printf(“ input a data:"”); scanf(“%ld”,&a); if(a<10)b=1; else if (a<100)b=2 else if (a<1000)b=3; else if(a≤1000)b=4; else b=5: m=a/100007 l=(a-m*10000y1000 k=(am*10000421000)/100; (a-m21000011000-k*100)/10; i=a-m21000011000kx100-10; printi(“%d,%d,%d,%d,%d,%dn”,b,ii,kl,m)
程序:法二: main() {long a; int b,i,j,k,l,m; printf(“input a data: ”); scanf(“%ld”,&a); if (a<10) b=1; else if (a<100) b=2; else if (a<1000) b=3; else if(a<1000) b=4; else b=5; m=a/10000; l=(a-m*10000)/1000; k=(a-m*10000-l*1000)/100; j=(a-m*10000-l*1000-k*100)/10; i=a-m*10000-l*1000-k*100-j*10; printf(“%d,%d,%d,%d,%d,%d\n”,b,i,j,k,l,m) } 第5章 第5节

第5章第5节 P1055,10 思考:凡落入圆中的点,则 z10.0,否则z=0.0。 程序: 0 maint Float x, y,z; int a,bcd: printf((“ inputx,y=“); scanf(“%f,%f,&x,<y) a=(x-2)*(x-2)+(y-2)*(y-2)<=1): b=(x-2)*(x-2)+(y+2)*(y+2)<=1); c=(X+2)*(x+2)+(y+2)*(y+2)<=1); d=(x+2)(x+2)+(y-2)*(y-2)<=1); if(ablc)F10: else z0.0: print(“x,y,z%10.3f,%10.3f,%10.3fn”,x2y,z);
第5章 第5节 P105 5.10 -2 2 -2 2 思考:凡落入圆中的点,则 z=10.0,否则z=0.0。 程序: main() {float x,y,z; int a,b,c,d; printf(“input x,y=“); scanf(“%f,%f”,&x,&y); a=((x-2)*(x-2)+(y-2)*(y-2)<=1); b=((x-2)*(x-2)+(y+2)*(y+2)<=1); c=((x+2)*(x+2)+(y+2)*(y+2)<=1); d=((x+2)*(x+2)+(y-2)*(y-2)<=1); if(a||b||c||d) z=10; else z=0.0; printf(“x,y,z=%10.3f,%10.3f,%10.3f\n”,x,y,z); }

第5章第5节 例如图所示,在xy直角坐标系中有一个 锥体,锥底在xoy平面上,底部半径为5, 圆心位于座标系0点,锥高10,输入任意x, y坐标值后,要求输出对应的道值。即, (xy)对应的点在锥体以外时,输出z0 (x,y)对应的点在锥体以内时,则输出锥面 上对应的z值。 解:若:√x2+y225 在圆锥外,故z=0 若:√x2+y2<5 由10=5得: z-105P1020=10-2Vx2+y
第5章 第5节 例. 如图所示,在xyz直角坐标系中有一个 锥体,锥底在xoy平面上,底部半径为5, 圆心位于座标系0点,锥高10,输入任意x, y坐标值后,要求输出对应的z值。即, (x,y)对应的点在锥体以外时,输出z=0; (x,y)对应的点在锥体以内时,则输出锥面 上对应的z值。 x y z 10 5 o 解: ρ 5 2 2 若: x +y 在圆锥外,故z=0 若: 5 2 2 x +y z 5 5 10 − = z 5 由 得: 2 2 10 2 10 2 5 5 z 10 = − = − x +y − =

第5章第5节 程序 # include” math. h” main 0 floata,y, z,p; printf“ inputx,y=“); scanf(“%of,%r”,&x,&y); p=sqrt(x*x+y*y); if(p>=50)z0.0 else z10 0-2* print(“x,y,z%10.3,%10.3f,%10.3fn”,x,yz)
第5章 第5节 程序: #include”math.h” main() {float x,y,z,p; printf(“input x,y=“); scanf(“%f,%f”,&x,&y); p=sqrt(x*x+y*y); if (p>=5.0) z=0.0 else z=10.0-2*p printf(“x,y,z=%10.3f,%10.3f,%10.3f\n”,x,y,z); }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第六章 循环控制(1/2).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第六章 循环控制(2/2).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第七章 数组(1/2).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第七章 数组(2/2).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第八章 函数(1/3).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第八章 函数(2/3).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第八章 函数(3/3).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第九章 预处理命令.ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第十章 指针(1/3).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第十章 指针(2/3).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第十章 指针(3/3).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第十一章 结构体与共用体(1/2).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第十一章 结构体与共用体(2/2).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第十二章 位运算.ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第十三章 文件.ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第一章 C语言概述(主讲:张强).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第二章 计算机算法(1/2).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第二章 计算机算法(2/2).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第三章 数据类型、运算符与表达式(1/2).ppt
- 长江大学:《C语言程序设计》课程教学课件(PPT讲稿)第三章 数据类型、运算符与表达式(2/2).ppt
- 《ASP.NET 程序设计基础篇》PDF电子书(林煌章).pdf
- 高职高专现代信息技术系列教材:《数据结构》课程教学资源(PPT课件)第一章 数据结构基础概论.ppt
- 高职高专现代信息技术系列教材:《数据结构》课程教学资源(PPT课件)第七章 查找.ppt
- 高职高专现代信息技术系列教材:《数据结构》课程教学资源(PPT课件)第三章 栈和队列.ppt
- 高职高专现代信息技术系列教材:《数据结构》课程教学资源(PPT课件)第九章 文件.ppt
- 高职高专现代信息技术系列教材:《数据结构》课程教学资源(PPT课件)第二章 线性表.ppt
- 高职高专现代信息技术系列教材:《数据结构》课程教学资源(PPT课件)第五章 树和二叉树.ppt
- 高职高专现代信息技术系列教材:《数据结构》课程教学资源(PPT课件)第八章 排序.ppt
- 高职高专现代信息技术系列教材:《数据结构》课程教学资源(PPT课件)第六章 图.ppt
- 高职高专现代信息技术系列教材:《数据结构》课程教学资源(PPT课件)第四章 串和数组.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第10章 电子商务的发展与应用.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第1章 电子商务概述.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第2章 电子商务技术基础.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第3章 电子商务安全.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第4章 电子商务的网上支付.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第5章 网络经济.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第6章 网络营销.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第7章 电子商务物流.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第8章 电子商务法律问题及税收.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第9章 电子商务解决方案.ppt