专题五 C语言控制语句:循环(讲义)-《编程语言基础—C语言》(高教版第五版)高考备考讲练测(山东省)

2024-06-28
| 13页
| 146人阅读
| 6人下载
精品

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 第4章 循环结构程序设计
类型 教案-讲义
知识点 循环结构
使用场景 中职复习-二轮专题
学年 2024-2025
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 103 KB
发布时间 2024-06-28
更新时间 2024-06-28
作者 xkw__007
品牌系列 上好课·一轮讲练测
审核时间 2024-06-28
下载链接 https://m.zxxk.com/soft/46020859.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

专题五 C语言控制语句:循环(讲义) ---《编程语言基础—C语言》专题复习讲练测 [考纲要求] 1:掌握while循环、do…while循环、for循环和循环嵌套的用法。 2:理解break语句和continue语句的用法。 [课时安排] 3课时 [知识梳理] 一:循环语句 · while循环 C语言中的while循环是一种基本的循环结构,允许重复执行一段代码直到某个条件不再满足。while循环的基本语法如下: 1. while (条件) { 2.     // 要执行的代码块 3. } "条件"是一个布尔表达式,当其结果为真(true)时,循环内的代码块会被执行。一旦条件的结果为假(false),循环就会停止。控制流将跳到循环之后的第一条语句。 while循环执行步骤: ① 程序首先判断条件表达式。 ② 如果条件为true,执行循环体内的代码块。 ③ 循环体执行完毕后,再次判断条件表达式。 ④ 如果条件仍然为true,重复步骤2和3。 ⑤ 当条件表达式的结果为false时,循环终止,程序继续执行循环外的代码。 示例: 1. #include <stdio.h> 2. 3. int main() { 4.     int count = 0; 5. 6.     while (count < 5) { 7.         printf("%d ", count); 8.         count++; // 每次循环后递增count 9.     } 10. 11.     return 0; 12. } while循环会打印从0到4的数字,然后停止,因为当count达到5时,条件count < 5不再为真。 注意,如果条件表达式始终为真或者没有在循环体内部修改条件表达式,那么while循环可能会变成无限循环。为了避免这种情况,确保循环体内部有逻辑可以改变条件表达式的值。 · do...while循环 C语言中的do...while循环是一种后测试循环结构,与while循环类似,但它至少会执行一次循环体。do...while循环的基本语法如下: 1. do { 2.     // 循环体:至少执行一次的代码块 3. } while (条件表达式); 循环体:这是一组代码,至少会被执行一次,无论条件表达式的结果如何。 条件表达式:这是一个逻辑表达式,它返回一个布尔值(true 或 false)。循环体执行后,程序会评估这个条件表达式。 do...while循环执行流程: ① 执行循环体内的代码块。 ② 评估条件表达式。 ③ 如果条件为true,返回步骤1,再次执行循环体。 ④ 如果条件为false,循环终止,程序继续执行循环外的代码。 示例: 1. #include <stdio.h> 2. 3. int main() { 4.     int i = 0; // 初始化循环控制变量 5. 6.     do { 7.         printf("%d ", i); // 打印当前的i值 8.         i++; // 更新循环控制变量 9.     } while (i < 5); // 条件表达式 10. 11.     return 0; 12. } do...while循环将打印0到4的数字,每次循环后i的值增加1。当i等于5时,条件i < 5不再满足,循环终止。 · do...while循环是后测试循环,意味着它先执行循环体,然后再判断条件表达式。 · 与while循环不同,do...while循环保证至少执行一次循环体。 注意事项: ① 条件表达式的位置:do...while循环的条件表达式位于循环体之后,使用分号;结束。 ② 避免无限循环:与while循环一样,确保循环体内部包含逻辑以改变条件表达式的值,以避免无限循环。 · for循环 C语言中的for循环是一种非常灵活的循环结构,允许初始化循环控制变量、定义循环继续的条件以及更新循环控制变量,所有这些都在循环的头部完成。 基本语法: 1. for (初始化表达式; 条件表达式; 更新表达式) { 2.     // 循环体:当条件表达式为真时执行的代码块 3. } · 初始化表达式:这是在循环开始之前执行的表达式,通常用于设置循环控制变量的初始值。 · 条件表达式:这是一个逻辑表达式,返回一个布尔值(true 或 false)。只有当条件表达式为true时,循环体才会执行。 · 更新表达式:每次循环体执行完毕后,这个表达式会被执行,通常用于更新循环控制变量。 for循环的执行流程 ① 执行初始化表达式。 ② 判断条件表达式。 ③ 如果条件为true,执行循环体内的代码块。 ④ 执行更新表达式。 ⑤ 返回步骤2,再次判断条件表达式。 ⑥ 如果条件为false,循环终止,程序继续执行循环外的代码。 示例: 1. #include <stdio.h> 2. 3. int main() { 4.     for (int i = 0; i < 5; i++) { 5.         printf("%d ", i); 6.     } 7.     return 0; 8. } 在这个示例中,for循环将打印0到4的数字。初始化表达式int i = 0设置了循环控制变量i的初始值。条件表达式i < 5决定了循环体的执行。更新表达式i++在每次循环后递增i的值。 for循环的条件表达式可以被省略。当条件表达式被省略时,for循环会变成一个无限循环,因为省略的条件默认被视为真(true)。这意味着只要没有显式地在循环体内使用break语句来退出循环,循环就会一直执行下去。 1. for (初始化表达式; ; 更新表达式) { 2.     // 循环体 3.     // 必须使用break来退出循环 4. } 示例: 1. #include <stdio.h> 2. 3. int main() { 4.     int i = 0; 5.     for ( ; ; i++) { // 条件表达式被省略 6.         if (i > 10) { // 显式检查条件以退出循环 7.             printf("退出循环 "); 8.             break; // 退出循环 9.         } 10.         printf("%d ", i); 11.     } 12.     return 0; 13. } for循环的条件表达式被省略,循环将无限执行,直到遇到break语句。循环体内的if语句检查i的值,当i大于10时,执行break语句,退出循环。 二:循环语句的嵌套 在C语言中,循环语句可以嵌套使用,即一个循环内部可以包含另一个循环。嵌套循环的基本语法可以是任意类型的循环相互嵌套,包括for、while和do...while。外层循环控制大的迭代范围,内层循环则在每次外层循环迭代中执行。例如,以下是for循环的嵌套。 1. for (int outer = 0; outer < n; outer++) { 2.     for (int inner = 0; inner < m; inner++) { 3.         // 执行一些操作 4.     } 5. } 示例: 1. #include <stdio.h> 2. 3. int main() { 4.     int rows, cols; 5.     rows = 5; // 假设我们有一个5x5的矩阵 6.     cols = 5; 7. 8.     // 外层循环控制行 9.     for (int i = 0; i < rows; i++) { 10.         // 内层循环控制列 11.         for (int j = 0; j < cols; j++) { 12.             // 假设我们在打印矩阵中的元素 13.             printf("%d ", (i * cols) + j); 14.         } 15.         printf(" "); 16.     } 17. 18.     return 0; 19. } 执行步骤: ① 外层循环开始,初始化外层循环变量,并检查条件。 ② 如果外层条件为真,执行内层循环。 ③ 内层循环开始,初始化内层循环变量,并检查条件。 ④ 如果内层条件为真,执行内层循环体。 ⑤ 执行内层循环的更新表达式,然后再次检查内层条件。 ⑥ 重复步骤3-5,直到内层条件为假。 ⑦ 内层循环结束,外层循环执行更新表达式,然后再次检查外层条件。 ⑧ 重复步骤1-7,直到外层条件为假。 所有循环结束,程序继续执行循环外的代码。 三:跳转语句:break和continue 在C语言中,break语句是一种控制流语句,用于立即终止最近的for、while或do...while循环的执行,强制使程序流程跳出循环体,继续执行循环之后的代码。 1. break; //它没有参数,单独作为一个语句使用 break语句在不同类型的循环中的使用示例: 1. #include <stdio.h> 2. 3. int main() { 4.     // 在while循环中使用break 5.     int i = 0; 6.     while (1) { // 无限循环 7.         if (i > 5) { 8.             break; // 当i大于5时退出循环 9.         } 10.         printf("%d ", i); 11.         i++; 12.     } 13. 14.     // 在for循环中使用break 15.     for (int j = 0; j < 10; j++) { 16.         if (j == 5) { 17.             break; // 当j等于5时退出循环 18.         } 19.     } 20. 21.     // 在do...while循环中使用break 22.     int k = 0; 23.     do { 24.         if (k == 5) { 25.             break; // 当k等于5时退出循环 26.         } 27.         k++; 28.     } while (k < 10); 29. 30.     return 0; 31. } break语句作用: break语句会立即终止最近的循环,不管循环的条件是否还满足。执行break后,程序流程会跳到循环外,不会执行循环的更新表达式或条件表达式。 注意事项: 只能在循环或switch语句中使用:break语句只能在for、while或do...while循环中使用,或者在switch语句的case分支中使用。 在C语言中,continue语句是另一种控制流语句,用于跳过当前循环的剩余部分,并立即开始下一次循环迭代。continue语句通常用于在满足特定条件时忽略当前迭代的剩余部分,而不是退出整个循环。 1. continue; ////它没有参数,单独作为一个语句使用 1. #include <stdio.h> 2. 3. int main() { 4.     // 在for循环中使用continue 5.     for (int i = 0; i < 10; i++) { 6.         if (i % 2 == 0) { 7.             continue; // 如果i是偶数,跳过当前迭代的剩余部分 8.         } 9.         printf("%d ", i); // 只有奇数会被打印 10.     } 11. 12.     // 在while循环中使用continue 13.     int j = 0; 14.     while (j < 10) { 15.         if (j % 3 == 0) { 16.             continue; // 如果j能被3整除,跳过当前迭代的剩余部分 17.         } 18.         printf("%d ", j); 19.         j++; 20.     } 21. 22.     // 在do...while循环中使用continue 23.     int k = 0; 24.     do { 25.         if (k == 5) { 26.             continue; // 如果k等于5,跳过当前迭代的剩余部分 27.         } 28.         k++; 29.     } while (k < 10); 30. 31.     return 0; 32. } continue语句作用: continue语句会导致跳过当前循环迭代的剩余部分,直接进入下一次迭代的条件检查。continue语句不会退出整个循环,只是跳过当前迭代。 注意事项: continue语句只能在for、while或do...while循环中使用。 [真题练讲] 1.(2020职教高考题)若有定义语句intk=-1,s=5;,则以下循环体的执行次数是do{s+=k++;}while(!k != 0); A.0次 B.1次 C.2次 D.无限次 【答案】C 【解析】do...while循环先执行循环体,执行“s+=k++”,此时k的值为0。判断条件“!k != 0”,循环条件成立。继续执行循环体,再次判断条件,此时条件不成立。因此循环体执行的次数为2次。 2.(2020职教高考题)运行以下程序: #include <stdio. h> main() int m,n,r,s; scanf("%d,%d",&m,&n); s=m * n; while(n) { r=m % n; m=n; n=r; } printf("%d,%d ",m,s/m); 输人20,30,输出结果是( ) A.5,120 B.10,60 C.20,30 D.30,20 【答案】B 【解析】m = 20,n = 30,s = m * n = 600。计算 m % n 得到余数 r。将 n 赋值给 m,将 r 赋值给 n。重复这个过程直到 n 为 0。循环结束:m 中的值即为 20 和 30 的最大公约数。对于输入 20 和 30:最大公约数是 10。最小公倍数是 600 / 10 = 60。 3.(2020年职教高考题)下面有关for循环结构描述正确的是( ) A.for 循环中的三个表达式都不能缺少 B.for循环可以用continue语句跳出循环体 C.for循环只能用于循环次数已经确定的情况 D.for循环的循环体可以包含多条语句,但必须用花括号括起来 【答案】D 【解析】A. 错误:for 循环的三个表达式可以省略,不是必须的。B. 错误:continue 语句用于跳过当前循环的剩余部分,而不是跳出整个循环体。C. 错误:for 循环不仅限于已知次数的循环,也可以用于条件控制的循环。 4.(2019年职教高考题)以下程序段的运行结果是( ) int a=-3,b=-4 while(++a&&b++) printf(“%d,%d ”,a,b); A.0,-2 B.0,-1 C.0,0 D.1,0 【答案】A 【解析】初始:a = -3,b = -4。第一次循环:++a 变为 -2,b++ 判断条件时是 -4,循环继续。打印:a = -2,b = -4(b 打印后自增,变为 -3)。第二次循环:++a 变为 -1,b++ 判断条件时是 -3,循环继续。打印:a = -1,b = -3(b 打印后自增,变为 -2)。第三次循环:++a 变为 0,b++ 判断条件时是 -2,由于 ++a 结果为0,循环停止。最终结果是打印了两次,a 的最终值是 0,b 的最终值是 -2。所以正确答案是 A. 0, -2。 5.(2019年职教高考题)以下程序段的运行结果是 int x=3; do{ printf(“%2d”,x-=2); }while(!(--x)); A.2-1 B.1-3 C.1-2 D.0-3 【答案】C 【解析】do...while循环先执行循环体,此时x的值为1并在屏幕上打印出来,执行判断条件“!(--x)”,条件为真,继续执行循环体,x的值为-2并在屏幕上打印出来。判断条件,此时条件不成立,因此,输出结果为“1-2”。 6.(2018年职教高考题)若i是int型变量,以下循环体执行的次数是( ) for(i=2;i==0;) printf(“%d ”,i--); A.0 B.1 C.2 D.无限次 【答案】A 【解析】初始化:i=2。条件判断:i==0,这是false,因为i是2。循环体:由于for循环的条件是false,循环体实际上不会执行。 [限时练习] 1.下列for循环的次数为( ) for ( i=0,x=0;! x && i<=5;i++) A. 5 B. 6 C. 1 D. 无限 【答案】B 【解析】初始化:i = 0,x = 0。条件判断:!x && i <= 5 为真(因为 !x 为真,i 初始为0,小于等于5)。执行循环体。循环更新:i++。循环将继续执行,直到条件 !x && i <= 5 不再为真。由于 x 的值在循环体中没有改变,!x 始终为真。因此,循环将一直执行,直到 i 的值超过5。循环更新 i 从0开始,直到5,所以循环将执行6次(0到5,共6个整数值)。当 i 增加到6时,条件 i <= 5 不再满足,循环结束。 2.下述关于循环体的描述中错误是( ) A.循环体中可以出现break语句和continue语句; B.循环体中还可以出现循环语句; C.循环体中不能出现goto语句; D.循环体中可以出现开关语句 【答案】C 【解析】在C语言中,goto 语句可以跳出循环体,跳转到程序中预先指定的标签位置。因此,goto 语句是可以在循环体中使用的。 3.语句while(!e);中的条件 !e 等价于( ) A.e==0 B.e!=1 C.e!=0 D.~e 【答案】A 【解析】e != 1 表示 e 的值不等于1。这并不等同于 !e,因为 e 可以是任何非1的值,包括0,也可以是其他非零值。 e != 0 表示 e 的值不等于零。这与 !e 的含义相反,因为当 e 为非零时,!e 为假。 ~e 是按位取反运算符,它对 e 的每个位进行取反,这与逻辑非运算符 ! 不同。 4.C语言中while 和do-while 循环的主要区别是( ) A.do-while的循环体至少无条件执行一次 B.while 的循环控制条件比do-while 的循环控制条件严格 C.do-while 允许从外部转到循环体内 D.do-while 的循环体不能是复合语句 【答案】A 【解析】while 和 do-while 的循环控制条件严格性是一样的,它们都要求布尔表达式的结果来决定是否继续执行循环。do-while 循环不允许从外部转到循环体内,它只能从循环体内部通过 continue 语句跳到循环末尾的条件判断处。do-while 的循环体可以是复合语句(即由多条语句组成的花括号 {} 内的语句),这与 while 循环相同。 5.该程序的输出结果为___________。 #include <stdio.h> int main() { int a = 0, b = 0; for (a = 1, b = 1; a <= 100; a++) { if (b >= 20) break; if (b % 3 == 1) { b = b + 3; continue; } b = b-5; } printf("%d ", a); return 0; } 【答案】8 【归纳小结】 C语言中的循环语句主要包括 for 循环、while 循环和 do-while 循环,它们的基本用法如下: for 循环: 格式:for (初始化表达式; 条件表达式; 迭代表达式) { 循环体; } 特点:初始化、条件判断、迭代更新都在同一行,适合已知循环次数的情况。 while 循环: 格式:while (条件表达式) { 循环体; 迭代表达式; } 特点:先判断条件,条件为真时执行循环体,适合循环次数未知的情况。 do-while 循环: 格式:do { 循环体; 迭代表达式; } while (条件表达式); 特点:至少执行一次循环体,然后判断条件,条件为真继续循环,适合需要至少执行一次循环体的情况。 循环控制语句: break:立即退出循环。 continue:跳过当前循环的剩余部分,进入下一次迭代。 学科网(北京)股份有限公司 $$

资源预览图

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