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

2025-05-27
| 10页
| 105人阅读
| 1人下载
精品

资源信息

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

内容正文:

专题五 循环结构(一) 【考纲要求】 知识要点 考试条目 4.循环结构程序设计 (1)了解 while、do…while、for 循环语句的异同; (2)掌握 while、do…while、for 循环语句的使用; (3)了解循环的嵌套; (4)掌握 break 语句和 continue 语句的使用。 【课时安排】 2课时 【知识梳理】 While 语句 一、while 语句的语法结构 while (循环条件) { // 循环体(需要重复执行的代码) } 核心要素: 循环条件:必须是一个布尔表达式(结果为 true/非0 或 false/0)。 循环体:当条件为真时执行的代码块。 循环控制:必须在循环体内改变循环条件,否则可能导致死循环。 二、执行流程详解 先判断条件: 若条件为真(非0),执行循环体; 若条件为假(0),跳过循环,继续执行后续代码。 循环体执行后: 再次判断条件,重复上述过程。 流程图: 开始 → 判断条件 → 条件为真 → 执行循环体 → 更新条件 → 再次判断 → 条件为假 → 退出循环 → 继续后续代码 三、关键注意事项 1.避免死循环: int i = 0; while (i < 5) { // 没有 i++,条件永远为真 printf("Loop..."); } 注:循环体内必须有改变条件的语句(如 i++)。 2.循环条件初始化: int count; while (count < 10) { // count未初始化,结果不可预测 // ... } 注:变量必须初始化(如 int count = 0;)。 四、典型应用场景 1. 不确定次数的循环 // 输入数字直到输入0为止 int num; scanf("%d", &num); while (num != 0) { printf("输入的是:%d ", num); scanf("%d", &num); } 特点:循环次数由用户输入动态决定。 2. 遍历数组/字符串 char str[] = "Hello"; int i = 0; while (str[i] != '\0') { printf("%c", str[i]); i++; } // 输出:Hello 3. 实现复杂条件控制 // 计算1+2+...+n,直到和超过100为止 int sum = 0, n = 1; while (sum <= 100) { sum += n; n++; } printf("最终和:%d,n=%d", sum, n-1); 五、常见代码错误解析 错误示例1:分号位置错误 while (i < 5); // 分号导致循环体为空 { printf("Hello"); i++; } 结果:死循环(条件 i < 5 永远不变)。 错误示例2:逻辑条件矛盾 int x = 10; while (x > 0) { x = x / 2; // 当x=0时条件仍为假,但x可能无法达到0 printf("%d ", x); } // 输出:5 2 1 0(最后一次循环时x=0仍会执行) 问题:循环可能多执行一次,需仔细检查边界条件。 六、练习题 1. 以下代码输出的是( ) int i = 3; while (i--) { printf("%d ", i); } 答案:2 1 0 2. 编写代码,用 while 循环输出斐波那契数列前10项(1,1,2,3,5,8...)。 int a = 1, b = 1, count = 2; printf("1 1 "); while (count < 10) { int next = a + b; printf("%d ", next); a = b; b = next; count++; } 3. 输入密码(最多3次机会),若输入正确显示“成功”,否则显示“失败”。 int attempts = 0; int correct = 123456; int input; while (attempts < 3) { scanf("%d", &input); if (input == correct) { printf("成功"); break; } attempts++; } if (attempts == 3) { printf("失败"); } do-while 语句 一、do-while 语句的语法结构 do { // 循环体(需要重复执行的代码) } while (循环条件); // 注意结尾必须有分号 核心要素: 循环体:至少会执行一次,无论条件是否成立。 循环条件:必须是一个布尔表达式(结果为 true/非0 或 false/0)。 分号结尾:while(条件) 后必须加分号(;),否则编译报错。 二、执行流程详解 先执行循环体: 无论条件是否为真,循环体至少执行一次。 再判断条件: 若条件为真(非0),继续执行循环体; 若条件为假(0),退出循环。 流程图: 开始 → 执行循环体 → 判断条件 → 条件为真 → 继续执行循环体 → 条件为假 → 退出循环 → 继续后续代码 三、与 while 语句的关键区别 特性 while 语句 do-while 语句 执行顺序 先判断条件,后执行循环体 先执行循环体,后判断条件 最少执行次数 0次(条件初始为假时不执行) 1次(无论条件是否成立) 适用场景 需要前置条件检查的循环 必须至少执行一次循环体的场景 四、典型应用场景 1. 输入验证(必须至少输入一次) int password; do { printf("请输入密码(6位数字):"); scanf("%d", &password); } while (password != 123456); printf("密码正确!"); 说明:用户必须至少输入一次密码才能判断是否正确。 2. 菜单选择系统 char choice; do { printf(" 1. 开始游戏 2. 设置 3. 退出 "); scanf(" %c", &choice); switch (choice) { case '1': playGame(); break; case '2': openSettings(); break; case '3': printf("退出成功"); break; default: printf("无效选项"); } } while (choice != '3'); // 直到用户选择退出 3. 处理必须初始化数据 int num; do { printf("输入一个正整数:"); scanf("%d", &num); } while (num <= 0); printf("输入的正整数是:%d", num); 五、练习题 1.以下代码输出结果是( ) int x = 5; do { printf("%d ", x); x--; } while (x > 0); 答案:5 4 3 2 1 2.编写代码,用 do-while 计算一个正整数的位数(如输入1234,输出4)。 int num, count = 0; scanf("%d", &num); do { num /= 10; count++; } while (num != 0); printf("位数:%d", count); 3.用 do-while 实现猜数字游戏:随机生成1~100的整数,用户最多猜5次。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); int target = rand() % 100 + 1; int guess, attempts = 0; do { printf("第%d次猜测(1~100):", attempts + 1); scanf("%d", &guess); if (guess > target) printf("太大了! "); else if (guess < target) printf("太小了! "); else { printf("猜对了! "); break; } attempts++; } while (attempts < 5); if (attempts == 5) printf("失败,正确答案是%d ", target); return 0; } 【限时练习】 1. 以下代码的循环次数是( ) int i = 5; while (i > 0) { i--; if (i == 3) continue; printf("%d ", i); } A. 5 次 B. 4 次 C. 3 次 D. 2次 【答案】B 2.以下代码的输出结果是( ) int x = 0; do { printf("%d ", x); x++; } while (x < 3); A. 0 1 2 B. 0 1 C. 0 D. 1 【答案】A 3. 以下代码的输出是( ) int i = 0; while (++i < 5) { if (i % 2 == 0) break; printf("%d ", i); } A. 1 3 5 B. 3 5 C. 1 3 D. 1 【答案】D 4. do-while循环的条件表达式在每次循环结束后计算。( ) 【答案】√ 5.以下代码会导致无限循环( ) int i = 1; while (i <= 10); i++; 【答案】√ 6.while循环的循环体至少执行一次。( ) 【答案】× 7.补全代码,使其逆序输出 1 到 5: int i = 5; do { printf("%d ", i); ______; } while (i > 0); 【答案】i--; 8.补全代码,计算 1 到 100 的偶数和: int sum = 0, i = 2; while (i <= 100) { sum += i; ______; } 【答案】i += 2; 或 i = i + 2; 9.编写程序:输入一个整数,计算其各位数字之和。 【答案】 #include <stdio.h> int main() { int num, sum = 0; scanf("%d", &num); while (num > 0) { sum += num % 10; num /= 10; } printf("各位数字之和为:%d", sum); return 0; } 10.编写程序:输入若干整数(输入 0 时结束),统计正数和负数的个数。 【答案】 #include <stdio.h> int main() { int num, pos = 0, neg = 0; do { scanf("%d", &num); if (num > 0) pos++; else if (num < 0) neg++; } while (num != 0); printf("正数:%d个,负数:%d个", pos, neg); return 0; } 【内容小结】 学科网(北京)股份有限公司 $$

资源预览图

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