🎯 二进制的秘密
课后小测 · 共8题
趣味C++课后练习
⚠️ 本次练习已提交,答案已锁定。如需重新练习请联系老师。
🎉 答题完成!
0
📋 一键复制做题报告
📊 知识点掌握情况
第1题
单选题
二进制概念
二进制数中,每一位只能是哪两个数字?
A. 0和1
B. 1和2
C. 0和2
D. 1和10
正确答案:
A
二进制只有0和1两个数字,计数规则是"逢二进一"。这是二进制最基本的定义。
第2题
单选题
二进制概念
二进制数 101 转换成十进制数是多少?(提示:位权从右往左是1, 2, 4)
A. 3
B. 5
C. 6
D. 101
正确答案:
B
位权展开法:101 = 1×4 + 0×2 + 1×1 = 4 + 0 + 1 = 5。从右往左,第一位位权是1,第二位是2,第三位是4。
第3题
单选题
二进制概念
用除2取余法将十进制数 13 转换成二进制,结果是?
A. 1011
B. 1101
C. 1110
D. 1001
正确答案:
B
13÷2=6余1,6÷2=3余0,3÷2=1余1,1÷2=0余1。余数从下往上读:1101。验证:1×8+1×4+0×2+1×1=13 ✓
第4题
单选题
综合应用
在C++中,n % 2 的作用是什么?
A. 计算n除以2的商
B. 计算n除以2的余数
C. 将n乘以2
D. 将n加上2
正确答案:
B
% 是取余运算符,n % 2 得到n除以2的余数(只能是0或1)。/ 是整除运算符,n / 2 得到商。两者配合实现除2取余法。
第5题
单选题(难)
位权原理
权重累积法中,weight变量每次循环后乘以10(weight = weight * 10),这样做的目的是什么?
A. 让结果变大,输出更壮观
B. 用十进制整数的个位、十位、百位...分别存储二进制的最低位、次低位、第三位...
C. 计算位权(2的n次方)
D. 没有特殊目的,只是习惯写法
正确答案:
B
这是权重累积法最巧妙的地方!用一个十进制整数的每一位来存储二进制的每一位:个位存二进制最低位,十位存次低位,百位存第三位... weight从1开始,每次×10升级(1→10→100→1000),这样先得到的余数自然放在低位,后得到的放在高位,完全不需要数组和逆序输出!
第6题
判断题
二进制概念
二进制数的计数规则是"逢十进一"。
✅ 正确
❌ 错误
正确答案:
❌ 错误
二进制的计数规则是"逢二进一",因为二进制只有0和1两个数字。"逢十进一"是十进制的规则。
第7题
判断题(中)
二进制概念
用除2取余法转换十进制数时,第一次除以2得到的余数是二进制数的最高位(最左边)。
✅ 正确
❌ 错误
正确答案:
❌ 错误
第一次除以2得到的余数是二进制数的最低位(最右边),最后一次得到的余数才是最高位(最左边)。所以除2取余法最后要把余数"从下往上"逆序排列。
第8题
判断题(难)
二进制概念
权重累积法实现十进制转二进制时,不需要使用数组,也不需要逆序输出。
✅ 正确
❌ 错误
正确答案:
✅ 正确
正确!权重累积法用一个十进制整数的每一位来存储二进制的每一位。weight从1开始递增(1→10→100→1000),先得到的余数乘以1放在个位(二进制最低位),后得到的余数乘以10放在十位... 余数自然按从低位到高位的顺序排列,所以完全不需要数组存储,也不需要逆序输出!这正是权重累积法的巧妙之处。
提交答案