✏️ 纠错
第 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。