下面 C++ 代码中 $N$ 是整数,执行时无论输入负整数、0 或正整数,其输出都将是 0。( )
cin >> N;
while (N)
N /= 10;
cout << N;答案A。追踪程序输出时注意整数除法截断和循环条件的边界值。变量初始值对结果影响很大。
整数除法截断容易忽略!if(n%i==0)中%是取余运算不是除法。
【考点】条件短路|整数除法截断|循环终止条件
本题考查《GESP 二级考纲》「循环结构与条件判断」模块。命题人卡住的是「while 条件短路」认知盲区——绝大多数考生只会写 if-else 的条件判断,却忽略 while 循环条件会持续求值直到为假,导致对这类"看似循环实则截断"的题完全没概念。