第三讲 循环结构程序设计 教学设计-山东省春季高考《编程语言基础—C语言》考纲技能通

2025-07-01
| 9页
| 124人阅读
| 2人下载
精品

内容正文:

山东省计算机类高考技能教学 循环结构程序设计 一、教学目标 【知识目标】 1.理解 while 循环、do…while 循环和 for 循环的语法格式及执行流程 2.掌握循环语句的语法格式及关键组成部分 3.掌握多重循环的语法格式及执行流程 【能力目标】 1. 能根据需求选择合适的循环结构 2. 能独立编写含循环的简单程序(如累加、计数) 【素养目标】 1. 培养逻辑思维与问题分解能力 2. 建立调试程序的耐心与严谨性 二、基本知识讲解 while 循环 语法格式: while (条件表达式) {      循环体语句;  } 说明: · 条件表达式:可以是关系表达式(如 i < 10)、逻辑表达式(如 i < 10 && j > 5)或数值表达式(非 0 视为真,0 视为假)。 · 循环体语句:若只有一条语句,可省略大括号 {};若有多条语句,必须用大括号包裹。 执行流程: ① 先判断 条件表达式 的真假。 ② 若条件为真,执行循环体语句,然后返回步骤 1 继续判断。 ③ 若条件为假,跳出循环,执行循环后的下一条语句。 特点:先判断,后执行。若初始条件不满足,循环体可能一次都不执行。 关键组成部分 条件表达式(必选): · 作用:控制循环是否继续执行,结果为真(非 0)时执行循环体,为假(0)时跳出循环。 · 示例:i < 10(关系表达式)、i < 10 && j > 5(逻辑表达式)、a(若a≠0则为真)。 循环体语句(可选): · 作用:重复执行的代码块。 do…while 循环 语法格式: do {      循环体语句;  } while (条件表达式); 说明: · 结尾的 while (条件表达式); 后必须加 ;,否则编译报错。 · 循环体结构与 while 循环一致。 执行流程: ① 先执行一次循环体语句。 ② 判断 条件表达式 的真假。 ③ 若条件为真,返回步骤 1 继续执行循环体;若条件为假,跳出循环。 特点:先执行,后判断。无论条件是否满足,循环体至少执行一次。 关键组成部分 循环体语句(必选): · 作用:先于条件判断执行一次,确保循环至少执行一次。 条件表达式(必选): · 作用:循环体执行后判断条件,决定是否继续循环。 for 循环 语法格式: for (表达式1; 条件表达式; 表达式2) {      循环体语句;  } 说明: · 表达式1:初始化变量(如 int i = 0;),可省略,但分号 ; 不能省。 · 条件表达式:判断循环是否继续(如 i < 10),若省略则视为条件恒真。 · 表达式2:更新变量(如 i++),可省略。 执行流程: ① 执行 表达式1(仅执行一次)。 ② 判断 条件表达式 的真假。 ③ 若条件为真,执行循环体语句,然后执行 表达式2,再返回步骤 2。 ④ 若条件为假,跳出循环。 特点:初始化、条件判断、变量更新集中在一行,结构清晰,适合已知循环次数的场景。算符的关键特性。 关键组成部分 · 表达式 1(初始化表达式,可选): 作用:初始化循环变量(如int i = 0;),仅在循环开始时执行一次。 省略场景:若变量已在循环外初始化(如int i = 1; for (; i<=10; i++))。 · 条件表达式(必选): 作用:每次循环前判断是否继续执行,与 while 循环的条件表达式逻辑相同。 省略场景:若需构造无限循环(如for (; ; ) { ... },需手动用break跳出)。 · 表达式 2(更新表达式,可选): 作用:循环体执行后更新变量(如i++、i += 2),控制循环次数。 省略场景:更新操作在循环体内完成(如for (i=1; i<=10; ) { sum += i; i++; })。 三种循环的对比表格 循环类型 语法结构 执行顺序 循环体最少执行次数 适用场景 while 循环 while(条件) { 语句; } 先判断后执行 0 次 条件驱动的不确定次数循环 do…while 循环 do { 语句; } while(条件); 先执行后判断 1 次 至少需要执行一次的循环 for 循环 for(初始化; 条件; 更新) { 语句; } 先初始化再判断 0 次(条件不满足时) 已知次数或计数型的循环 示例:计算 1+2+3+…+10 的和。 // while 循环实现  #include <stdio.h>  int main() {      int i = 1, sum = 0;      while (i <= 10) {          sum += i;          i++;      }      printf("while循环结果:%d ", sum);      return 0;  }   // do…while 循环实现  #include <stdio.h>  int main() {      int i = 1, sum = 0;      do {          sum += i;          i++;      } while (i <= 10);      printf("do-while循环结果:%d ", sum);      return 0;  }   // for 循环实现  #include <stdio.h>  int main() {      int i, sum = 0;      for (i = 1; i <= 10; i++) {          sum += i;      }      printf("for循环结果:%d ", sum);      return 0;  } · while 循环:先判断 i<=10,再累加 i。 · do…while 循环:先累加 i=1,再判断 i<=10。 · for 循环:i 从 1 开始,每次累加后更新 i++,直到 i>10 结束。 多重循环的定义与作用 多重循环指在一个循环结构的循环体中嵌套另一个循环结构,通常用于解决需要 “多层重复执行” 的问题(如打印二维表格、矩阵运算、穷举搜索等)。常见形式包括: · 双重循环:外层循环嵌套内层循环(最常用)。 · 三重及以上循环:多层嵌套(复杂问题中使用)。 多重循环的语法格式(以双重循环为例): · while 循环嵌套 while 循环 while (外层循环条件) {     // 外层循环体     while (内层循环条件) {         // 内层循环体(含操作语句)         内层循环变量更新;     }     外层循环变量更新; } · for 循环嵌套 for 循环 for (外层循环初始化; 外层循环条件; 外层循环变量更新) {     // 外层循环体     for (内层循环初始化; 内层循环条件; 内层循环变量更新) {         // 内层循环体(含操作语句)     } } · do…while 循环嵌套 for 循环 do {     // 外层循环体     for (内层循环初始化; 内层循环条件; 内层循环变量更新) {         // 内层循环体(含操作语句)     }     外层循环变量更新; } while (外层循环条件); 多重循环的执行流程(以双重循环为例) · 外层循环执行逻辑: 先初始化外层循环变量(如for循环的初始化表达式)。 检查外层循环条件,若为真则进入外层循环体。 外层循环体执行完毕后,更新外层循环变量,再次检查条件,直至条件为假时退出外层循环。 · 内层循环执行逻辑(嵌套在外层循环体内): 每次进入外层循环体时,内层循环会重新初始化变量(如for循环的内层初始化表达式)。 检查内层循环条件,若为真则执行内层循环体,直至内层条件为假时退出内层循环,回到外层循环体的后续步骤。 完整执行流程示例(以 for 嵌套 for 循环为例): for (int i = 1; i <= 3; i++) {  // 外层循环:i从1到3     printf("外层循环i=%d开始 ", i);     for (int j = 1; j <= 2; j++) {  // 内层循环:j从1到2         printf("  内层循环j=%d ", j);     }     printf("外层循环i=%d结束 ", i); } 执行顺序: i=1 → 进入外层循环体 → 初始化j=1 → 检查j<=2为真 → 执行内层循环体(打印j=1)→ j=2 → 执行内层循环体(打印j=2)→ j=3 → 内层条件为假,退出内层循环 → 外层更新i=2 → 重复上述流程,直至i=4时外层条件为假,结束循环。 多重循环的关键组成部分 · 循环变量隔离: 外层与内层循环变量需使用不同名称(如外层用i,内层用j),避免变量冲突。 示例:错误写法for (int i=1; i<=5; i++) { for (int i=1; i<=3; i++) { ... } }(内层i会覆盖外层i)。 · 循环条件控制: 外层循环控制 “大循环次数”,内层循环控制 “每轮大循环中的小循环次数”。 例:打印 3 行 2 列的表格,外层循环控制行数(3 次),内层循环控制列数(2 次 / 行)。 · 循环变量更新: 内层和外层循环变量均需在合适位置更新,避免死循环。 例:while (i<10) { while (j<5) { j++; } i++; }(内外层变量均需更新)。 多重循环的执行次数计算: 若外层循环执行m次,内层循环每次执行n_i次(i为外层循环的第i轮),则总执行次数为n_1 + n_2 + ... + n_m。 特例:内层次数固定(如外层循环m次,内层每次循环n次),总次数为m × n。 例:外层i从1到3(3 次),内层j从1到2(2 次 / 轮),总次数为3×2=6次(见前例执行流程)。 三、例题讲解 1.输入一个正整数 n,使用 while 循环计算 n 的阶乘(即 n! = 1×2×3×...×n)。例如: 输入 5,输出 120(5! = 1×2×3×4×5 = 120) 输入 0,输出 1(0! = 1,数学定义) #include <stdio.h>   int main() {     int n, i = 1;     long long result = 1;  // 使用long long避免大数溢出       printf("请输入一个非负整数: ");     scanf("%d", &n);       // 处理n为负数的情况     if (n < 0) {         printf("负数没有阶乘! ");         return 1;     }       // while循环计算阶乘     while (i <= n) {         result *= i;  // 等价于 result = result * i         i++;          // 计数器递增     }       printf("%d! = %lld ", n, result);     return 0; } 2.输入正整数 n,使用 for 循环打印斐波那契数列的前 n 项。斐波那契数列定义为: F(0) = 0, F(1) = 1 F(n) = F(n-1) + F(n-2)(n ≥ 2) 例如: 输入 n=6,输出 0, 1, 1, 2, 3, 5。 #include <stdio.h>   int main() {     int n, a = 0, b = 1, c;       printf("请输入斐波那契数列的项数: ");     scanf("%d", &n);       printf("斐波那契数列前%d项: ", n);       // for循环生成斐波那契数列     for (int i = 0; i < n; i++) {         printf("%d ", a);  // 输出当前项                   // 计算下一项并更新变量         c = a + b;         a = b;         b = c;     }       return 0; } 3.使用双重循环打印完整的九九乘法表,格式如下: 1×1=1 1×2=2 1×3=3 ... 1×9=9 2×1=2 2×2=4 2×3=6 ... 2×9=18 ... 9×1=9 9×2=18 9×3=27 ... 9×9=81 #include <stdio.h>   int main() {     for (int i = 1; i <= 9; i++) {  // 外层循环控制行数         for (int j = 1; j <= 9; j++) {  // 内层循环控制每行星式数量             printf("%d×%d=%d\t", i, j, i * j);         }         printf(" ");  // 换行     }       return 0; } 四、课堂小结 三种循环对比: while:先判断后执行,循环体可能不执行。 do…while:先执行后判断,循环体至少执行一次。 for:初始化、条件判断、变量更新集中,适合已知循环次数场景。 多重循环:外层循环每执行一次,内层循环完整执行一轮,用于打印图形、遍历二维数据等。 核心要点:合理设置循环条件和变量更新,避免死循环;嵌套循环控制变量需区分,避免混淆。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

第三讲 循环结构程序设计 教学设计-山东省春季高考《编程语言基础—C语言》考纲技能通
1
第三讲 循环结构程序设计 教学设计-山东省春季高考《编程语言基础—C语言》考纲技能通
2
第三讲 循环结构程序设计 教学设计-山东省春季高考《编程语言基础—C语言》考纲技能通
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。