专题五 循环结构(二) (讲义)-《程序设计基础》高考备考讲练测(广西)

2025-05-27
| 9页
| 89人阅读
| 1人下载
精品

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 高一
章节 -
类型 教案-讲义
知识点 循环结构
使用场景 中职复习
学年 2025-2026
地区(省份) 广西壮族自治区
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 152 KB
发布时间 2025-05-27
更新时间 2025-05-27
作者 xkw_076789343
品牌系列 上好课·一轮讲练测
审核时间 2025-05-27
下载链接 https://m.zxxk.com/soft/52309971.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

专题五 循环结构(二) 【考纲要求】 知识要点 考试条目 4.循环结构程序设计 (1)了解 while、do…while、for 循环语句的异同; (2)掌握 while、do…while、for 循环语句的使用; (3)了解循环的嵌套; (4)掌握 break 语句和 continue 语句的使用。 【课时安排】 2课时 【知识梳理】 For 语句 一、for 循环的语法结构 for (初始化表达式; 条件表达式; 更新表达式) { // 循环体(需要重复执行的代码) } 核心要素: 初始化表达式:在循环开始时执行一次,通常用于定义并初始化循环变量(如 int i = 0)。 条件表达式:每次循环开始前检查,若为真(非0),执行循环体;若为假(0),退出循环。 更新表达式:每次循环体执行后运行,通常用于更新循环变量(如 i++)。 二、执行流程详解 步骤1:执行初始化表达式(仅一次)。 步骤2:检查条件表达式: 若为真 → 执行循环体 → 执行更新表达式 → 回到步骤2。 若为假 → 退出循环。 流程图: 开始 → 初始化 → 检查条件 → 条件为真 → 执行循环体 → 更新表达式 → 再次检查条件 → 条件为假 → 退出循环 → 后续代码 三、for 循环 vs. while 循环 特性 for 循环 while 循环 适用场景 已知循环次数(如遍历数组) 不确定循环次数(如条件循环) 结构紧凑性 将初始化、条件、更新集中在一行 分散在代码中 灵活性 可缺省任意表达式(如 for(;;)) 必须显式写条件 四、关键注意事项 1. 表达式可缺省,但分号不可省略 int i = 0; for (; i < 5; i++) { // 初始化已提前完成 // ... } for (;;) { // 等效于 while(1),无限循环 // ... } 2. 避免在循环体内重复初始化变量 for (int i = 0; i < 3; i++) { int i = 5; // 错误:内层i覆盖外层i,导致死循环 printf("%d ", i); } 输出:5 5 5(外层循环变量被覆盖)。 五、典型应用场景 1. 遍历数组 int arr[] = {2, 4, 6, 8}; for (int i = 0; i < 4; i++) { printf("%d ", arr[i]); } // 输出:2 4 6 8 2. 固定次数的循环 // 输出5次 "Hello" for (int i = 0; i < 5; i++) { printf("Hello "); } 3. 嵌套循环(如打印乘法表) for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { printf("%d*%d=%-2d ", j, i, i*j); } printf(" "); } 六、练习题 1. 以下代码的输出结果是( ) for (int i = 0; i < 3; i++) { printf("%d ", i); } 答案:0 1 2 2. 补全代码,计算1~10的累加和: int sum = 0; for (_______; _______; _______) { sum += i; } 答案:int i = 1、i <= 10、i++ 3. 以下代码的输出结果是( ) for (int i = 1; i <= 5; i += 2) { printf("%d ", i); } 答案:1 3 5 4. 编写代码,输出所有3位数中的水仙花数(如153=1³+5³+3³)。 for (int num = 100; num < 1000; num++) { int a = num / 100, b = num / 10 % 10, c = num % 10; if (a*a*a + b*b*b + c*c*c == num) { printf("%d ", num); } } 5. 输入一个正整数n,用for循环计算n!(阶乘)。 int n, fact = 1; scanf("%d", &n); for (int i = 1; i <= n; i++) { fact *= i; } printf("%d", fact); Break 语句 和continue 语句 一、Break 语句 1. 核心作用 立即终止当前所在的循环或 switch 语句,并跳出其代码块,继续执行后续代码。 2. 适用场景 循环中:满足特定条件时提前退出循环。 switch 语句:结束 case 分支的执行(防止“穿透”)。 3. 语法示例 示例1:循环中使用 break int i = 0; while (i < 10) { if (i == 5) { break; // 当i=5时,直接退出循环 } printf("%d ", i); i++; } // 输出:0 1 2 3 4 示例2:switch 中使用 break char grade = 'B'; switch (grade) { case 'A': printf("优秀"); break; case 'B': printf("良好"); break; // 结束switch语句 default: printf("未知"); } // 输出:良好 4. 注意事项 仅退出当前层循环:若嵌套循环,break 仅跳出最内层循环。 不可用于条件语句:break 不能用于 if 或其他非循环/非switch结构。 二、continue 语句 1. 核心作用 跳过当前循环迭代的剩余代码,直接进入下一次循环的条件判断(while/do-while)或更新表达式(for)。 2. 适用场景 忽略某些特定值的处理(如跳过偶数、跳过无效数据)。 优化循环效率,减少不必要的计算。 3. 语法示例 示例1:跳过偶数的输出 for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; // 跳过偶数,直接进入i++ } printf("%d ", i); } // 输出:1 3 5 7 9 示例2:在 while 循环中跳过特定条件 int i = 0; while (i < 5) { i++; if (i == 3) { continue; // 跳过i=3的后续代码 } printf("%d ", i); } // 输出:1 2 4 5 4. 注意事项 不终止循环:仅跳过当前迭代,循环继续执行。 在 for 循环中的行为:continue 会跳过循环体剩余代码,但仍会执行更新表达式(如 i++)。 三、break 与 continue 的对比 特性 作用范围 循环影响 典型场景 break 循环或 switch 语句 立即终止整个循环 搜索到目标后提前退出 continue 仅循环内部 仅跳过当前迭代,继续下一次循环 过滤不符合条件的数据项 【限时练习】 1. 以下代码的输出结果是( ) for (int i = 0; i < 5; i++) { if (i == 3) break; printf("%d ", i); } A. 0 1 2 B. 0 1 2 3 C. 0 1 2 3 4 D. 0 1 2 3 4 5 【答案】A 2.以下代码的循环次数是( ) for (int i = 1; i <= 10; i += 2) { i *= 2; } A. 2 次 B. 3 次 C. 4 次 D. 5 次 【答案】B 3. 以下代码的输出结果是( ) for (int i = 0; i < 5; i++) { if (i % 2 == 0) continue; printf("%d ", i); } A. 0 1 2 3 4 B. 1 2 3 4 C. 1 3 4 D. 1 3 【答案】D 4. 以下代码的执行次数是( ) for (int i = 0; i < 10; i += 2) { i *= 3; } A. 0 次 B. 1 次 C. 2 次 D. 3次 【答案】B 5.以下代码的循环次数是( ) for (int i = 0; i < 10; i++) { if (i > 5) continue; i++; } A. 3 次 B. 4 次 C. 5 次 D. 6 次 【答案】A 6.以下代码的输出结果是( ) int sum = 0; for (int i = 1; i <= 10; i++) { if (i % 3 == 0) { sum += i; continue; } sum -= i; } printf("%d", sum); A. -22 B. -18 C. -15 D. -10 【答案】B 7.for循环的初始化部分只能声明变量,不能进行赋值操作。( ) 【答案】× 8.在 C 语言中,for循环的三个表达式都可以省略。( ) 【答案】√ 9.for循环的循环体必须用花括号{}包围。( ) 【答案】× 10.编写程序:输入一个整数,判断其是否为水仙花数(如 153=1³+5³+3³)。 【答案】 #include <stdio.h> #include <math.h> int main() { int num, original, sum = 0, digit; scanf("%d", &num); original = num; while (num > 0) { digit = num % 10; sum += pow(digit, 3); num /= 10; } printf("%s", sum == original ? "是水仙花数" : "不是水仙花数"); return 0; } 11.编写程序:打印杨辉三角形的前 10 行。 【答案】 #include <stdio.h> int main() { int n = 10, i, j, coef; for (i = 0; i < n; i++) { for (j = 0; j <= n - i; j++) printf(" "); // 对齐 for (j = 0; j <= i; j++) { if (j == 0 || i == j) coef = 1; else coef = coef * (i - j + 1) / j; printf("%4d", coef); } printf(" "); } return 0; } 【内容小结】 学科网(北京)股份有限公司 $$

资源预览图

专题五 循环结构(二) (讲义)-《程序设计基础》高考备考讲练测(广西)
1
专题五 循环结构(二) (讲义)-《程序设计基础》高考备考讲练测(广西)
2
专题五 循环结构(二) (讲义)-《程序设计基础》高考备考讲练测(广西)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。