🎯 趣谈回文数
课后小测 · 共8题
趣味C++课后练习
⚠️ 本次练习已提交,答案已锁定。如需重新练习请联系老师。
🎉 答题完成!
0
📋 一键复制做题报告
📊 知识点掌握情况
第1题
单选题
回文数概念
以下哪个数字是回文数?
A. 123
B. 121
C. 1234
D. 100
正确答案:
B
121从左往右读是121,从右往左读也是121,正反读完全一样,所以是回文数。123反读是321,1234反读是4321,100反读是001(即1),都不是回文数。
第2题
单选题
取余运算
在数字翻转算法中,n % 10 的作用是什么?
A. 去掉n的最后一位
B. 获取n的最后一位数字
C. 将n乘以10
D. 将n除以10
正确答案:
B
% 是取余运算符,n % 10 得到n除以10的余数,也就是n的最后一位数字。例如123 % 10 = 3(最后一位是3)。去掉最后一位用的是 n / 10(整除)。
第3题
单选题
综合应用
bool 类型的变量可以存储什么值?
A. 只能返回0
B. 只能返回1
C. true(真)或 false(假)
D. 任意整数
正确答案:
C
bool类型是布尔类型,只有两个值:true(真)和 false(假)。bool类型通常用于表示"是"或"不是"的判断结果,在if条件判断中经常用到。
第4题
单选题(中)
回文数概念
判断回文数时,为什么要用变量 m 保存原数 n?
A. 为了让输出更好看
B. 因为 n 在 while 循环中会被不断除以10,循环结束后n变成0,无法再和翻转结果比较
C. 为了计数
D. 没有特殊原因,只是习惯写法
正确答案:
B
这是回文数判断中最容易出错的地方!在while循环中,n = n / 10 会不断去掉n的最后一位,循环结束后n变成了0。如果直接用sum == n比较,就会变成sum == 0,所有数都会判断为非回文数。所以必须在循环前用m = n保存原数,循环结束后用sum == m比较。
第5题
单选题(难)
循环结构
for(int i = a; i <= b; i++) 这个循环一共执行多少次?(假设a=1, b=100)
A. 99次
B. 100次
C. 101次
D. 1000次
正确答案:
B
for循环从i=a开始,到i<=b结束,每次i增加1。当a=1, b=100时,i从1到100,一共执行100次。公式是:执行次数 = b - a + 1 = 100 - 1 + 1 = 100次。注意条件是 i <= b(包含b),如果是 i < b 就只有99次了。
第6题
判断题
回文数概念
回文数从前往后读和从后往前读完全一样。
✅ 正确
❌ 错误
正确答案:
✅ 正确
这正是回文数的定义!一个正整数,如果从左向右读和从右向左读都是一样的,就是回文数。例如121、1001、12321都是回文数。
第7题
判断题(中)
取余运算
数字翻转时,sum = sum * 10 + n % 10 中的 *10 是为了让之前已经翻转的数字左移一位(升高一位)。
✅ 正确
❌ 错误
正确答案:
✅ 正确
正确!sum * 10 的作用是把之前已经翻转好的数字"左移一位"(升高一位),腾出个位来放新取出来的最后一位。例如sum=3,乘以10变成30,然后加上n%10=2,得到32。这样3就从个位升到了十位,新的2放在了个位,完成翻转。
第8题
判断题(难)
回文数概念
一位数(1-9)不是回文数。
✅ 正确
❌ 错误
正确答案:
❌ 错误
一位数(1-9)都是回文数!因为一位数只有一位数字,从左往右读和从右往左读都是它本身,完全一样。例如5,正读是5,反读也是5,所以5是回文数。在1-100范围内,一位数1-9加上两位数的11,22,...,99,一共18个回文数。
提交答案