🎯 24点速算挑战
课后小测 · 共15题
趣味C++课后练习
⚠️ 本次练习已提交,答案已锁定。如需重新练习请联系老师。
🎉 答题完成!
0
📋 一键复制做题报告
📊 知识点掌握情况
第1题
单选题(复习)
随机数与取模
代码 rand() % 13 + 1 发一张牌,得到的数字范围是?
A. 0 ~ 12
B. 1 ~ 13
C. 1 ~ 12
D. 0 ~ 13
正确答案:
B
rand()%13的余数是0~12(13种),再加1变成1~13,正好对应扑克牌A到K。和石头剪刀布的rand()%3+1一模一样,只是把3换成了13!
第2题
单选题
字符串与遍历
string expr; 想知道这个字符串一共有几个字符,应该写?
A. expr.len
B. expr.size()
C. length(expr)
D. expr.count()
正确答案:
B
expr.size()返回字符串的长度(字符个数)。比如expr是"3*8",expr.size()就是3。遍历时for(i=0;i
第3题
单选题(中)
循环遍历与穷举
算式 "3*8+1-1" 里一共有几个运算符(+ - * /)?
A. 2个
B. 3个
C. 4个
D. 5个
正确答案:
B
"3*8+1-1"里的运算符是*、+、-三个。4张牌要两两合并,正好需要3个运算符连接。这就是为什么程序里检查opCount是不是3。
第4题
单选题
函数封装
函数 bool is24(double x) 里的 bool 是什么意思?
A. 返回一个小数
B. 返回"真/假"(是或不是)
C. 返回一个整数
D. 没有返回值
正确答案:
B
bool类型只有两个值:true(真)和false(假)。is24(x)判断x是不是24,是就返回true,不是就返回false。这样if(is24(ans))就能直接当条件用了。
第5题
单选题(中)
函数封装
is24函数里为什么写 fabs(x-24)<0.001,而不是直接 x==24?
A. 写==太麻烦
B. 分数运算会产生小数误差,比如算出来是23.9999或24.0001,差一点点也算对
C. 为了让程序更快
D. 没有原因,随便写的
正确答案:
B
分数(切披萨)运算会产生除不尽的小数,比如8/3=2.6666...。电脑算出来的24可能带一点点误差(23.9999或24.0001)。用fabs(x-24)<0.001表示"和24差不到千分之一就算对",就不会把正确答案误判成错的。
第6题
单选题
运算优先级
数学类比:"括号就是先做小房间里的事",这句话是什么意思?
A. 括号里的要最后算
B. 括号里的要优先先算完,再拿结果和外面算
C. 括号可以随便删
D. 括号不影响计算
正确答案:
B
括号像一个封闭的小房间,里面必须先算完才能出来。比如(3+1)×2,先在小房间里算3+1=4,再算4×2=8。不先算小房间,直接3+1×2就错了(会变成5)。
第7题
单选题(中)
24点解题技巧
"找搭档"秘诀:手里有一张3,应该想办法把另外三张凑成几?
A. 凑成6
B. 凑成8(因为3×8=24)
C. 凑成12
D. 凑成24
正确答案:
B
3的搭档是8,因为3×8=24。看到手里有3,就目标明确地把剩下三张凑出8来。同理:4找6、2找12、6找4、8找3。这就是固定因数法——把难题缩小成"凑一个数"。
第8题
单选题(难)
24点解题技巧
经典难题 3,3,8,8 的解法 8÷(3-8÷3)=24,主要用了哪个秘诀?
A. 固定因数法
B. 除法创造分数(切披萨)
C. 只用加法
D. 这组牌无解
正确答案:
B
3,3,8,8只用整数怎么凑都不行,但大胆用除法造分数:8÷3=8/3,3-8/3=1/3,8÷(1/3)=24!这就是"除法创造分数"的威力——整数走不通时,切个披萨试试。
第9题
单选题
24点解题技巧
"穷举思想"类比成"把所有路都走一遍",电脑求解24点时是怎么做的?
A. 随便猜一个答案
B. 系统地把数字和运算符的各种组合都试一遍
C. 只试一种拼法
D. 问老师答案
正确答案:
B
穷举就是不偷懒:4个数谁先谁后、中间用+还是-还是×还是÷,所有可能的拼法一个不落地试一遍。只要答案存在,一定能被试出来。缺点是慢,但电脑不怕慢!
第10题
单选题(中)
函数封装
把"判断是不是24"写成bool is24()函数,最大好处是?
A. 代码变短,但只能用一次
B. 把任务打包,想用就喊is24(),到处能反复调用,代码更清楚
C. 让程序运行变慢
D. 没有任何好处
正确答案:
B
函数封装像打包一个"工具盒":判断是不是24的逻辑写一次,以后在主程序、拓展1、拓展5里只要喊一声is24(xxx)就能用,不用每次都重写fabs那一长串。这就是函数的威力——一次写好,到处复用。
第11题
判断题
综合应用
任意抽4张扑克牌,一定都能算出24。
✅ 正确
❌ 错误
正确答案:
❌ 错误
错误!有些四张牌怎么算都得不到24(比如1,1,1,1,最大只能算到4)。这就是拓展5"无解判断"存在的意义——电脑穷举所有路后,如果都不通,就告诉你"这组牌无解"。
第12题
判断题(复习)
随机数与取模
rand() % 13 就能直接发出 1~13 的牌,不用加1。
✅ 正确
❌ 错误
正确答案:
❌ 错误
错误!rand()%13余数是0~12,会出现0(扑克牌没有0)。必须+1写成rand()%13+1才是1~13。这是复习石头剪刀布时就强调过的老错误:要从1开始就加1!
第13题
判断题(中)
24点解题技巧
在24点里,分数运算很有用,比如 8÷(3-8÷3) 确实等于24。
✅ 正确
❌ 错误
正确答案:
✅ 正确
正确!括号里:8÷3=8/3,3-8/3=9/3-8/3=1/3;外面:8÷(1/3)=8×3=24。整数凑不出来时,大胆用除法切披萨,常常柳暗花明。
第14题
判断题
函数封装
写好一个函数后,在程序里可以反复调用它。
✅ 正确
❌ 错误
正确答案:
✅ 正确
正确!函数就是"一次写好、到处喊"的工具盒。is24在主程序判断玩家答案时用一次,电脑试拼法时又用一次,拓展题里还能用。写一次,省很多事。
第15题
判断题(中)
循环遍历与穷举
穷举就是凭感觉随便猜一个答案。
✅ 正确
❌ 错误
正确答案:
❌ 错误
错误!穷举不是瞎猜,而是"有条理地把每一种可能都试一遍":先试数字顺序的所有排列,再试运算符的所有组合,一条不漏。就像走迷宫每条路都走到头,确保不漏掉任何答案。
提交答案