




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第四章 选择结构程序设计 第四章 选择结构程序设计 一、一、ifif语句语句 if语句有单分支、双分支和多分支等结构 1单分支if语句。 使用格式:if (表达式) 语句; 语义:如果表达式的值为真,则执 行其后的语句, 否则不执行该语句 。其过程可表示为图1。 图1 单分支选择结构的执行过程 表达式 语句 非0 0 2第四章 选择结构程序设计 说明:说明: (1)表达式:一般为关系表达式、逻辑表达式,也可为算 术表达式,其值按非零为True,零为False进行判断。 (2)如果当条件成立要执行多个语句,就要使用“ ” 来构成复合语句。 例:已知两个数x和y,比较它们的大小,使得x大于y。 一、一、 if if 语句语句 if (x; else ; 语句的执行过程如下图所示,即当 表达式的值为非零(条件成立)时执行 ,否则执行else后面。 一、一、 if if 语句语句 非0 表达式 语句1 语句2 0 4第四章 选择结构程序设计 #include void main() float a, b,max; printf(“input the two numbers: “); scanf(“%f,%f“, if(ab) max=a; else max=b; printf(“max=%fn“,max); 教材56页 一、一、 if if 语句语句 【例4-3】从键盘输入两个实数,输出其中最大者 。 if (ab) printf(“%f“ ,a); else printf(“%f “, b); 5第四章 选择结构程序设计 例:求解一元二次方程的程序,要求考虑实根、 虚根等情况。 一、一、 if if 语句语句 ax2+bx+c=0 sqrt( ) fabs( ) #include 参见教材附录C 6第四章 选择结构程序设计 #include void main() float a, b, c, x1, x2, d; printf(“Enter number a,b,c=“); scanf(“%f,%f,%f“, 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=%fn“,x1,x2); else /*虚根情况*/ x1=-b/(2*a); x2=sqrt(fabs(d)/(2*a); printf(“x1= %f + %fin“,x1,x2); printf(“x2= %f - %fin“,x1,x2); 一、一、 if if 语句语句 7第四章 选择结构程序设计 3ifelse if语句(多分支结构) 语句形式: if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式n) 语句n; else 语句块n+1; 多分支if语句执行过程 一、一、 if if 语句语句 8第四章 选择结构程序设计 例 输入一组学生成 绩,评定其等级。 方法是: 90100分为“A”, 8089分为“B”, 7079分为“C”, 6069分为“D”, 60分以下为“E”。 一、一、 if if 语句语句 程序段如下: void main() int x; scanf(“%d”, if (x=90) printf(“A“); else if (x=80) printf(“B“); else if (x=70) printf(“C“); else if (x=60) printf(“D“); else printf(“E“); 9第四章 选择结构程序设计 例4-5:输入一个字符,判断其属于大写字母、小写字母、数字、 控制字符或其他字符 一、一、 if if 语句语句 #include“stdio.h“ void main() char c; printf(“input a character: “); c=getchar(); if(c=0 scanf(“%f”, if(x=0) if(x0) y=1; else y=0; else y=-1; printf(“y=%-4.0fn”,y); 思考:方法是唯一的么?思考:方法是唯一的么? 一、一、 if if 语句语句 14第四章 选择结构程序设计 y= -1 0 1 x0 例4-6 一、一、 if if 语句语句 思考:以下方法是否正确?思考:以下方法是否正确? 15第四章 选择结构程序设计 条件运算符为 ? : 它是一个三目运算符。 条件表达式的一般形式为: 表达式1? 表达式2 :表达式3 其求值规则为:如果表达式1的值为真,则以表达式2 的 值作为条件表达式的值,否则以表达式3的值作为整个条件 表达式的值。 条件表达式通常用于赋值语句之中。例如条件语句: if(ab) max=a; else max=b; 可用条件表达式写为 max=(ab)?a:b; 执行该语句的 语义是:如ab为真,则把a 赋予max,否则把b 赋予max。 二、二、条件运算符和条件表达式条件运算符和条件表达式 16第四章 选择结构程序设计 使用条件表达式时,还应注意以下几点: 1. 条件运算符的运算优先级 低于关系运算符和算术运算符,高于赋值符。因此 max=(ab)?a:b可以去掉括号而写为 max=ab?a:b 2. 条件运算符? :是一对运算符,不能分开单独使用。 3. 条件运算符的结合方向是自右至左。 例如: ab?a:cd?c:d 应理解为 ab?a:(cd?c:d) 这也就是条件表达式嵌套的情形,即 其中的表达式3又是一个条件表达式。 二、二、条件运算符和条件表达式条件运算符和条件表达式 17第四章 选择结构程序设计 例将输入的大写字母转换成相应的小写字母 main() char ch; scanf(“%c“, ch=(ch=A break; case 常量表达式2: 语句2; break; case 常量表达式n: 语句n; break; default : 语句n+1; 使用switch语句的通常形式为: 三、三、switchswitch语句语句 22第四章 选择结构程序设计 上例可修改为 void main() float x; printf(“Enter x=?“); scanf(“%f“, switch(int)(x/10) case 10: case 9: printf(“A“); break; case 8: printf(“B“); break; case 7: printf(“C“); break; case 6: printf(“D“); break; default:printf(“E“); 程序运行后,结果如下: Enter x=? 75 C 三、三、switchswitch语句语句 23第四章 选择结构程序设计 void main() int a; printf(“input integer number: “); scanf(“%d“, switch (a) case 1:printf(“Mondayn“);break; case 2:printf(“Tuesdayn“); break; case 3:printf(“Wednesdayn“);break; case 4:printf(“Thursdayn“);break; case 5:printf(“Fridayn“);break; case 6:printf(“Saturdayn“);break; case 7:printf(“Sundayn“);break; default:printf(“errorn“); 例4-8:输入17(分别代表星期一到星期天),输出相应的内容 三、三、switchswitch语句语句 24第四章 选择结构程序设计 1.在case后的各常量表达式的值不能相同,否则会 出现错误。 2.在case后,允许有多个语句,可以不用括起来 。 3.各case和default子句的先后顺序可以变动,而不 会影响程序执行结果。 4.default子句可以省略不用。 使用switch语句时还应注意以下几点: 三、三、switchswitch语句语句 25第四章 选择结构程序设计 选择结构程序举例 例:输入三个整数,输出最大数 分析:输入a,b,c 首先比较a,b的大小,并把大数装入max,然 后再与c比较,若max小于c,则把c赋予max;因此max内总是最 大数,最后输出max的值即为a,b,c中最大的数。程序如下: void m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 团队协作工具使用的月度计划
- 班级小组讨论的高效实施计划
- 工业自动化系统集成及应用案例分析
- 游戏账号买卖交易平台合作协议
- 2025年银川货运上岗证考试题答案
- 2025年荆州货运资格证培训考试题
- 汽车驾驶技巧考试题库
- 湖北省鄂东南省级示范高中教育教学改革联盟2022-2023学年高一下学期期中联考地理试题(含答案)
- 山东省滨州市无棣县2023-2024学年三年级下学期期中考试科学试题(含答案)
- 三人共同还贷款合同样本
- 用人需求申请表
- (完整版)附:《档案目录清单》
- 《酒店概论》考试复习参考题库(含答案)
- 版式设计网格课件
- 消防安全检查表(车间)
- 产品报价单(5篇)
- 大飞机C919:追梦五十载,“破茧化蝶”
- 品牌视觉形象设计智慧树知到答案章节测试2023年天津科技大学
- 高考语文复习-议论文结尾写作之深化主旨 练习
- 汉语词汇与文化课件
- 浅析公路桥梁施工中高性能混凝土的应用
评论
0/150
提交评论