题目
下面 C++ 代码执行时如果输入 $2024$,则输出是 $4202$。( )
int N, flag=0;
cin >> N;
while (N){
if(!flag) cout << N % 10;
N /= 10;
flag = (flag + 1)%2;
}
答案:B
考点
循环结构
解题思维
答案B。追踪程序输出时注意整数除法截断和循环条件的边界值。变量初始值对结果影响很大。
常见错误
整数除法截断容易忽略!if(n%i==0)中%是取余运算不是除法。
详细解析(节选)
【考点】循环结构|取模运算|标志位控制
1. 🎯 考纲定位
GESP二级「基础编程」模块,考查循环控制与位运算结合的场景。命题人卡住的是「顺序直觉」——考生看到数字就会下意识从高位读起,但代码强制从低位输出,这种认知冲突是二级最经典的思维陷阱。
同考点真题
- 第 23 题· NOIP 2008 普及组初赛试题 · 答案 23看解析 →
- 第 25 题· NOIP 2008 普及组初赛试题 · 答案 5 4 10 1 6 22 -59 -6 -11 -6看解析 →
- 第 26 题· NOIP 2008 普及组初赛试题 · 答案 DBGEFCA看解析 →
- 第 27 题· NOIP 2008 普及组初赛试题 · 答案 change[i] >= 'A' && change[i] <= 'Z'change[i] <= 'Z'str[i] >= 'A' && str[i] <= 'Z'str[i] <= 'Z'str[i] = change[str[i] - 'a'];ChangeString();看解析 →
- 第 28 题· NOIP 2008 普及组初赛试题 · 答案 a[left]a[j]<valuea[j]<=valuevalue>a[j]value>=a[j]a[i]>valuea[i]>=valuea[i]=value;i+1,right,nFindKth(left,i-1,n);看解析 →