🔹 题目 1:基础理解(打印矩形)
题目描述:
使用嵌套 for 循环打印一个 3 行 4 列的星号矩形。
预期输出:
****
****
****
提示:
外层循环控制行数,内层循环控制每行的列数。
🔹 题目 2:理解执行顺序(打印数字)
题目描述:
使用嵌套 for 循环打印如下数字矩阵:
1 1 1
2 2 2
3 3 3
要求:
- 外层循环变量为
i,从 1 到 3 - 内层循环变量为
j,从 1 到 3 - 每行打印的是外层变量
i的值
🔹 题目 3:观察变量变化(打印坐标)
题目描述:
打印如下格式的坐标对 (i, j),每个坐标占一行:
(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)
(2, 3)
要求:
- 外层循环
i从 1 到 2 - 内层循环
j从 1 到 3 - 使用
printf("(%d, %d)\n", i, j);
🔹 题目 4:小挑战(打印三角形)
题目描述:
打印如下左对齐的三角形:
*
**
***
****
提示:
- 外层循环控制行数(4 行)
- 内层循环的终止条件与外层变量有关
- 第
i行打印i个星号
🔹 题目 5:进阶思考(九九乘法表)
题目描述:
打印如下九九乘法表(部分):
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
...
要求:
- 外层循环
i从 1 到 9(被乘数) - 内层循环
j从 1 到i(乘数) - 每行结束后换行
✅ 建议学习方式:
- 先手写预测输出:在写代码前,先手动写出你认为的输出。
- 运行代码对比:写程序运行后,对比是否一致。
- 调试观察变量:使用
printf打印i和j的值,观察变化过程。 - 画图辅助理解:画出循环流程图,帮助理解嵌套结构。
💡 示例代码(题目 1 的参考):
#include <stdio.h>
int main() {
int i, j;
for (i = 0; i < 3; i++) { // 外层循环:行
for (j = 0; j < 4; j++) { // 内层循环:列
printf("*");
}
printf("\n");
}
return 0;
}
下面给出题目 2~5 的完整示例代码与关键思路注释。
所有代码均用 C 语言编写,可直接复制到 main.c 编译运行(gcc / clang / MSVC 均可)。
题目 2:打印数字矩阵
1 1 1
2 2 2
3 3 3
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 3; ++i) { // 外层:行号
for (int j = 1; j <= 3; ++j) { // 内层:每行打印 3 次
printf("%d ", i); // 每列都是当前行号
}
printf("\n");
}
return 0;
}
题目 3:打印坐标对 (i, j)
(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)
(2, 3)
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 2; ++i) // 外层 2 行
for (int j = 1; j <= 3; ++j) // 内层 3 列
printf("(%d, %d)\n", i, j); // 先 i 后 j
return 0;
}
题目 4:打印左对齐直角三角形
*
**
***
****
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 4; ++i) { // 共 4 行
for (int j = 1; j <= i; ++j) // 第 i 行打印 i 个星号
putchar('*');
putchar('\n');
}
return 0;
}
题目 5:九九乘法表(下三角形式)
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
...
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 9; ++i) { // 被乘数 i
for (int j = 1; j <= i; ++j) { // 乘数 j 只到 i
printf("%d×%d=%-2d ", j, i, j * i); // %-2d 对齐美观
}
putchar('\n');
}
return 0;
}
使用建议
- 把内层
printf改成printf("i=%d j=%d\n", i, j);可直观看到执行顺序。 - 尝试把
for换成while或do-while,体会不同写法但相同逻辑。
8777

被折叠的 条评论
为什么被折叠?



