✏️ 纠错
第 213 题 / 共 276 题
12、以下程序模拟了一个简单的小球反弹过程,横线处应该填入的是( )。
#include <iostream>
using namespace std;
int main() {
int height = 10;
int distance = 0;
for (int i = 1; i <= 5; i++) { // 模拟5次落地
________________________
height /= 2;
distance += height;
}
cout << distance << endl;
return 0;
}你真棒!
📝 题目解析
【答案】B
【考纲知识点】算法:模拟法
【解析】程序模拟小球反弹过程,每次弹起高度为上次的一半(height/=2)。总距离应包含下落距离和上升距离。第9行是高度减半,减半完应为反弹的高度,第10行则累加了反弹得上升距离。所以由此可知,程序目前还缺累加下落距离,应填在第8行。由于第8行时高度还未减半,所以直接累加即可(下落高度是原高度,反弹高度是当次下落高度的一半)。所以答案选B。