第6卷 while循环与do…while循环《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》

2026-06-12
| 2份
| 19页
| 5人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 4.1 while循环,4.2 do…while循环
类型 题集-专项训练
知识点 循环结构
使用场景 中职复习
学年 2026-2027
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 186 KB
发布时间 2026-06-12
更新时间 2026-06-12
作者 xkw__007
品牌系列 学易金卷·考纲百套卷
审核时间 2026-06-12
下载链接 https://m.zxxk.com/soft/58312446.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:山东省春季高考《软件与应用技术类考纲百套卷》,依据山东省《软件与应用技术类专业知识考试标准》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第6卷,按《C语言程序设计》范围和要求编写。具体内容为: 掌握while循环、do…while循环 山东省《软件与应用技术类考纲百套卷》 第6卷 《C语言程序设计》 while循环与do…while循环 考点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共20小题,每题3分,共60分) 1.以下关于 C 语言 while 循环的描述中,正确的是( ) A. 循环体至少执行一次 B. 先执行循环体,再判断循环条件 C. 先判断循环条件,再执行循环体 D. 循环条件为 0 时执行循环体 【答案】C 【解析】while 循环的执行流程是先判断循环条件,条件为真(非 0)时执行循环体,条件为假(0)时结束循环。A、B 是 do-while 循环的特点;D 错误,条件为 0 时不执行循环体。 2.以下关于 C 语言 do…while 循环的描述中,正确的是( ) A. 循环体可能一次都不执行 B. 先判断循环条件,再执行循环体 C. 循环条件为 1 时结束循环 D. 循环体至少执行一次 【答案】D 【解析】do…while 循环的特点是先执行一次循环体,再判断循环条件,因此循环体至少执行一次。A、B 是 while 循环的特点;C错误,条件为 1 时继续执行循环。 3.执行以下程序段后,i 的值是( ) int i=0; while(i<3) i++; A. 0 B. 2 C. 3 D. 4 【答案】C 【解析】i 从 0 开始,每次循环自增 1,当 i=3 时,条件 i<3 不成立,循环结束,因此 i 的值为 3。 4.执行以下程序段后,i 的值是( ) int i=0; do { i++; } while(i<3); A. 3 B. 4 C. 2 D. 0 【答案】A 【解析】先执行 i++,i 变为 1,判断 i<3 成立;再执行 i++,i 变为 2,判断成立;再执行 i++,i 变为 3,判断 i<3 不成立,循环结束,i 的值为 3。 5.以下程序段的输出结果是( ) int i=1; while(i<=5) { printf("%d",i); i++; } A. 12345 B. 1234 C. 01234 D. 012345 【答案】A 【解析】i 从 1 开始,每次循环输出 i 的值然后自增 1,直到 i=6 时条件不成立,因此输出 12345。 6.以下程序段的输出结果是( ) int i=1; do { printf("%d",i); i++; } while(i<=5); A. 12345 B. 1234 C. 01234 D. 012345 【答案】A 【解析】先执行循环体输出 1,i 变为 2,判断 i<=5 成立;依次输出 2、3、4、5,i 变为 6 时条件不成立,循环结束,输出 12345。 7.以下程序段的输出结果是( ) int i=0; while(i++<3) printf("%d",i); A. 012 B. 123 C. 0123 D. 1234 【答案】B 【解析】后置自增 i++ 先使用 i 的原值参与条件判断,再自增。i=0 时,0<3 成立,i 自增为 1,输出 1;i=1 时,1<3 成立,i 自增为 2,输出 2;i=2 时,2<3 成立,i 自增为 3,输出 3;i=3 时,3<3 不成立,循环结束,输出 123。 8.以下程序段的输出结果是( ) int i=0; do { printf("%d",i); } while(i++<3); A. 012 B. 123 C. 0123 D. 1234 【答案】C 【解析】先执行循环体输出 0,然后判断 i++<3,i 自增为 1;再输出 1,判断 i++<3,i 自增为 2;输出 2,判断 i++<3,i 自增为 3;输出 3,判断 i++<3,i 自增为 4,条件不成立,循环结束,输出 0123。 9.执行以下程序段后,sum 的值是( ) int i=0, sum=0; while(i<=10) { sum += i; i += 2; } A. 10 B. 20 C. 30 D. 55 【答案】C 【解析】i 依次取 0、2、4、6、8、10,sum 累加这些值:0+2+4+6+8+10=30。 10.执行以下程序段后,sum 的值是( ) int i=1, sum=0; do { sum += i; i++; } while(i<=5); A. 15 B. 10 C. 5 D. 20 【答案】A 【解析】i 依次取 1、2、3、4、5,sum 累加这些值:1+2+3+4+5=15。 11.以下程序段的输出结果是( ) int i=0; while(i<5) { if(i==3) break; i++; } printf("%d",i); A. 3 B. 4 C. 5 D. 0 【答案】A 【解析】break 语句的作用是跳出整个循环。i 从 0 开始,每次自增 1,当 i=3 时,执行 break 跳出循环,此时 i 的值为 3。 12.以下程序段的输出结果是( ) int i=0; while(i<5) { i++; if(i==3) continue; printf("%d",i); } A. 12345 B. 1245 C. 01245 D. 01234 【答案】B 【解析】continue 语句的作用是跳过本次循环剩余的语句,直接进入下一次循环判断。i=1 时输出 1,i=2 时输出 2,i=3 时执行 continue 跳过 printf,i=4 时输出 4,i=5 时输出 5,最终输出 1245。 13.以下程序段中,会产生死循环的是( ) A. int i=0; while(i<10) i++; B. int i=0; while(i>0) i++; C. int i=0; do {i++;} while(i<10); D. int i=0; while(1) i++; 【答案】D 【解析】while (1) 的循环条件永远为真,会产生死循环。A、C 循环条件会变为假,正常结束;B初始条件 i>0 为假,循环体一次都不执行。 14.以下 do…while 循环的语法中,正确的是( ) A. do {printf("a");} while(1) B. do printf("a") while(1); C. do {printf("a");} while(1); D. do while(1) {printf("a");} 【答案】C 【解析】do…while 循环的语法是:do {循环体} while (条件); 注意 while 后面必须有分号。A 缺少分号;B 循环体缺少分号;D 语法错误。 15.以下程序段的输出结果是( ) int i=5; while(i>0) i--; printf("%d",i); A. 5 B. 0 C. -1 D. 1 【答案】B 【解析】i 从 5 开始,每次自减 1,当 i=0 时,条件 i>0 不成立,循环结束,i 的值为 0。 16.以下程序段的输出结果是( ) int i=0; while(i<10); { printf("%d",i); i++; } A. 循环条件错误 B. 循环体没有加花括号 C. while 后面多了分号,导致死循环 D. 没有使用 do…while 循环 【答案】C 【解析】while 后面的分号表示空语句,循环体是空语句,i 的值永远为 0,循环条件 i<10 永远成立,产生死循环。 17.以下关于 break 和 continue 语句的描述中,正确的是( ) A. break 语句只能用于循环语句中 B. break 和 continue 的作用相同 C. break 和 continue 都可以用于 switch 语句中 D. continue 语句只能用于循环语句中 【答案】D 【解析】continue 语句只能用于循环语句中,作用是跳过本次循环;break 语句可以用于循环语句和 switch 语句中,作用是跳出整个循环或 switch 结构。 18.执行以下程序段后,输出结果是( ) int i=1, j=0; while(i<=3) { j += i; i++; } printf("%d",j); A. 6 B. 9 C. 12 D. 15 【答案】A 【解析】i=1 时 j=1,i=2 时 j=3,i=3 时 j=6,i=4 时循环结束,输出 6。 19.以下程序段的输出结果是( ) int i=0; do { if(i%2==0) printf("%d",i); i++; } while(i<5); A. 024 B. 13 C. 01234 D. 24 【答案】A 【解析】i 从 0 开始,当 i 为偶数时输出 i 的值,i 依次取 0、1、2、3、4,输出 0、2、4,结果为 024。 20.执行以下两个程序段后,输出结果分别是( ) // 程序段1 int i=5; while(i<5) printf("%d",i); // 程序段2 int i=5; do printf("%d",i); while(i<5); A. 5 和 5 B. 无输出和 5 C. 5 和无输出 D. 无输出和无输出 【答案】B 【解析】程序段 1(while 循环):先判断循环条件i<5,初始 i=5,条件为假,循环体一次都不执行,因此无输出;程序段 2(do-while 循环):先执行一次循环体输出 5,再判断循环条件i<5,条件为假,循环结束,因此输出 5。 二、简答题(本大题共2小题,每题10分,共20分) 1.阅读以下 C 语言程序,写出程序运行后的完整输出结果______ #include <stdio.h> int main() { int i=1, sum=0; while(i<=10) { if(i%2==1) sum += i; i++; } printf("sum=%d ",sum); return 0; } 【答案】sum=25 2.阅读以下 C 语言程序,写出程序运行后的完整输出结果______ #include <stdio.h> int main() { int i=0; do { printf("%d ",i); i += 2; } while(i<10); printf(" i=%d ",i); return 0; } 【答案】 0 2 4 6 8 i=10 三、案例分析题(本大题共1小题,每题10分,共10分) 1.以下程序的功能是:输入一个正整数 n,计算 n 的阶乘(n! = 1×2×3×…×n)。请在程序的下划线处填入正确的内容,使程序完整并能正确运行。 #include <stdio.h> int main() { int n, i=1; long fact=1; printf("请输入一个正整数:"); scanf("%d", &n); if(n<0) { printf("输入错误! "); return 1; } while(____1____) { fact *= i; ____2____; } printf("%d! = %ld ", n, fact); return 0; } 【答案】 1.i<=n 2.i++(或i=i+1、i+=1) 四、综合应用题(本大题共1小题,每题10分,共10分) 1.编写一个 C 语言程序,实现以下功能: 输入一个正整数 n 使用 while 循环计算 1 到 n 的所有整数的和 输出计算结果 检查输入数据的合法性(n 必须为正整数) 【答案】 #include <stdio.h> int main() { int n, i=1, sum=0; printf("请输入一个正整数:"); scanf("%d", &n); // 检查输入合法性 if(n<=0) { printf("输入错误!请输入正整数。 "); return 1; } // 计算1到n的和 while(i<=n) { sum += i; i++; } printf("1到%d的和为:%d ", n, sum); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:山东省春季高考《软件与应用技术类考纲百套卷》,依据山东省《软件与应用技术类专业知识考试标准》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第6卷,按《C语言程序设计》范围和要求编写。具体内容为: 掌握while循环、do…while循环 山东省《软件与应用技术类考纲百套卷》 第6卷 《C语言程序设计》 while循环与do…while循环 考点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共20小题,每题3分,共60分) 1.以下关于 C 语言 while 循环的描述中,正确的是( ) A. 循环体至少执行一次 B. 先执行循环体,再判断循环条件 C. 先判断循环条件,再执行循环体 D. 循环条件为 0 时执行循环体 2.以下关于 C 语言 do…while 循环的描述中,正确的是( ) A. 循环体可能一次都不执行 B. 先判断循环条件,再执行循环体 C. 循环条件为 1 时结束循环 D. 循环体至少执行一次 3.执行以下程序段后,i 的值是( ) int i=0; while(i<3) i++; A. 0 B. 2 C. 3 D. 4 4.执行以下程序段后,i 的值是( ) int i=0; do { i++; } while(i<3); A. 3 B. 4 C. 2 D. 0 5.以下程序段的输出结果是( ) int i=1; while(i<=5) { printf("%d",i); i++; } A. 12345 B. 1234 C. 01234 D. 012345 6.以下程序段的输出结果是( ) int i=1; do { printf("%d",i); i++; } while(i<=5); A. 12345 B. 1234 C. 01234 D. 012345 7.以下程序段的输出结果是( ) int i=0; while(i++<3) printf("%d",i); A. 012 B. 123 C. 0123 D. 1234 8.以下程序段的输出结果是( ) int i=0; do { printf("%d",i); } while(i++<3); A. 012 B. 123 C. 0123 D. 1234 9.执行以下程序段后,sum 的值是( ) int i=0, sum=0; while(i<=10) { sum += i; i += 2; } A. 10 B. 20 C. 30 D. 55 10.执行以下程序段后,sum 的值是( ) int i=1, sum=0; do { sum += i; i++; } while(i<=5); A. 15 B. 10 C. 5 D. 20 11.以下程序段的输出结果是( ) int i=0; while(i<5) { if(i==3) break; i++; } printf("%d",i); A. 3 B. 4 C. 5 D. 0 12.以下程序段的输出结果是( ) int i=0; while(i<5) { i++; if(i==3) continue; printf("%d",i); } A. 12345 B. 1245 C. 01245 D. 01234 13.以下程序段中,会产生死循环的是( ) A. int i=0; while(i<10) i++; B. int i=0; while(i>0) i++; C. int i=0; do {i++;} while(i<10); D. int i=0; while(1) i++; 14.以下 do…while 循环的语法中,正确的是( ) A. do {printf("a");} while(1) B. do printf("a") while(1); C. do {printf("a");} while(1); D. do while(1) {printf("a");} 15.以下程序段的输出结果是( ) int i=5; while(i>0) i--; printf("%d",i); A. 5 B. 0 C. -1 D. 1 16.以下程序段的输出结果是( ) int i=0; while(i<10); { printf("%d",i); i++; } A. 循环条件错误 B. 循环体没有加花括号 C. while 后面多了分号,导致死循环 D. 没有使用 do…while 循环 17.以下关于 break 和 continue 语句的描述中,正确的是( ) A. break 语句只能用于循环语句中 B. break 和 continue 的作用相同 C. break 和 continue 都可以用于 switch 语句中 D. continue 语句只能用于循环语句中 18.执行以下程序段后,输出结果是( ) int i=1, j=0; while(i<=3) { j += i; i++; } printf("%d",j); A. 6 B. 9 C. 12 D. 15 19.以下程序段的输出结果是( ) int i=0; do { if(i%2==0) printf("%d",i); i++; } while(i<5); A. 024 B. 13 C. 01234 D. 24 20.执行以下两个程序段后,输出结果分别是( ) // 程序段1 int i=5; while(i<5) printf("%d",i); // 程序段2 int i=5; do printf("%d",i); while(i<5); A. 5 和 5 B. 无输出和 5 C. 5 和无输出 D. 无输出和无输出 二、简答题(本大题共2小题,每题10分,共20分) 1.阅读以下 C 语言程序,写出程序运行后的完整输出结果______ #include <stdio.h> int main() { int i=1, sum=0; while(i<=10) { if(i%2==1) sum += i; i++; } printf("sum=%d ",sum); return 0; } 2.阅读以下 C 语言程序,写出程序运行后的完整输出结果______ #include <stdio.h> int main() { int i=0; do { printf("%d ",i); i += 2; } while(i<10); printf(" i=%d ",i); return 0; } 三、案例分析题(本大题共1小题,每题10分,共10分) 1.以下程序的功能是:输入一个正整数 n,计算 n 的阶乘(n! = 1×2×3×…×n)。请在程序的下划线处填入正确的内容,使程序完整并能正确运行。 #include <stdio.h> int main() { int n, i=1; long fact=1; printf("请输入一个正整数:"); scanf("%d", &n); if(n<0) { printf("输入错误! "); return 1; } while(____1____) { fact *= i; ____2____; } printf("%d! = %ld ", n, fact); return 0; } 四、综合应用题(本大题共1小题,每题10分,共10分) 1.编写一个 C 语言程序,实现以下功能: 输入一个正整数 n 使用 while 循环计算 1 到 n 的所有整数的和 输出计算结果 检查输入数据的合法性(n 必须为正整数) 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第6卷 while循环与do…while循环《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
1
第6卷 while循环与do…while循环《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
2
第6卷 while循环与do…while循环《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。