第24练 第5章 循环程序举例《C语言程序设计》(电子工业出版社)一课一练
|
2份
|
7页
|
32人阅读
|
0人下载
内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第5章的第24练,内容涵盖第5章循环的控制的5.7 循环程序举例。
《C语言程序设计》(电子工业出版社)一课一练 第24练
第5章 循环的控制
5.7 循环程序举例
1、 单项选择题(本题共4小题)
1、下列关于 "水仙花" 数的定义,正确的是( )
A. 一个三位数,各位数字的平方和等于其本身
B. 一个三位数,各位数字的立方和等于其本身
C. 一个四位数,各位数字的四次方和等于其本身
D. 任意位数的数字,各位数字的立方和等于其本身
2、在打印斐氏数列前 20 项的程序中,循环次数设置为 18 次的原因是( )
A. 循环变量 i 从 0 开始计数,到 17 结束共 18 次
B. 已经提前输出了前 2 项,后续需要计算并输出剩余 18 项
C. 斐氏数列前 20 项的计算需要 18 次循环迭代
D. 程序存在逻辑错误,实际应该循环 20 次
3、下列数字中,属于 "水仙花" 数的是( )
A. 123
B. 999
C. 370
D. 100
4、在斐氏数列程序中,每次循环执行a=b; b=c;的作用是( )
A. 重置变量 a 和 b 的值,避免溢出
B. 清空变量 c 的值,释放内存
C. 交换 a 和 b 的值,实现数列反向输出
D. 更新前两项的值,为下一次计算新项做准备
2、 判断题(本题共3题)
1、题目定义斐波那契数列初始值为 F (0)=1,F (1)=2,当 n≥2 时,F (n)=F (n-1)+F (n-2),该递推规则正确。( )
2、"水仙花" 数可以是两位数或四位数,只要满足各位数字的立方和等于自身即可。( )
3、在斐氏数列程序中,若将a=b; b=c;的顺序改为b=c; a=b;,程序仍能正确输出前 20 项。( )
3、 填空题(本题共2题)
1、题目中给出的斐氏数列,当 n≥2 时,第 n 项的递推公式为____。
2、假设 num 是一个三位数,判断 num 为 "水仙花" 数的 C 语言表达式为____。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
int num, g, s, b;
for(num=100; num<1000; num++) {
b = num/100;
s = (num/10)%10;
g = num%10;
if(num == b*b*b + s*s*s + g*g*g) {
printf("%d ", num);
}
}
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第5章的第24练,内容涵盖第5章循环的控制的5.7 循环程序举例。
《C语言程序设计》(电子工业出版社)一课一练 第24练
第5章 循环的控制
5.7 循环程序举例
1、 单项选择题(本题共4小题)
1、下列关于 "水仙花" 数的定义,正确的是( )
A. 一个三位数,各位数字的平方和等于其本身
B. 一个三位数,各位数字的立方和等于其本身
C. 一个四位数,各位数字的四次方和等于其本身
D. 任意位数的数字,各位数字的立方和等于其本身
【答案】A
【解析】 "水仙花" 数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于其本身,如 153=1³+5³+3³。
2、在打印斐氏数列前 20 项的程序中,循环次数设置为 18 次的原因是( )
A. 循环变量 i 从 0 开始计数,到 17 结束共 18 次
B. 已经提前输出了前 2 项,后续需要计算并输出剩余 18 项
C. 斐氏数列前 20 项的计算需要 18 次循环迭代
D. 程序存在逻辑错误,实际应该循环 20 次
【答案】B
【解析】程序开头已经通过 printf 输出了前两项 1 和 2,剩余需要输出的项数是 20-2=18 项,因此循环设置为 18 次,每次循环计算并输出一项。
3、下列数字中,属于 "水仙花" 数的是( )
A. 123
B. 999
C. 370
D. 100
【答案】C
【解析】计算各选项:370=3³+7³+0³=27+343+0=370,符合水仙花数的定义;其他选项均不满足各位数字立方和等于自身的条件。
4、在斐氏数列程序中,每次循环执行a=b; b=c;的作用是( )
A. 重置变量 a 和 b 的值,避免溢出
B. 清空变量 c 的值,释放内存
C. 交换 a 和 b 的值,实现数列反向输出
D. 更新前两项的值,为下一次计算新项做准备
【答案】D
【解析】变量 a 和 b 始终代表当前项的前两项,计算出新项 c 后,将 b 的值赋给 a,c 的值赋给 b,这样下一次循环时,a 和 b 就变成了新的相邻前两项,能正确计算下一个数列项。
2、 判断题(本题共3题)
1、题目定义斐波那契数列初始值为 F (0)=1,F (1)=2,当 n≥2 时,F (n)=F (n-1)+F (n-2),该递推规则正确。( )
【答案】√
【解析】该数列明确规定了前两项的值,从第 2 项开始,每一项都等于前两项之和,完全符合递推规则。
2、"水仙花" 数可以是两位数或四位数,只要满足各位数字的立方和等于自身即可。( )
【答案】×
【解析】 "水仙花" 数是三位数,两位数或四位数即使满足各位数字立方和等于自身,也不属于题目所指的 "水仙花" 数范畴。
3、在斐氏数列程序中,若将a=b; b=c;的顺序改为b=c; a=b;,程序仍能正确输出前 20 项。( )
【答案】×
【解析】如果先执行b=c,再执行a=b,会导致 a 和 b 最终都等于 c 的值,丢失原来 b 的值,无法正确更新前两项的值,后续计算的数列项会出现错误。
3、 填空题(本题共2题)
1、题目中给出的斐氏数列,当 n≥2 时,第 n 项的递推公式为____。
【答案】F (n)=F (n-1)+F (n-2)
【解析】该数列从第三项开始,每一项的值等于前面相邻两项的和,这是斐氏数列的核心递推规律,也是程序实现的逻辑基础。
2、假设 num 是一个三位数,判断 num 为 "水仙花" 数的 C 语言表达式为____。
【答案】num == (num/100)*(num/100)*(num/100) + ((num/10)%10)*((num/10)%10)*((num/10)%10) + (num%10)*(num%10)*(num%10)
【解析】利用整除和取余拆分三位数:num/100 取出百位,(num/10)%10 取出十位,num%10 取出个位;分别求各位数字的立方和,再与原数 num 比较,相等即为水仙花数。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
int num, g, s, b;
for(num=100; num<1000; num++) {
b = num/100;
s = (num/10)%10;
g = num%10;
if(num == b*b*b + s*s*s + g*g*g) {
printf("%d ", num);
}
}
return 0;
}
【答案】
程序运行结果:
153 370 371 407
【解析】
程序通过 for 循环遍历所有三位数,分别提取每个数的百位、十位、个位数字,计算它们的立方和并与原数比较,相等则输出该数。运行后会打印出所有三位数中的水仙花数:153、370、371、407。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$