给定一个整数变量 $x$,现在需要判断它是 $3$ 的倍数或者 $5$ 的倍数, 以下表达式正确的是( )。
这题考的是取模运算和逻辑运算符。拿到题先想'或者'在代码里对应什么符号,再看'整除'和'除尽'的区别,直接代入几个数验算就能秒杀。
学生最容易把'或者'看成'并且',选了 A;或者分不清取模和除法,以为除得尽商是 0 就行,选了 C 或 D。还有的同学死记硬背'整除'概念,忘了取模才是判断倍数最直接的工具,一看到选项里全是'=='0'就慌了,其实除数比被除数大时商确实是 0,但这不代表是倍数。
这道题考查的是取模运算(%)和逻辑运算符(&&、||)的基本用法,属于数论基础中的整除判定问题。命题人喜欢在这里挖坑,通常是混淆'整除'和'商为0'的概念,或者把'或者'写成'并且',让学生误以为要同时满足两个条件。
核心概念要讲清楚:判断一个数 x 是否是另一个数 n 的倍数,最直接的写法就是 x % n == 0。这里'%'是取模,返回余数,余数为 0 说明整除。而'/'是除法,x / n 得到的是商。当 x 小于 n 时,商确实是 0,但这并不代表 x 是 n 的倍数(比如 2 / 5 商是 0,但 2 不是 5 的倍数),所以用除法写'=='0'是绝对错误的。
逻辑关系上,题目要求'是 3 的倍数或者 5 的倍数',对应代码里的'或'运算,符号是'||'。如果是'并且',那就得用'&&',意味着 x 必须同时是 3 和 5 的倍数,也就是 15 的倍数,这显然不是题意。
我们逐项看选项:A 用了'&&',要求同时整除,错;B 用了'||'且取模,完全正确;C 和 D 都用了除法,把'商为 0'当成'整除',这是典型的概念陷阱,必错。
思考过程其实很简单:看到'或者'先反应' || ',看到'倍数'先反应' % ',组合起来就是 B。为了保险,可以代入几个数验证,比如 x=15,15%3=0 且 15%5=0,满足'或者';x=3,3%3=0,满足;x=5,5%5=0,满足;x=7,7%3=1 且 7%5=2,都不为 0,不满足,逻辑自洽。
避坑指南:千万别被'整除'这个词带偏去想除法,除法商为 0 是陷阱,取模余数为 0 才是正解。另外,逻辑运算符优先级里'&&'高于'||',虽然本题里括号不是必须的,但写清楚逻辑关系很重要。
从考频来看,BCSP 历年真题中,数论基础(质数、合数、约数、取模、辗转相除)是高频考点,近五年在 CSP-J/S 和 GESP 中至少出现 12 次,其中纯概念辨析题占比约 30%。这类题通常不考复杂算法,而是考对基本定义和符号的精准理解,命题趋势是越来越喜欢用简单的'或者/并且'组合来测试学生是否真正理解逻辑运算的含义,而不是死记硬背模板。
预测:未来这类题可能会结合更大的数或者更复杂的逻辑嵌套,比如'是 3 的倍数但不是 5 的倍数',或者'是 3 的倍数或者 5 的倍数,且不能被 2 整除',但核心依然是考取模和逻辑运算。暂无足够依据预测具体年份,不过这种基础题在任何级别考试中都是绕不开的。