版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第 4 4 章章选择构造程序设计选择构造程序设计第四章第四章 选择构造程序设计选择构造程序设计一、关系运算符和关系表达式一、关系运算符和关系表达式二、逻辑运算符和逻辑表达式二、逻辑运算符和逻辑表达式三、运用三、运用ifif语句实现的选择构造语句实现的选择构造四、条件运算符和条件表达式四、条件运算符和条件表达式 五、五、switchswitch语句语句 六、选择构造程序举例六、选择构造程序举例主要内容主要内容关系运算符关系运算符 = = != (6种种)第四章第四章 选择构造程序设计选择构造程序设计优先级优先级赋值赋值 关系关系( 后后2前前4 ) 3一、关系运算符和关系表达式一、关系运算符和
2、关系表达式219举例举例知知 a=5,b=4,c=3,d=7 求以下表达式的值求以下表达式的值a+b=c*dabca!=bbc10a != b c01算术运算符的优先级高于算术运算符的优先级高于关系运算符关系运算符不能用于判别不能用于判别b的值能否的值能否在在a 与与c 之间之间“运算符的优先级高于运算符的优先级高于“!=逻辑运算符逻辑运算符 !逻辑非逻辑非 &逻辑与逻辑与 |逻辑或逻辑或运算规那运算规那么么优先次序优先次序赋值赋值 | & 关系关系算术算术 3) | b 0双目双目单目单目二、逻辑运算符和逻辑表达式二、逻辑运算符和逻辑表达式第四章第四章 选择构造程序设计选择构
3、造程序设计二、逻辑运算符和逻辑表达式二、逻辑运算符和逻辑表达式第五章第五章 选择构造程序设计选择构造程序设计举例举例53 & 8 3) & (8 3 | (a=6)1逻辑运算符两侧的运算对象不但可逻辑运算符两侧的运算对象不但可以是和,也可以是或非的以是和,也可以是或非的整数,也可是任何类型的数据。系整数,也可是任何类型的数据。系统断定规范:为假;非为真。统断定规范:为假;非为真。当当“与运算的左与运算的左侧为侧为0,或者,或者“或运或运算的左侧为算的左侧为1时,时,右侧的表达式不再右侧的表达式不再进展计算。进展计算。短路短路景象景象#include void main() in
4、t a=1,b=1; if (a1&(b=5) a=4; printf(“%d,%d,a,b);1,1选择构造选择构造单分支单分支双分支双分支if (表达式表达式) 语句语句多分支多分支if (表达式表达式) 语句语句else 语句语句if (表达式表达式1) 语句语句else if (表达式表达式) 语句语句else 语句语句nif 语句的嵌套语句的嵌套switch语句语句第四章第四章 选择构造程序设计选择构造程序设计选择构造的分类选择构造的分类格式格式流程图流程图第四章第四章 选择构造程序设计选择构造程序设计if (表达式表达式) 语句语句三、三、if语句实现选择构造语句实现选择构
5、造 单分支单分支不成立(假、0)表达式语句块成立(真、1)if (xy) printf(“%d,x);举例举例例例4.5第四章第四章 选择构造程序设计选择构造程序设计#include stdio.hint main( ) int num1,num2,max; printf(input two numbers: n ); scanf(%d%d,&num1,&num2); max=num1; if (maxnum2) max=num2; printf(max=%dn,max); return 0;56 41 max=56 三、三、if语句实现选择构造语句实现选择构造 单分支单分支输
6、入两个整数,输出其中较大的数。输入两个整数,输出其中较大的数。例例4.6第四章第四章 选择构造程序设计选择构造程序设计#include int main() float a,b,t=0; scanf(“%f,%f,&a,&b); if (ab) t=a; a=b; b=t; printf(“%5.2f,%5.2fn,a,b); return 0;3,4 3.00, 4.00if (ab) t=a; a=b; b=t;if (ab) t=a;a=b; b=t;3,4 4.00, 0.00当某些语句作为一个整体当某些语句作为一个整体出现的时候,必需是复合出现的时候,必需是复合语句的
7、方式。语句的方式。三、三、if语句实现选择构造语句实现选择构造 单分支单分支输入两个实数,按由小到大的数序输出它们。输入两个实数,按由小到大的数序输出它们。格式格式if (xy) printf(“%d,x);else printf(“%d,y);第四章第四章 选择构造程序设计选择构造程序设计if (表达式表达式) 语句语句else 语句语句三、三、if语句实现选择构造语句实现选择构造 双分支双分支举例举例流程图流程图第四章第四章 选择构造程序设计选择构造程序设计#include int main() float a,b,c,p,s; scanf(“%f,%f,%f,&a,&b,
8、&c); if (a+bc & a+cb & b+ca) p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c); printf(“s=%7.2fn,s); else printf(“Not a triangle!n); return 0;输入三角形的三边,求三角形的面积。输入三角形的三边,求三角形的面积。3,4,5s= 6.003,4,8Not a triangle!三、三、if语句实现选择构造语句实现选择构造 双分支双分支例例4.9输入输入a,b,c是三角形吗?是三角形吗?p (a+b+c)/2ssqrt(p*(p-a)*(p-b)*(p-c
9、)输出输出s 输出输出“Not a triangle!编程实现如下分段函数编程实现如下分段函数,输出结果保管输出结果保管2位小数。位小数。y=0 x0 练习练习1#include #include int main() float x,y; scanf(“%f,&x); if(x=0) y=0; else y=sqrt(x); printf(“x=%.2f,y=%.2fn,x,y); return 0;这这4行包含行包含几条语句?几条语句?if(x0) y=sqrt(x);编程实现分段函数。编程实现分段函数。y=0 x01.0/x 0202x+1 10 x20例例4.11输入输入xx=
10、0是是否否y=0否否0 x10是是y=1.0/xx20是是否否y=5*x-10 x&x=10 x=10y=5*x-1if(x=0) y=0;else if(x=10) y=1.0/x; else if(x=20) y= y=2*x+1; else y=5*x-1;输出输出y第四章第四章 选择构造程序设计选择构造程序设计if (表达式表达式1) 语句组语句组else if (表达式表达式) 语句组语句组else if (表达式表达式n) 语句组语句组nelse 语句组语句组n+1三、三、if语句实现选择构造语句实现选择构造 多分支多分支1ifelse if方式方式#include std
11、io.hint main( ) float x,y; scanf(%f,&x); if(x=0) y=0.0; else if(x=10) y=1.0/x; else if(x=20) y= y=2*x+1; else y=5*x-1; printf(x=%.2f, y=%.2fn,x,y); return 0;第一次运转:第一次运转:5 x=5.00,y=0.2015 x=15.00,y=31.00第二次运转:第二次运转:21.67 x=21.67, y=107.35第三次运转:第三次运转:y=0 x01.0/x 0202x+1 10 x20程序如下:程序如下:编程实现分段函数编程实
12、现分段函数 换一种判别顺序换一种判别顺序y=0 x01.0/x 0202x+1 10 x20例例4.11输入输入xx=10是是否否y=1.0/x否否x=0是是y=0 x=20是是否否y=2*x+1y=5*x-1if(x=10) if(x=0) y=0; else y=1.0/x;else if(x=20) y=2*x+1; else y=5*x-1;输出输出yif(x=10) if(x=0) y=0;else y=1.0/x;else if(xb)d=a;else if (cb) d=c; else d=b;if (ab)if (cb) d=c;else d=b ;if (ab)if (cb)
13、 d=c;else d=b ;if (ab) if (cb) d=c; else d=b;else d=a;d=5d=3d=0d=4运用运用if语句中应留意的问题语句中应留意的问题 在在if关键字之后的括弧内关键字之后的括弧内为表达式,该表达式通常为表达式,该表达式通常是逻辑表达式或关系表达是逻辑表达式或关系表达式,但也可以是其它任何式,但也可以是其它任何合法的合法的C表达式表达式 条件判别表达式必需用括条件判别表达式必需用括弧括起来,后面没有分号。弧括起来,后面没有分号。但在语句之后必需加分号。但在语句之后必需加分号。 假设希望在满足假设希望在满足/不满足不满足条件时执行一组条件时执行一组(
14、多个多个)语语句,那么必需把这一组语句,那么必需把这一组语句用句用 括起来组成一个复括起来组成一个复合语句合语句 #include int main() float a,b,c,p,s; scanf(“%f,%f,%f,&a,&b,&c); if (a+bc & a+cb & b+ca) p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c); printf(“s=%7.2fn,s); else printf(“Not a triangle!n); return 0;条件运算符条件运算符条件表达式条件表达式举例举例if (ab)
15、max=a;else max=b;第四章第四章 选择构造程序设计选择构造程序设计表达式?表达式:表达式表达式?表达式:表达式max= (ab)? a : b;条件运算符条件运算符的运用条件的运用条件假设假设if语句中,在表达式为语句中,在表达式为“真和真和“假时,都只执行假时,都只执行一个赋值语句给同一个变量赋值,那么可以用简单的一个赋值语句给同一个变量赋值,那么可以用简单的条件运算符来处置。条件运算符来处置。取值取值表达式表达式1为真,那么取值为表达式为真,那么取值为表达式2的值;的值;表达式表达式1为假,那么取值为表达式为假,那么取值为表达式3的值。的值。四、条件运算符和条件表达式四、条件
16、运算符和条件表达式右结合方向右结合方向运用条件表达式求两个数的较大值。本人看运用条件表达式求两个数的较大值。本人看 #include stdio.hint main( ) float num1,num2,max=0; scanf(%f,%f,&num1,&num2); max=(num1num2)?num1:num2; printf(%5.2fn,max); return 0;例例4.14第一次运转:第一次运转:3.2,4 4.00第二次运转:第二次运转:4,3.2 4.00思索思索一个简单的菜单项选择择一个简单的菜单项选择择程序。程序。例如例如1例如例如2if-elseswi
17、tch开关语句开关语句 第四章第四章 选择构造程序设计选择构造程序设计switch (表达式表达式) case 常量表达式常量表达式1:语句组:语句组1 case 常量表达式常量表达式2:语句组:语句组2 case 常量表达式常量表达式3:语句组:语句组3 case 常量表达式常量表达式n:语句组:语句组n default: 语句组语句组n+1五、五、switch 语句实现多分支语句实现多分支break;执行过程执行过程定位入口、依次执行、遇定位入口、依次执行、遇break跳出跳出整型或字符型整型或字符型例例4.17#include void main() char grade; printf
18、(“请输入考试等级请输入考试等级AD:); scanf(“%c,&grade) ; switch (grade) case A: printf(“80100n); case B: printf(“7079n); case C: printf(“6069n); case D: printf(“60n); default: printf(“errorn); B根据输入的考试成果等级打印出百分制分数段。根据输入的考试成果等级打印出百分制分数段。A: 80100 B: 7079 C: 6069 D: 60阐明:应在每一个阐明:应在每一个printf后加后加break语句语句第四章第四章 选择构
19、造程序设计选择构造程序设计7079606960Error#include void main() char grade; printf(“请输入考试等级请输入考试等级AD:); scanf(“%c,&grade) switch (grade) case A: printf(“80100n);break; case B: printf(“7079n);break; case C: printf(“6069n);break; case D: printf(“60n);break; default: printf(“errorn); B7079最后一行的最后一行的break可以省略。可以省略
20、。第四章第四章 选择构造程序设计选择构造程序设计例例4.17根据输入的考试成果等级打印出百分制分数段。根据输入的考试成果等级打印出百分制分数段。A: 80100 B: 7079 C: 6069 D: 60思索思索例如例如1例如例如2思索思索(例例4.18)#include void main() int score; printf(“请输入考试成果请输入考试成果0100:); scanf(“%d,&score); if(score100) printf(“请输入请输入0100之间的整数之间的整数n); else if(score=80) printf(“An); else if(sco
21、re=70) printf(“Bn); else if(score=60) printf(“Cn); else printf(“Dn);根据输入的考试成果百分制整数打印出等级程度。根据输入的考试成果百分制整数打印出等级程度。运用运用ifelse语句实现语句实现A: 80100 B: 7079 C: 6069 D: 60思索:运用思索:运用switch语句语句如何实现?如何实现?程序程序第四章第四章 选择构造程序设计选择构造程序设计#include void main() int score; printf(“请输入考试成果请输入考试成果0100:); scanf(“%d,&score)
22、; switch (score) case 80100: printf(“An);break; case 7079: printf(“Bn);break; case 6069: printf(“Cn);break; case 60: printf(“Dn);break; default: printf(“请输入请输入0100之间的整数之间的整数n); 根据输入的考试成果百分制整数打印出等级程度。根据输入的考试成果百分制整数打印出等级程度。运用运用switch语句实现语句实现A: 80100 B: 7079 C: 6069 D: 60思索:本程序思索:本程序有问题么?有问题么?程序程序思索思索(
23、例例4.18)#include void main() int score; printf(“请输入考试成果请输入考试成果0100:); scanf(“%d,&score); switch (score) case 0: printf(“Dn);break; case 1: printf(“Dn);break; case 2: printf(“Dn);break; case 3: printf(“Dn);break; case 100:printf(“An);break; default: printf(“请输入请输入0100之间的整数之间的整数n); 太费事了太费事了有没有简单的有没
24、有简单的方法呢?方法呢?改良改良程序程序1101种情况种情况思索思索(例例4.18)根据输入的考试成果百分制整数打印出等级程度。根据输入的考试成果百分制整数打印出等级程度。运用运用switch语句实现语句实现A: 80100 B: 7079 C: 6069 D: 60#include void main() int score, p; printf(“请输入考试成果请输入考试成果0100:); scanf(“%c,&score); p=score/10; switch (p) case 0: printf(“Dn);break; case 1: printf(“Dn);break; c
25、ase 2: printf(“Dn);break; case 3: printf(“Dn);break; case 4: printf(“Dn);break; case 5: printf(“Dn);break; case 6: printf(“Cn);break; case 7:printf(“Bn);break; case 8:printf(“An);break; case 9:printf(“An);break; case 10:printf(“An);break; default: printf(“请输入请输入0100之间的整数之间的整数n); 改良改良程序程序211种情况种情况思索:
26、不同思索:不同case值时执行一样的值时执行一样的操作,能否可以操作,能否可以合并?合并?第四章第四章 选择构造程序设计选择构造程序设计#include void main() int score, p; printf(“请输入考试成果请输入考试成果0100:); scanf(“%c,&score); p=score/10; switch (p) case 0: case 1: case 2: case 3: case 4: case 5: printf(“Dn);break; case 6: printf(“Cn);break; case 7:printf(“Bn);break; c
27、ase 8: case 9: case 10:printf(“An);break; default: printf(“请输入请输入0100之间的整数之间的整数n); 改良改良程序程序3留意:多个留意:多个case共共用一组执行语句时,用一组执行语句时,共用的执行语句写共用的执行语句写在最后一个在最后一个case的的后面。后面。第四章第四章 选择构造程序设计选择构造程序设计第四章第四章 选择构造程序设计选择构造程序设计例例4.10求方程求方程 ax2+bx+c=0 的解。的解。(自学自学)真真a=0真真假假输出输出“该该方程不是方程不是二次方程二次方程b2-4ac=0真真输出两个实根:输出两个实
28、根:x1,x2输出两输出两个相等个相等实根实根:假假b2-4ac0假假aacbbx2412aacbbx2422计算复根的实部和虚部:计算复根的实部和虚部:实部实部虚部虚部abp2aacbq2)4(2输出两个复根:输出两个复根:p+qi,p-qiab2六、选择构造程序设计举例六、选择构造程序设计举例第四章第四章 选择构造程序设计选择构造程序设计#include #include void main() float a,b,c,disc,x1,x2,p,q; scanf(%f%f%f,&a,&b,&c); if (a=0) printf(该方程不是二次方程该方程不是二次方程
29、); else disc=b*b-4*a*c; if (disc=0) printf(“该方程有两个相等的实根该方程有两个相等的实根:%8.4fn,-b/(2*a); else if(disc0) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(“该方程有两个不等的实根该方程有两个不等的实根:%8.4f and %8.4fn,x1,x2); else p=-b/(2*a); q=sqrt(-disc)/(2*a); printf(“该方程有两个复根该方程有两个复根: n); printf(%8.4f + %8.4f in, p, q); printf(%8.4f + %8.4f in, p, q); 3 4 1该方程有两个不等的实根该方程有两个不等的实根: -0.3333 and -1.00004 3 1该方程有两个复根该方程有两个复根: -0.3750 + 0.3307 i -0.3750 + 0.3307 i例例4.10求方程求方程 ax2+bx+c=0 的解。的解。(各种方式各种方式)第一次运转:第一次运转:第二次运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上半年安徽事业单位联考旌德县招聘20人考试重点试题及答案解析
- 2026湖南张家界市永定区信访局招聘公益性岗位人员1人笔试备考题库及答案解析
- 2026广东茂名化州市实验中学招聘物理临聘教师笔试备考题库及答案解析
- 2026云南农业职业技术学院招聘人员5人(博士)笔试备考题库及答案解析
- 4.6.1人体对外界环境的感知教学设计(2025-2026学年苏人教版生物八年级上册)
- 2026安徽合肥市庐阳中学凤台路分校教师招聘笔试备考试题及答案解析
- 2026年安徽交通职业技术学院单招综合素质考试备考题库含详细答案解析
- 2026江苏苏州国发数金科技有限公司招聘11人笔试备考题库及答案解析
- 2026江苏无锡新宏泰电器科技股份有限公司招聘30人笔试备考试题及答案解析
- 2026年十堰市教育局直属学校公开招聘教师103人笔试备考题库及答案解析
- 2026年上海市奉贤区初三上学期一模化学试卷和答案及评分标准
- 马年猜猜乐(猜美食)打印版
- 2025 学年第一学期上海市杨浦区初三语文期末质量调研试卷附答案解析
- 企业信息系统操作权限管理规范
- 2025年保险从业资格偿付能力测试
- 中国汽车弹簧行业发展趋势及发展前景研究报告2025-2028版
- 人教版2024年七年级上册英语期末学业质量评价测试卷(含答案)
- 如愿三声部合唱简谱
- 离港系统指令
- 如何系统进行商铺定价
- 美的生产线基础人员培训资料铁三角
评论
0/150
提交评论