第16练 4.6 循环结构程序设计实例 《C语言》 (第五版) 一课一练 (山东省)

2026-06-24
| 2份
| 10页
| 2人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 作业-同步练
知识点 C语言概述
使用场景 同步教学
学年 2026-2027
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 106 KB
发布时间 2026-06-24
更新时间 2026-06-24
作者 xkw_068401954
品牌系列 上好课·一课一练
审核时间 2026-06-24
下载链接 https://m.zxxk.com/soft/58480018.html
价格 1.00储值(1储值=1元)
来源 学科网

内容正文:

【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《C语言》(第五版)《一课一练》第16练,内容是4.6 循环结构程序设计实例。 《C语言》(第五版)一课一练 第16练 4.6 循环结构程序设计实例 一、单选题 1. 以下关于循环累加的叙述,正确的是( ) A. 累加变量在循环前应初始化为1 B. 累加操作应放在循环条件判断之前 C. 每次循环累加变量的增量固定不变 D. 累加变量在循环前应初始化为0 【答案】D 【解析】累加变量的作用是记录累加结果,初始值应为0,D选项正确。初始化为1会导致结果多1,A选项错误。累加操作在循环体内执行,B选项错误。增量可以变化,例如累加1、2、3等,C选项错误。 2. 以下关于累乘的叙述,正确的是( ) A. 累乘变量应初始化为0 B. 累乘变量应初始化为1 C. 累乘的结果一定大于累加的结果 D. 累乘不需要使用循环 【答案】B 【解析】累乘变量的初始值应为1,因为1乘以任何数等于该数本身,B选项正确。初始化为0会使结果永远为0,A选项错误。累乘和累加结果大小取决于具体数据,C选项错误。累乘需要循环来重复乘法运算,D选项错误。 3. 判断一个整数n是否为素数,循环变量i的取值范围通常是( ) A. 从2到n-1之间 B. 从1到n C. 从1到n-1 D. 从0到n 【答案】A 【解析】素数是大于1的自然数,除了1和它本身没有其他因子。判断素数时需要检查2到n-1之间是否有因子,A选项正确。1不是素数的判断条件,不需要检查1。实际优化时可检查到根号n,因为如果n有大于根号n的因子,必然有小于根号n的因子与之配对。 4. 以下程序段的功能是求n的阶乘,划线处应填入 int i, n, f = 1; scanf("%d", &n); for (i = 1; i <= n; i++) ______;( ) A. f = f + i B. f = i * i C. f = f * i D. f = f / i 【答案】C 【解析】阶乘是1到n的连续整数相乘,f初始为1,每次乘以i即可,填f=f*i。f=f+i是累加不是累乘,不符合阶乘定义。f=i*i计算的是i的平方,不是阶乘。f=f/i是除法运算。所以应填f=f*i。 5. 以下代码的功能是判断n是否为素数,当n为素数时flag的值为 int n, i, flag = 1; for (i = 2; i < n; i++) if (n % i == 0) flag = 0;( ) A. flag的值为0 B. flag的值为n C. flag的值不确定 D. flag的值为1 【答案】D 【解析】flag初始为1,表示假设n为素数。循环检查2到n-1是否有n的因子,如果有则flag置0。当n为素数时循环中不会执行flag=0,flag保持初始值1。所以n为素数时flag为1。 6. 设 int n=6, s=0, i; 执行以下代码后s的值是 for (i = 1; i < n; i++) if (n % i == 0) s += i;( ) A. s的值为3 B. s的值为12 C. s的值为6 D. s的值为10 【答案】C 【解析】循环检查1到5中哪些是6的因子。6的因子有1、2、3(不包括6本身),累加结果为6。这个程序求的是n的除自身外所有因子之和,6是完美数,因子和等于自身。所以s的值为6。 7. 以下程序段执行后,输出结果是 int i, n = 28, s = 0; for (i = 1; i < n; i++) if (n % i == 0) s += i; if (s == n) printf("完美数"); else printf("非完美数");( ) A. 完美数 B. 编译错误 C. 无输出 D. 非完美数 【答案】A 【解析】循环求28除自身外所有因子之和。28的因子有1、2、4、7、14,累加和为28。s等于n,判断为完美数。完美数是指除自身外所有因子之和等于本身的数,28是第二个完美数。 二、简答题 8. 以下程序的运行结果是【 】。 #include <stdio.h> int main() { int i, n = 5, f = 1; for (i = 1; i <= n; i++) f *= i; printf("%d ", f); return 0; } 【答案】120 【解析】循环从i=1到i=5,每次将f乘以i。f依次变为1、2、6、24、120。最终f的值为120,即5的阶乘。这是求阶乘的标准程序。 三、案例分析题 9. 以下程序的功能是:判断输入的正整数n是否为素数。请填空。 #include <stdio.h> int main() { int n, i, flag = 1; scanf("%d", &n); for (i = 【1】; i < n; i++) if (【2】) { flag = 0; 【3】; } if (flag) printf("素数 "); else printf("非素数 "); return 0; } 【答案】【1】2 【2】n % i == 0 【3】break 【解析】判断素数从2开始检查因子,填2。判断i是否为n的因子用n%i==0,填n%i==0。找到因子后不需要继续检查,用break跳出循环,填break。flag初始为1,找到因子后置0表示非素数。 四、综合应用题 10. 编写一个C程序:输入两个正整数,使用辗转相除法求它们的最大公约数并输出。 【答案】#include <stdio.h> int main() { int a, b, t; scanf("%d%d", &a, &b); while (b != 0) { t = a % b; a = b; b = t; } printf("%d ", a); return 0; } 【解析】使用辗转相除法求最大公约数。每次用a除以b取余数t,然后将b赋给a,t赋给b。当b为0时a即为最大公约数。例如求12和8的最大公约数:12%8=4,8%4=0,结果为4。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《C语言》(第五版)《一课一练》第16练,内容是4.6 循环结构程序设计实例。 《C语言》(第五版)一课一练 第16练 4.6 循环结构程序设计实例 一、单选题 1. 以下关于循环累加的叙述,正确的是( ) A. 累加变量在循环前应初始化为1 B. 累加操作应放在循环条件判断之前 C. 每次循环累加变量的增量固定不变 D. 累加变量在循环前应初始化为0 2. 以下关于累乘的叙述,正确的是( ) A. 累乘变量应初始化为0 B. 累乘变量应初始化为1 C. 累乘的结果一定大于累加的结果 D. 累乘不需要使用循环 3. 判断一个整数n是否为素数,循环变量i的取值范围通常是( ) A. 从2到n-1之间 B. 从1到n C. 从1到n-1 D. 从0到n 4. 以下程序段的功能是求n的阶乘,划线处应填入 int i, n, f = 1; scanf("%d", &n); for (i = 1; i <= n; i++) ______;( ) A. f = f + i B. f = i * i C. f = f * i D. f = f / i 5. 以下代码的功能是判断n是否为素数,当n为素数时flag的值为 int n, i, flag = 1; for (i = 2; i < n; i++) if (n % i == 0) flag = 0;( ) A. flag的值为0 B. flag的值为n C. flag的值不确定 D. flag的值为1 6. 设 int n=6, s=0, i; 执行以下代码后s的值是 for (i = 1; i < n; i++) if (n % i == 0) s += i;( ) A. s的值为3 B. s的值为12 C. s的值为6 D. s的值为10 7. 以下程序段执行后,输出结果是 int i, n = 28, s = 0; for (i = 1; i < n; i++) if (n % i == 0) s += i; if (s == n) printf("完美数"); else printf("非完美数");( ) A. 完美数 B. 编译错误 C. 无输出 D. 非完美数 二、简答题 8. 以下程序的运行结果是【 】。 #include <stdio.h> int main() { int i, n = 5, f = 1; for (i = 1; i <= n; i++) f *= i; printf("%d ", f); return 0; } 三、案例分析题 9. 以下程序的功能是:判断输入的正整数n是否为素数。请填空。 #include <stdio.h> int main() { int n, i, flag = 1; scanf("%d", &n); for (i = 【1】; i < n; i++) if (【2】) { flag = 0; 【3】; } if (flag) printf("素数 "); else printf("非素数 "); return 0; } 四、综合应用题 10. 编写一个C程序:输入两个正整数,使用辗转相除法求它们的最大公约数并输出。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第16练 4.6 循环结构程序设计实例 《C语言》 (第五版) 一课一练 (山东省)
1
第16练 4.6 循环结构程序设计实例 《C语言》 (第五版) 一课一练 (山东省)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。