下面 C++ 代码实现输出如下图形。横线应填入的代码是( )。
/*
高度:5
*
***
*****
*******
*********
*/
int height;
cout << "高度:";
// 获取用户输入的高度
cin >> height;
for (i = 0; i < height; i++) {
// 打印每行前面的空格
for (j = 0; j < __________; j++)
cout << " ";
// 打印每行的星号
for (k = 0; k < __________; k++)
cout << "*";
// 输出一行后,换行
cout << endl;
}A.
height - i
2 * iB.
height
2 * iC.
height - i
2 * i + 1D.
height - i - 1
2 * i + 1答案D。循环补全要分析循环变量的初始值、条件和更新方式,确保能产生目标输出。
代入法验证时注意选项之间的细微差别。循环条件中的<和<=可能导致完全不同的结果。
【考点】嵌套循环|数学建模|边界条件
本题考查 GESP 二级大纲"循环结构"中的图形输出模型。命题人故意把最基础的等差数列求和(2i+1)和中心对齐(height-1-i)拆成两个填空,就是为了卡住只背"金字塔=2i+1 个星"却不会算空格的考生。