【无标题】


🔹 题目 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(乘数)
  • 每行结束后换行

✅ 建议学习方式:

  1. 先手写预测输出:在写代码前,先手动写出你认为的输出。
  2. 运行代码对比:写程序运行后,对比是否一致。
  3. 调试观察变量:使用 printf 打印 ij 的值,观察变化过程。
  4. 画图辅助理解:画出循环流程图,帮助理解嵌套结构。

💡 示例代码(题目 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;
}

使用建议

  1. 把内层 printf 改成 printf("i=%d j=%d\n", i, j); 可直观看到执行顺序。
  2. 尝试把 for 换成 whiledo-while,体会不同写法但相同逻辑。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值