下面的程序用于判断输入的整数 $N$ 是否为能被 $3$ 整除的偶数,横线处应填写代码是( )。
int N;
cin >> N;
if(_____________)
cout << "能被3整除的偶数" << endl;
else
cout << "其他情形" << endl;
cout << endl;答案D。先分析已有代码的功能,确定输出目标,再反推横线处需要的代码。可用代入法验证。
将每个选项代入横线处验证是最可靠的方法。注意代码的完整逻辑和输出格式。
【考点】取模运算|逻辑与
考纲定位:本题考查 GESP 一级信息学《基本编程》模块中的取模运算与逻辑与。命题人故意把"能被 3 整除"拆成N%3==0,把"偶数"拆成N%2==0,卡在考生对取模结果含义的理解上(很多人误以为N%3非零就是被 3 整除)。
解题思维:看到"偶数"先想到N%2余数必为 0,看到"被 3 整除"再想N%3余数必为 0。两个条件同时满足用逻辑与连接,所以横线必须是N%2==0 && N%3==0。这类题的通法是:先分别写出每个条件的判断式,再按题目要求用&&(且)或||(或)组合。
陷阱拆解:A 项把两个取模直接当条件,N%2非零时就是奇数、N%3非零时就是不被 3 整除,逻辑全反;B 项漏写N%3==0,因为 C++ 里非零即真,N%3本身非零就是被 3 整除的反面;C 项同理,N%2非零就是奇数。命题人专挖"取模结果非零即真"的理解漏洞,只背结论不写==0必错。
反命题思维:如果把题目改成"能被 3 整除的奇数",条件就要变成N%2!=0 && N%3==0;改成"不被 3 整除"就是N%3!=0。记住:任何"整除"判断都对应==0,"奇数"对应!=0,组合时先分后合。