✏️ 纠错
第 264 题 / 共 301 题
第 13 题 下面C++代码实现输出如下图形,应该在横线处填入的代码是( )。

cout << "请输入层数:";
cin >> N;
K = 1;
for (i = 1; i < N + 1; i++) {
for (int _ = 1; _ < ________; _++)
cout << " ";
for (int _ = 1; _ < ________; _++) {
cout << K;
K += 1;
if (K == 10)
K = 1;
}
cout << '\n';
}

cout << "请输入层数:";
cin >> N;
K = 1;
for (i = 1; i < N + 1; i++) {
for (int _ = 1; _ < ________; _++)
cout << " ";
for (int _ = 1; _ < ________; _++) {
cout << K;
K += 1;
if (K == 10)
K = 1;
}
cout << '\n';
}
你真棒!
📝 题目解析
【答案】A
【考纲知识点】循环结构、分支结构
【解析】当i从1开始递增时,每行星号前的空格数应逐行递减,因此首空应填入N - i + 1,确保第i 行前输出 N - i + 1个空格,使图形呈右对齐的三角形排列。次空控制每行输出的数字个数,观察图形可知第i行应输出i个数字,因此第二空应填i。选项A中第一空为N - i + 1,第二空为i + 1,但实际需输出i个数字,故此处存在矛盾;重新审视发现,每行数字连续递增且从1到9循环,结合K的更新逻辑与图形行数匹配,最终确定第二空应为i,对应正确选项应为B。