第5章 第4节:for语句(课件)-《C语言程序设计》(电子工业出版社)上好课

2026-04-30
| 45页
| 48人阅读
| 0人下载
精品

内容正文:

5.4节:for语句 C语言程序设计 电子工业出版社 理解for语句的基本结构和执行流程,掌握循环控制的核心逻辑 能够独立编写和调试简单的for循环程序,解决实际的计算问题 培养严谨的逻辑思维能力,提升利用编程工具解决实际问题的能力 知识目标 能力目标 素养目标 01 01 01 学习目标 目录 Part 01 教学导入 Part 02 知识讲授 Part 03 师生互动 Part 04 课堂练习 Part 05 课堂小结 教学导入:如何快速计算1到100的和? 思考时刻 如果让你手动计算: 1 + 2 + 3 + ... + 100 你需要多长时间?有没有更高效的方法让计算机帮我们快速完成? “重复的机械劳动适合交给程序,而我们要做的是找到高效的算法逻辑。” 教学导入 思考:有没有一种方法可以让计算机重复执行相同的操作? 💡 计算机最擅长执行重复任务,接下来我们将深入学习 C 语言中最常用的循环语句 —— for 语句 答案:当然有!这就是我们今天要学习的核心内容——循环结构。 教学导入:C语言中最灵活的循环语句——for语句 今天我们就来学习C语言中最灵活的循环语句——for语句!它将帮助我们轻松解决累加问题,以及更多复杂的重复操作,是编程中处理循环逻辑的核心工具。 高度灵活性:初始化、条件判断、更新操作集中管理 执行高效性:结构紧凑,减少冗余代码,提升执行效率 代码易读性:循环逻辑一目了然,便于调试与维护 知识讲授 for语句 for语句 for语句的应用 第一部分 for语句 知识讲授 知识讲授:for语句的基本格式 for(表达式1;表达式2;表达式3) { 循环体语句;// 重复执行的代码块 } 表达式 1 初始化循环变量 仅在开始时执行一次 表达式 2 循环条件判断 为真时执行循环体 表达式 3 更新循环变量 在每次循环结束后执行 循环体 核心执行逻辑 满足条件时重复执行 Tips: 三个表达式之间必须用分号 ; 分隔,循环体建议始终使用大括号 {} 包裹 知识讲授:表达式1——“初始化” 核心作用 在循环正式开始前,为循环变量赋一个初始值,确立循环的起点。 执行特点 具有“一次性”特性,仅在整个循环结构开始时执行一次,后续迭代不再运行。 💡 关键点回顾:初始化是循环的“起跑线”。它只做一次,用来告诉程序“我们从哪里开始”。 for(i =0; ... ; ... ) { // 循环体 } 示例: i = 0; 定义整数变量 i,并将其初始化为 0,作为循环的起始计数。 知识讲授:表达式2——“条件判断” 循环条件判断机制 核心作用:决定循环是否继续执行的关键“关卡”。 执行时机:每次执行循环体代码前,都会先进行此判断。 判断规则:结果为真(非0)则继续循环;结果为假(0)则立即跳出循环。 代码示例解析 for(i = 0;i < 10; i++) { ... } 示例中,i < 10即为条件判断表达式。只要变量 i 的值小于 10,循环就会持续进行;一旦 i 达到或超过 10,循环将终止。 执行流程可视化 1. 执行表达式1(初始化) 2. 执行表达式2(判断) 3. 执行循环体代码 4. 执行表达式3(更新) 知识讲授:表达式3——“更新变量” 执行时机与作用 在每次循环体执行完毕后执行,负责更新循环变量的值,为下一次判断做准备。 常见操作 通常用于变量的递增(如 i++)或递减(如 i--),是控制循环次数的关键。 代码解析:示例中的i++表示每次循环结束后,将变量 i 的值加 1。正是这个操作让 i 最终会大于等于 10,从而使条件不满足,循环结束。 for(i =0; i <10;i++) { //执行语句 } 知识讲授:循环体 知识讲授:循环体 核心作用 当条件判断表达式为真时,需要重复执行的代码块。这是循环结构的执行核心。 语法特点 可以是一条简单语句,也可以是多条语句组成的复合语句(需用大括号 {} 括起来)。 代码示例 累加操作:sum = sum + i; for_loop.c for(i = 0; i < 10; i++){ // 这就是循环体 sum = sum + i; // 可以包含多条语句 } 💡 重点提示: 即使循环体只有一条语句,也推荐使用大括号包裹,这能提高代码的可读性和可维护性,避免逻辑错误。 知识讲授:for语句的执行流程 1. 初始化 执行表达式1,仅在循环开始时执行一次。 2. 条件判断 执行表达式2,判断布尔值以决定是否继续循环。 3. 执行循环体 若条件为真(true),执行循环体中的语句。 4. 更新变量 执行表达式3,更新循环变量的值。 5. 循环往复 回到步骤2,直到条件为假(false)结束循环。 求解表达式1 表达式2 语句序列 求解表达式3 真(非0) 假(0) for语句的 下一语句 例题分析:求1到10的和 程序文本:求1到10的和 #include<stdio.h> main() { int i, sum =0;// 初始化累加和sum为0 for(i =1; i <=10; i++) // i从1开始,到10结束,每次加1 { sum = sum + i;// 将当前的i值累加到sum中 } printf("sum = %d ", sum);// 输出最终的和 } 例题分析:求1到10的和——“执行过程分析” 循环次数 i 的值 sum 的值 (sum = sum + i) 初始状态 1 0 第 1 次 1 0 + 1 = 1 第 2 次 2 1 + 2 = 3 第 3 次 3 3 + 3 = 6 中间过程 ... ... 第 10 次 10 45 + 10 = 55 循环结束 11 输出 sum = 55 核心逻辑:循环变量 i 从 1 递增到 10,每次将 i 累加到 sum 中。当 i 变为 11 时,不满足 i <= 10 的条件,循环终止。 例题分析:求1到10的和 例题分析:打印1到5的数字 程序文本:打印1到5的数字 #include <stdio.h> main() { int i; for(i = 1; i <= 5; i++) // i从1开始,到5结束,每次加1 { printf("%d ", i);// 打印当前的i值 } printf(" "); } 例题分析:打印1到5的数字——执行过程分析 循环次数 i 的值 输出内容 第 1 次 1 打印 1 第 2 次 2 打印 2 第 3 次 3 打印 3 第 4 次 4 打印 4 第 5 次 5 打印 5 结束 6 循环结束,输出换行 例题分析:打印1到5的数字 背诵记忆 基本格式回顾 for(表达式1; 表达式2; 表达式3) { 循环体 } 标准执行流程 初始化 → 条件判断 → 执行循环体 → 更新变量 → 条件判断... 三大表达式核心作用 表达式1:初始化循环变量(仅执行一次)。表达式2:循环条件判断(决定是否继续)。 表达式3:更新循环变量(每次循环后执行)。 课堂问答 Q1:在 for 循环中,哪个表达式决定了循环是否继续执行? A1:表达式 2(条件判断表达式)。 Q2:如果在 for 循环中省略了表达式2,会发生什么? A2:循环会成为死循环,永远执行下去,因为条件永远为真。 课堂练习 练习任务 编写程序,打印出100以内所有能被3整除的数。 解题思路提示 可以使用取模运算符%来判断一个数是否能被另一个数整除(即余数为0)。 课堂练习 程序文本:打印出100以内所有能被3整除的数 #include<stdio.h> main() { int i; for(i = 1; i <= 100; i++) { if(i % 3 == 0) // 判断i是否能被3整除 printf("%d ", i); // 如果能,就打印出来 } printf(" "); } 课堂练习 第二部分 知识讲授 for语句的应用 知识讲授:累加求和(奇数和) 程序文本【5.6】计算 1 + 3 + 5 + ... + 99 的累加和。 #include<stdio.h> main() { int i, sum; sum = 0; for(i = 1; i <= 99;i += 2) sum = sum + i; printf(" sum=%d ", sum); } 核心逻辑解析 1. 初始化:sum = 0,i 从 1 开始(第一个奇数)。 2. 循环条件:i <= 99,遍历至最后一个奇数。 3. 关键步长:i += 2,每次递增 2,确保只遍历奇数。 知识讲授:累加求和(奇数和) 知识讲授:统计字符个数 程序文本【5.7】统计从键盘上输入的字符个数 #include<stdio.h> main() { int n = 0; printf("请输入一串字符:"); for(; getchar() !=' '; n++); printf("字符个数为:%d ", n); } 核心循环条件 循环条件为getchar() != ' ',即当输入字符不是回车符时,循环继续执行。 for循环的简化写法 省略了初始化表达式(表达式1),因为变量 n 已在外部定义;循环体为空,所有操作在条件和增量中完成。 程序逻辑总结: 每次调用getchar()读取一个字符,若不是回车则计数器 n 自增。最终 n 的值即为输入字符的总个数(不包含回车符)。 知识讲授:统计字符个数 知识讲授:阶乘求和 程序文本【5.8】求 1! + 2! + 3! + ... + 20! 的和 #include<stdio.h> main() { float s=0,t=1;// s:和, t:阶乘 int n; for(n = 1; n <= 20; n++) { t = t * n;// 迭代计算阶乘 s = s + t;// 累加 } printf("1+2!+3!+4!+…+20!=%e ", s); } 阶乘变量 t 每次循环执行 t = t * n,利用上一次的结果快速计算当前 n 的阶乘,避免重复计算。 累加和变量 s 每次循环执行 s = s + t,将当前计算出的阶乘 t 累加到总和 s 中,最终得到所有阶乘的和。 注意事项: 由于 20! 的数值非常巨大(超过 2×10^18),普通 int 类型无法容纳,因此代码中使用 float 类型来存储结果,以确保数据不溢出。 知识讲授:阶乘求和 知识讲授:小球反弹问题 题目描述: 一个球从100m高处自由落下,每次落地后反弹回原高度的一半。求第10次落地时经过的总路程和第10次反弹的高度。 核心逻辑解析: 1.初始化:sn = 100 (初始下落高度),hn = 50 (第一次反弹高度)。 2.循环计算:从第2次落地开始循环至第10次。每次反弹包含上升和下落,因此路程累加 2 * hn。 3.高度更新:每次反弹后高度减半 (hn = hn / 2)。 4.输出结果:最终打印总路程和第10次反弹高度。 知识讲授:小球反弹问题 程序文本【5.9】小球反弹问题 #include<stdio.h> main() { float sn=100,hn=sn/2; int n; for(n=2;n<=10;n++) { sn=sn+2*hn; hn=hn/2; } printf("第10次落地时共经过%fm。 ",sn); printf("第10次反弹%fm。 ",hn); } 知识讲授:小球反弹问题 背诵记忆 灵活的条件与步长 通过调整表达式2和3来实现不同的遍历方式,例如只遍历奇数或偶数序列。 循环变量的灵活更新 可灵活设置循环变量的步长(如i += 2),实现更高效的遍历。 与其他语句结合 常与 if 条件语句结合,实现条件性的循环操作,例如寻找水仙花数或素数。 表达式的省略 for 循环的三个表达式都可以省略,但必须确保循环体内有能让循环正常结束的逻辑。 掌握这些技巧,让你的程序逻辑更加严密与高效 课堂练习 题目要求 编写程序,输入一个正整数,使用单重for循环判断它是否为素数。 解题思路提示 • 素数定义:大于1,且除了1和自身外,不能被其他自然数整除。 • 使用单重for循环,从2开始,遍历到该数的平方根(或该数本身减一),检查是否能被整除。 • 如果循环结束后都没有找到能整除的数,则该数是素数。 课堂练习 课堂练习 程序文本 #include<stdio.h> main() { int n, i, flag = 1;// flag=1表示是素数 printf("请输入一个正整数:"); scanf("%d", &n); if(n <= 1) {printf("%d不是素数。 ", n);return 0;} for(i = 2; i < n; i++) if(n % i == 0) { flag = 0;break; } if(flag == 1) printf("%d是素数。 ", n); else printf("%d不是素数。 ", n); } 课堂练习 课堂小结 for语句结构 标准语法结构: for(初始化; 条件; 更新) { 循环体 } 执行流程 执行顺序闭环: 初始化 → 判断条件 → 执行循环体 → 更新变量 → 再次判断... 基础应用场景 掌握核心功能: 简单的数值累加、循环计数、批量打印输出等基础操作。 高级应用技巧 掌握进阶技巧: 灵活设置循环变量步长,结合条件判断实现更复杂的循环逻辑。 “编程的核心在于逻辑,for循环是构建逻辑流程的基石。” 课堂小结 课后任务 必做题 复习本次课程所学的 for 语句知识点,重点理解循环逻辑。 独立完成课堂上的所有练习题目,确保代码可正常运行。 选做题 尝试用 for 循环解决生活中的实际问题(如计算月度开销)。 挑战:编写代码打印一个倒过来的九九乘法表。 温馨提示:请将作业代码保存为文件,下节课开始前提交至作业系统。遇到困难可查阅课程回放或在讨论区提问。 谢谢观看 THANKS $

资源预览图

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