第4章 第3.1节:if语句的三种形式(课件)-《C语言程序设计》(电子工业出版社)上好课

2026-04-30
| 51页
| 116人阅读
| 0人下载
精品

内容正文:

4.3.1节:if语句的三种形式 C语言程序设计 电子工业出版社 理解if语句的三种基本形式(单分支、双分支、多分支)及其执行流程。 能够运用if语句解决简单的条件判断问题,编写相应的C语言程序。 培养逻辑思维能力和程序设计的严谨性,提升分析问题与解决问题的能力。 知识目标 能力目标 素养目标 01 01 01 学习目标 目录 Part 01 教学导入 Part 02 知识讲授 Part 03 师生互动 Part 04 课堂练习 Part 05 课堂小结 教学导入:生活中的选择 生活中,我们每天都面临各种选择,这些选择往往遵循特定的逻辑: 如果天气冷,就加件衣服。 如果考试及格,就可以放假。 如果饿了,就去吃饭。 核心发现:这些日常选择都遵循一个通用模式 —— “如果...就...” 教学导入:程序中的选择结构 程序设计中,同样需要根据不同的条件执行不同的操作,这就是选择结构。它允许程序根据指定的条件来决定执行哪个分支的代码,从而实现更复杂的逻辑控制。 图:选择结构基本执行流程示意图 引入主题:if语句 逻辑流向: 通过条件判断,程序如同在路口选择方向,决定执行不同的指令序列。 知识讲授 if语句的三种形式 单分支与多分支结构 多分支if语句 第一部分 单分支与多分支结构 知识讲授 知识讲授:if语句的概念 知识讲授:单分支结构的语法格式 💡 核心要点 1. 关键字 i f 后紧跟条件表达式 2. 表达式为真时,执行后续大括号内的语句序列 if(表达式) { 语句序列; } 程序执行流向 条件判断 → 真则执行 → 结束 知识讲授:单分支结构的执行流程 条件为真 (True) 执行 if 语句块中的后续操作 条件为假 (False) 跳过 if 语句块,直接执行后续代码 注:单分支结构仅在条件满足时才执行特定操作,不满足则保持流程继续。 知识讲授:单分支结构示例代码 程序文本【4.3】输入两个实数,按从小到大的顺序输出这两个数 #include<stdio.h> main() { float x,y,t; printf("请输入两个实数(x,y):"); scanf("%f,%f",&x,&y); if(x>y) { t=x;x=y;y=t; } printf("%5.2f,%5.2f",x,y); } 代码解析 1. 核心功能:该程序的目的是输入两个实数,并按从小到大的顺序输出。 2. 关键逻辑:通过 if (x > y) 语句进行判断,如果第一个数大于第二个数,则通过一个临时变量 t 来交换 x 和 y 的值。 3. 执行流程:无论输入的两个数顺序如何,经过 if 语句的判断和可能的交换操作后,x 始终小于或等于 y,最后统一输出即可得到从小到大的结果。 知识讲授:单分支结构示例代码 知识讲授:双分支结构语法格式 if(表达式) { 语句序列1; } else { 语句序列2; } 语法逻辑解析 在 if 基础上增加 else 子句。若 if 后的表达式结果为“真”,执行语句1;若为“假”,则跳过 if 块执行 else 后的语句2。 知识讲授:双分支结构的执行流程 程序执行流向 条件判断 → “真”则执行语句1→“假”则执行语句2 → 结束 知识讲授:双分支结构示例代码 程序文本【4.4】输入一名学生的C语言成绩,并判断是否及格 #include<stdio.h> main() { int x; printf("请输入一名学生的C语言成绩: "); scanf("%d",&x); if(x>=60) printf("及格 "); else printf("不及格 "); } 代码解析 1. 核心功能:该程序用于输入一名学生的C语言成绩,并判断其是否及格。 2. 关键逻辑:使用 if (x >= 60) 进行条件判断,如果成绩大于或等于60分,执行 if 后的语句,输出“及格”;否则,执行 else 后的语句,输出“不及格”。 3. 执行流程:程序根据输入的成绩,通过双分支结构实现了两种不同情况的处理,确保了判断的完整性。 知识讲授:双分支结构示例代码 知识讲授:单分支与双分支结构对比 单分支结构 只有一个分支,满足条件执行,不满足则跳过。核心是“做或不做”的选择。 双分支结构 有两个分支,满足条件执行一个,不满足执行另一个。核心是“二选一”的执行。 核心区别:单分支是“单向选择”,双分支是“双向必选” 背诵记忆 请大家利用3分钟时间,重点背诵以下两个核心知识点: 知识点 01:单分支 if 语句 语法格式: if (表达式) { 语句序列; } 执行流程:如果表达式的值为真(非0),则执行其后的语句序列;如果为假(0),则跳过该if语句,执行后续代码。 知识点 02:双分支 if...else 语句 语法格式: if (表达式) { 语句序列1; } else { 语句序列2; } 执行流程:如果表达式的值为真,执行语句序列1;如果为假,执行语句序列2。 例题分析 题目要求 输入两个整数,输出较大的数。 解题思路 可以使用双分支结构,判断第一个数是否大于第二个数,如果是,输出第一个数,否则输出第二个数。 💡 提示:关键在于理解条件判断与分支流向的逻辑关系 例题分析(代码实现) 程序文本:输入两个整数,输出较大的数。 #include<stdio.h> main() { int a, b, max; printf("请输入两个整数:"); scanf("%d %d", &a, &b); if(a > b) { max = a;} else { max = b; } printf("较大的数是:%d ", max); } 代码逻辑解析 变量定义 定义整型变量 a、b 存储输入,max 存储结果。 输入数据 通过 scanf 函数获取用户输入的两个整数。 条件判断 使用 if-else 双分支比较大小,将较大值赋给 max。 输出结果 输出 max 的值,即程序运行的最终结果。 例题分析(运行结果) 课堂问答 Q1: if语句中表达式的值为0时,会执行哪个分支? A: 表达式的值为0表示假,因此不会执行if后的语句,直接跳过。 Q2: else 子句是否可以单独使用? A: 不可以,else 子句必须与 if 配对使用,不能单独出现。 课堂练习1 题目 编写程序,判断一个整数是否为偶数。 提示 偶数的判断条件是该数能被2整除,即num % 2 == 0 课堂练习1 程序文本:判断一个整数是否为偶数 #include <stdio.h> main() { int num; printf("请输入一个整数:"); scanf("%d", &num); if (num % 2 == 0) { printf("%d 是偶数。 ", num); } else { printf("%d 是奇数。 ", num);} } 课堂练习2 题目要求 输入一个字符,判断是否为大写字母。 解题提示 大写字母的 ASCII 码范围是65 ('A')到90 ('Z')。 课堂练习2 程序文本:输入一个字符,判断是否为大写字母 #include<stdio.h> main() { char ch; printf("请输入一个字符:"); scanf("%c", &ch); if(ch >='A'&& ch <='Z') { printf("%c 是大写字母 ", ch); } else printf("%c 不是大写字母 ", ch); } } 第二部分 知识讲授 多分支if语句 知识讲授:多分支结构的概念 知识讲授:多分支if结构语法格式 if (表达式1) {语句序列1;} else if (表达式2) {语句序列2;} else if (表达式3) {语句序列3;} // ... 可以有多个 else if 分支 else {语句序列n;} 1. 表达式判断 程序从上至下依次判断每个if或else if后的表达式。 2. 分支执行 一旦某个表达式的值为真(非0),则执行其对应的语句序列,然后跳出整个if-else if结构。 3. 默认分支 如果所有表达式的值都为假(0),则执行最后的else分支中的语句序列。 4. 核心特点 多分支结构是一种“单选”结构,即最多只有一个分支会被执行。 知识讲授:多分支if结构执行流程 表达式1 语句1 表达式2 语句2 表达式3 语句3 表达式n 语句n 语句n+1 …… …… 假 假 假 假 真 真 真 真 知识讲授:多分支if结构示例代码 程序文本【4.5】现有一分段函数,输入任意一个x值,输出对应的y值 #include<stdio.h> main() { int x,y; printf(" 请输入x的值:"); scanf("%d",&x); if(x<3) y=x+3; else if(x==3) y=x; else y=x-3; printf("x=%d,y=%d",x,y); } 知识讲授:多分支if结构示例代码 知识讲授:分支结构常见错误 else 匹配错误 逻辑陷阱:忘记每个 else 都遵循“就近原则”与最近的 if 配对,导致逻辑混乱。 条件顺序错误 执行阻断:将范围大的条件写在前面,会导致后续范围小的、更精确的条件永远无法被执行。 缺少最后的 else 逻辑漏洞:当所有 if 条件都不满足时,没有兜底的 else 处理逻辑,可能导致程序异常。 💡 核心提示:合理使用大括号明确范围,按逻辑严密性排序条件,并确保覆盖所有情况。 背诵记忆 请大家利用几分钟时间,重点背诵以下两个核心知识点: 知识点一:语法与流程 背诵多分支 if...else...if 语句的完整语法格式,理解其从上至下的条件判断逻辑及代码执行流向。 知识点二:使用注意事项 重点记忆 else 子句的匹配规则(就近原则)以及条件表达式的排列顺序对程序结果的影响。 互动环节:请尝试在脑海中默写代码结构,并思考如果改变条件顺序会发生什么? 例题分析 题目:成绩等级自动评定 输入学生成绩(0-100分),根据以下标准自动判断并输出对应的等级: 90分及以上:A(优秀) 80-89分:B(良好) 70-79分:C(中等) 60-69分:D(及格) 60分以下:E(不及格) 需求分析:根据数值所在的不同区间,执行不同的输出操作。 结构选择:多分支if-else if结构是解决此类“区间判断”问题的最佳选择。 逻辑设计:按从高到低(或低到高)顺序判断,确保每个分数被正确分类。 边界处理:利用else分支兜底,处理小于60分的情况,确保逻辑完整。 解题思路分析 核心要点:多分支结构通过连续的条件判断,能够清晰地处理多种互斥的情况,是编程中处理复杂逻辑的基础工具。 例题分析:流程图 s>= 90 优秀 s>=80 良好 s>=70 中等 s>=60 及格 不及格 假 假 假 假 真 真 真 真 例题分析:代码实现 程序文本:成绩等级自动评定 #include <stdio.h> main() { int score; printf("请输入学生成绩(0-100):"); scanf("%d", &score); if (score >= 90) {printf("成绩等级:A(优秀) ");} else if (score >= 80) {printf("成绩等级:B(良好) ");} else if (score >= 70) {printf("成绩等级:C(中等) ");} else if (score >= 60) {printf("成绩等级:D(及格) ");} else {printf("成绩等级:E(不及格) ");} } 例题分析:运行结果 课堂问答 Q: 多分支结构中,是否所有表达式都会被判断? A: 否。 程序会从上到下依次判断,一旦某个表达式为真,执行对应语句后就会跳出整个if结构,不再判断后续条件。 核心概念:多分支结构具有“排他性”,遵循“自上而下,命中即止”的原则。 课堂问答 问题:最后一个else子句的作用是什么? 当所有的 if 和 else if 条件都不满足时,执行最后一个 else 子句中的语句,提供一个默认的处理方式。 课堂练习 题目:输入一个月份(1-12),判断所属的季节。 春季 3、4、5月 夏季 6、7、8月 秋季 9、10、11月 冬季 12、1、2月 思考提示:请使用条件判断语句(if-else 或 switch)来实现逻辑,注意冬季跨年度的情况。 课堂练习 程序文本:输入一个月份(1-12),判断所属的季节 #include <stdio.h> main() { int month; printf("请输入月份(1-12):"); scanf("%d", &month); if (month >= 3 && month <= 5) {printf("%d月是春季。 ", month);} else if (month >= 6 && month <= 8) {printf("%d月是夏季。 ", month);} else if (month >= 9 && month <= 11) {printf("%d月是秋季。 ", month);} else if (month == 12 || month == 1 || month == 2) {printf("%d月是冬季。 ", month);} else {printf("输入的月份无效! ");} } 课堂练习 课堂练习 练习题目 编写程序,实现简单的计算器,支持加减乘除运算。 要求程序能够接收用户输入的两个数字和一个运算符,并输出正确的计算结果。 解题提示 输入两个数和一个运算符(+、-、*、/),根据运算符进行相应的计算。注意除数不能为零的情况处理。 课堂练习 程序文本:实现简单的计算器,支持加减乘除运算 #include<stdio.h> main() { float num1, num2, result; char op; printf("请输入表达式(例如:1+2):"); scanf("%f%c%f", &num1, &op, &num2); if(op =='+') result = num1 + num2; else if(op =='-') result = num1 - num2; else if(op =='*') result = num1 * num2; else if(op =='/') { if(num2 != 0) result = num1 / num2; else{ printf("除数不能为0! "); } } else{ printf("无效运算符! ");} printf("结果:%.2f ", result); } 课堂练习 课堂小结 单分支结构 使用 if 语句,当条件满足时执行特定代码块,否则跳过。 双分支结构 使用 if...else 语句,条件满足执行一段,不满足执行另一段。 多分支结构 使用 if...else if...else 语句,在多个条件中选择其一执行。 核心回顾:根据不同的条件判断场景,灵活选择单、双或多分支结构实现逻辑控制。 课堂小结 课后任务 作业 1:闰年判断程序 编写程序,输入一个年份,判断该年份是否为闰年,并输出判断结果。 作业 2:整数排序输出 输入三个整数,使用条件判断语句,按从大到小的顺序输出这三个数。 作业 3:成绩评价系统 使用多分支结构,根据用户输入的分数段(0-100),给出相应的评价(如优秀、良好、及格等)。 谢谢观看 THANKS $

资源预览图

第4章 第3.1节:if语句的三种形式(课件)-《C语言程序设计》(电子工业出版社)上好课
1
第4章 第3.1节:if语句的三种形式(课件)-《C语言程序设计》(电子工业出版社)上好课
2
第4章 第3.1节:if语句的三种形式(课件)-《C语言程序设计》(电子工业出版社)上好课
3
第4章 第3.1节:if语句的三种形式(课件)-《C语言程序设计》(电子工业出版社)上好课
4
第4章 第3.1节:if语句的三种形式(课件)-《C语言程序设计》(电子工业出版社)上好课
5
第4章 第3.1节:if语句的三种形式(课件)-《C语言程序设计》(电子工业出版社)上好课
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。