题目
以下 C++ 代码可以找出百位、十位和个位满足特定条件的三位数,横线处应该填入的是( )。
int count = 0;
for (int i = 100; i <= 999; i++) {
int a = i / 100;
_______________________
int c = i % 10;
if (a * a + b * b == c * c) {
count++;
}
}
答案:B
考点
循环结构
解题思维
答案B。先分析已有代码的功能,确定输出目标,再反推横线处需要的代码。可用代入法验证。
常见错误
将每个选项代入横线处验证是最可靠的方法。注意代码的完整逻辑和输出格式。
详细解析(节选)
【考点】for循环结构|整数除法与取模运算|十进制位提取
1. 🎯 考纲定位
本题考查 GESP 一级大纲中for 循环结构配合整数运算的考察。命题人卡住绝大多数考生的"位运算"薄弱点——一级考生大多只会 i%10 提取个位,对十位数的提取方法完全陌生,这道题就是用来区分"只会用取模"和"真正理解十进制位值原理"的考生。
同考点真题
- 第 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);看解析 →