在 C++ 中,假设 $N$ 为正整数,则表达式 cout << (N % 3 + N % 7) 可能输出的最大值是( )。
答案B。cout用于输出到标准输出(通常是屏幕)。cin从标准输入读取。
cout和cin在iostream头文件中定义,使用时需#include <iostream>。
【考点】取模运算|余数最大值|逻辑推理
1. 🎯 考纲定位 本题考查 GESP 一级"基础语法与表达式"模块中的取模运算(%)。命题人专门放这道题,就是卡住大量考生对"取模的本质是求余数"这一核心概念的理解,以及能否正确判断余数的取值范围。
2. 🧠 解题思维 看到题先拆解表达式:N%3 + N%7。N%3 的最大余数是 2(因为 3-1=2),N%7 的最大余数是 6(因为 7-1=6)。两者取最大值相加:2+6=8。要证明能取到,只需找一个数同时满足 N%3=2 且 N%7=6,比如 N=20(20%3=2,20%7=6),验证成立。
3. 🪤 陷阱拆解 选项 A(6)是误以为 N%3 + N%7 = N%10,这是偷换概念——取模不满足分配律;选项 C(9)是混淆了"最大余数"与"最大被除数",以为任何数模 10 余数最大是 9,但这里分母是 3 和 7;选项 D(10)更离谱,两个余数相加不可能超过各自的最大值。最阴险的是 A 选项,它利用考生对取模运算的直觉性错误,诱导你把两个余数"合并成一个大取模"来算。
4. 🔄 反命题思维 若把题改作 N%3 + N%5,答案就是 1+4=5;若改作 N%4 + N%6,答案是 3+5=8。刷到这类题先问自己:命题人是不是在考"余数取值范围"这个本质,而不是考"大数字怎么算"。