




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本讲主要内容: 一、if语句 二、switch语句 学习目的与要求: 掌握if语句的三种方式if,if-else,if-else if 及其执行过程; 掌握if语句嵌套概念; 掌握条件运算; 掌握多路分支switch语句的格式及其执行过程。 学习重点:if语句和switch语句的格式及其执行过程。 学习难点:if语句的嵌套;switch语句的执行过程。 if语句条件选择语句if语句的三种方式方式一:格式:if (expression) statement执行过程:exprstatement非0=0例:if (xy) printf(“%d,x);exprstatement1statement2非
2、0=0l方式二:l格式:if (expression) l statement1l elsel statement2l执行过程:例:if (xy) max=x; else max=y;l方式三:l格式:if ( expr1 ) statement1else if (expr2 ) statement2else if (expr3 ) statement3. else statementn expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0u执行过程: 例:if (salary1000) index=0.4; else
3、if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; else index=0; 如:if(a=b&x=y) printf(“a=b,x=y); if(3) printf(“OK); if(a) printf(“%d,a);l阐明:lif后面的表达式类型恣意u语句可以是复合语句u if(x) if(x!=0)u if(!x) if(x=0)例 思索下面程序的输出结果: #include main() int x,y; scanf(“%d,%d,&x,&
4、;y); if(xy) x=y; y=x; else x+; y+; printf(“%d,%dn,x,y);Compile Error!/*ch4_1.c*/#include main() int x,y; printf(Enter an integer:); scanf(%d,&x); y=x; if(yabsolute value:%dn,x,y);例 求一个数的绝对值运转:Enter an integer:-12 integer:-12-absolute value :12/*ch4_2.c*/#include main() int a,b; printf(Enter inte
5、ger a:); scanf(%d,&a); printf(Enter integer b:); scanf(%d,&b); if(a=b) printf(a=bn); else printf(a!=bn);例 输入两个数并判别两数相等否运转:Enter integer a:12 Enter integer b:12 a=b 运转:Enter integer a:12 Enter integer b:9 a!=b /*ch4_3.c*/#include main() char c; printf(Enter a character:); c=getchar(); if(c=0&
6、amp;c=A&c=a&c=z) printf(The character is a lower lettern); else printf(The character is other charactern);例 判别输入字符种类运转:Enter a character: The character is a control character运转:Enter a character:8 The character is a digit运转: Enter a character: D The character is a capital letter运转: Enter a c
7、haracter: h The character is a lower letter运转: Enter a character:F1 The character is other charactervif语句嵌套:v普通方式:if (expr1) if (expr2) statement1 else statement2else if(expr3) statement3 else statement4内嵌if内嵌ifif (expr1) if (expr2) statement1 else statement2内嵌ifif (expr1) if (expr2) statement1else
8、statement3 内嵌ifif (expr1) statement1else if(expr3) statement3 else statement4内嵌if例 输入两数并判别其大小关系/*ch4_4.c*/#include main() int x,y; printf(Enter integer x,y:); scanf(%d,%d,&x,&y); if(x!=y) if(xy) printf(XYn); else printf(XYn); else printf(X=Yn);运转:Enter integer x,y:12,23 XY Enter integer x,y:
9、12,12 X=Ylif else 配对原那么:缺省 时,else总是和它上面离它最近的未配对的if配对if()if()if()else.else.else.例: if (a=b) if(b=c) printf(“a=b=c); else printf(“a!=b);修正: if (a=b) if(b=c) printf(“a=b=c); else printf(“a!=b);实现if else 正确配对方法:加 例 思索下面程序输出结果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(a60n); break; .例 switch(score)
10、case 5: printf(“Very good!); case 4: printf(“Good!); case 3: printf(“Pass!); case 2: printf(“Fail!); default : printf(“data error!); 运转结果:score为5时,输出: Very good! Good! Pass! Fail! data error!例 void main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2:
11、a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d,a,b); 运转结果:a=2,b=1/*ch4_5.c*/#include main() int c; printf(Enter m or n or h or other:); c=getchar(); switch(c) case m: printf(nGood morning!n);break; case n: printf(nGood night!n); break; case h: printf(nHello!n); break; default : printf(n?n); break;
12、例 根据输入字母输出字符串一、if 语句的的综合运用例1:求一元二次方程ax2+bx+c=0的实根解设a0。补充例题:输入恣意三个数,按由大到小顺序陈列输出。补充例题:输入恣意三个数,按由大到小顺序陈列输出。 例例2 2:闰年判别程序。:闰年判别程序。例3:学生成果分等显示程序。学生有数学、英语两门课。按百分制考核。要求输入各门课成果,按平均成果分等显示:excellence优秀: 平均成果90; all right良好: 80平均成果90; middling中等: 70平均成果80; pass及格: 60平均成果70; fail不及格: 平均成果=0) x1=(-b+sqrt(d)/(2*a
13、); x2=(-b-sqrt(d)/(2*a); printf(x1=%f,x2=%f,x1,x2); 前往扩展到复数根#include math.h main()float a,b,c; float x1,x2,d; printf(Please Input a,b,c: ); scanf(%f,%f,%f,&a,&b,&c); d=b*b-4*a*c; if(d=0) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(x1=%f,x2=%f,x1,x2); 前往float realpart,imagpart;else
14、 realpart=-b/(2*a); imagpart=sqrt(-d)/(2*a); printf(x1=%f+%fin,realpart,imagpart); printf(x2=%f-%fin,realpart,imagpart); 补充例题:输入恣意三个数,按由大到小顺序陈列输出。 终了输出a,b,c开场输入a,b,cabNoYes交换a与b的值bcNoYes交换b与c的值acNoYes交换a与c的值a为三数中最大者b为三数中次大者a为a,b中最大者main( ) int a,b,c,t; printf(Please Input a,b,c: ); scanf%d,%d,%d,&am
15、p;a,&b,&c; if (ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t; if (b=b&b=c翻译为C语言表达式a=c&c=bb=a&a=cb=c&c=ac=a&a=bc=b&b=amain() int a,b,c; printf(Please input a b c:); scanf(%d%d%d,&a,&b,&c); if (a=b&b=c) printf(%d,%d,%dn,a,b,c); if (a=c&c=b) printf(%d,%d,%dn,a
16、,c,b); if (b=a&a=c) printf(%d,%d,%dn,b,a,c); if (b=c&c=a) printf(%d,%d,%dn,b,c,a); if (c=a&a=b) printf(%d,%d,%dn,c,a,b); if (c=b&b=a) printf(%d,%d,%dn,c,b,a);前往综合上述两种情况,得到闰年判别条件的逻辑表达式:例例2 2:闰年判别程序。:闰年判别程序。main() int year; printf(Type in a year:n); scanf(%d,&year); if (year%400=0|
17、year%4=0&year%100!=0) printf(%d is a leap year.n); else printf(%d is not a leap year.n);闰年的判别条件:假设年份变量用闰年的判别条件:假设年份变量用yearyear表示表示 当当yearyear是是400400的整倍数时为闰年;的整倍数时为闰年;条件表示为:条件表示为: year%400=0 当当yearyear是是4 4的整倍数,但不是的整倍数,但不是100100的整倍数时为闰年。的整倍数时为闰年。条件表示为:条件表示为: year%4=0 & year%100 != 0year%400=
18、0 | year%4=0 & year%100 != 0前往例例3 3:学生成果分等显示程序。学生有数学、英语两门课。:学生成果分等显示程序。学生有数学、英语两门课。按百分制考核。要求输入各门课成果,按平均成果分等显示:按百分制考核。要求输入各门课成果,按平均成果分等显示: excellence excellence优秀:优秀: 平均成果平均成果9090; all right all right良好:良好: 80 80平均成果平均成果9090; middling middling中等:中等: 70 70平均成果平均成果8080; pass pass及格:及格: 60 60平均成果平均成
19、果7070; fail fail不及格:不及格: 平均成果平均成果60=90) printf(excellencen); else if(ave=80) printf(all rightn); else if(ave=70) printf(middlingn); else if(ave=60) printf(passn); else printf(failn);前往二、switch 语句的综合运用例3:学生成果分等显示程序。学生有数学、英语两门课。按百分制考核。要求输入各门课成果,按平均成果分等显示。 excellence优秀: 平均成果90; all right良好: 80平均成果90; m
20、iddling中等: 70平均成果80; pass及格: 60平均成果70; fail不及格: 平均成果60。前往补充例题:编写计算器程序。用户输入运算数和四那么运补充例题:编写计算器程序。用户输入运算数和四那么运 算符,输出计算结果。算符,输出计算结果。main()float a,b; int ave;scanf(%f,%f,&a,&b); ave=(a+b)/2; switch(ave/10) case 10: case 9: printf(excellencen); break; case 8: printf(all rightn); break; case 7: pri
21、ntf(middlingn); break; case 6: printf(pathn); break; default: printf(failn);前往采用采用switchswitch编程时,要留意编程时,要留意精选精选switchswitch后的表达式:后的表达式:1 1假设采用平均值假设采用平均值aveave 将有将有101101种能够;种能够;2 2假设采用:假设采用:ave/10 ave/10 只需只需1111种结果,再经种结果,再经 过合并后仅剩下过合并后仅剩下5 5种。种。switchswitch语句在开发运用程序语句在开发运用程序时用途广泛。时用途广泛。例例3 3:学生成果:学生成果分等显示程序。分等显示程序。补充例题:编写计算器程序。用户输入运算数和四那么运补充例题:编写计算器程序。用户输入运算数和四那么运 算符,输出计算结果。算符,输出计算结果。#include main() int a,b,result=0; char ch; printf(nnInput a,b:); scanf(%d,%d,&a,&b); printf(Input one of(+,-,*,/):); getc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025内蒙古恒正实业集团有限公司招聘10名工作人员笔试参考题库附带答案详解
- 纺织设计师考试内容简化试题及答案
- 纺织工程师证书考试应知的行业热点与试题及答案
- 英语广播测试题及答案
- 工厂员工合同协议书
- 孕育员培训合同协议书
- 配股合同协议书
- 2024年凸轮轴车床项目资金需求报告代可行性研究报告
- 京东合同协议书
- 定金合同协议书
- 重症患者的康复护理课件
- 华为劳动合同范本
- DL-T-5757-2017额定电压35kV(Um=40.5kV)及以下热缩式电缆附件安装规程
- 电力工程造价咨询服务协议
- 一年级下册《读读童谣和儿歌》试题及答案共10套
- 文化传承之旅:中国音乐与中国故事智慧树知到期末考试答案章节答案2024年哈尔滨师范大学
- 第17课 第二次世界大战与战后国际秩序的形成 教学设计 高中历史统编版(2019)必修中外历史纲要下册
- MOOC 营养与健康-南京大学 中国大学慕课答案
- MOOC 食品毒理学-北京林业大学 中国大学慕课答案
- 特种设备“日管控、周排查、月调度”表格
- 统编语文九年级下册第二单元大单元教学设计
评论
0/150
提交评论