小学生版 | C++ 输出图形 自测题

小学生版 | C++ [输出图形] 自测题

姓名: ____________

第一部分:基础知识填空(每题 5 分,共 30 分)
  1. 在 C++ 里用循环嵌套输出图形矩阵时,外层循环一般控制图形的 ____,内层循环控制图形的 ____
  2. 若要在输出图形矩阵时实现换行,需要使用 ____ 语句。
  3. 蛇形数字矩阵在填充数字时,通常会依据当前 ____ 的奇偶性来改变填充方向。
  4. 数字图形中每个位置的数字和它所在的 ________ 有着紧密的数学联系。
  5. 输出直角在左下角的三角形,内层循环的执行次数会随外层循环变量的值 ____
  6. 当输出的图形需要有空格填充时,可在循环里使用 cout << " "; 语句,通过控制循环的 ____ 来确定空格的数量。
第二部分:知识应用填空(每题 7 分,共 70 分)
一、字符图形
  1. 正方形
####
####
####
####

以下代码用于输出一个边长为 4 的由 # 组成的正方形,补全代码。

for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
        cout << '#';
    }
    cout << `____`;
}
  1. 长方形
+++++
+++++
+++++

以下代码用于输出一个 3 行 5 列的由 + 组成的长方形,补全代码。

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 5; j++) {
        cout << '+';
    }
    cout << `____`;
}
  1. 菱形
  *
 ***
*****
 ***
  *

以下代码用于输出一个由 * 组成的菱形,补全代码。

int size = 3;
// 上半部分
for (int i = 0; i < size; i++) {
    for (int j = 0; j < size - i - 1; j++) {
        cout << ' ';
    }
    for (int k = 0; k < `____`; k++) {
        cout << '*';
    }
    cout << `____`;
}
// 下半部分
for (int i = size - 2; i >= 0; i--) {
    for (int j = 0; j < size - i - 1; j++) {
        cout << ' ';
    }
    for (int k = 0; k < `____`; k++) {
        cout << '*';
    }
    cout << `____`;
}
  1. 三角形(直角在左下角)
*
**
***
****

以下代码用于输出一个由 * 组成的直角在左下角的三角形,补全代码。

for (int i = 0; i < 4; i++) {
    for (int j = 0; j <= `____`; j++) {
        cout << '*';
    }
    cout << `____`;
}
二、数字图形
  1. 正方形
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

以下代码用于输出一个 4x4 的数字正方形,数字从 1 开始递增,补全代码。

int num = 1;
for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
        cout << num++;
        if (j < 3) {
            cout << ' ';
        }
    }
    cout << `____`;
}
  1. 蛇形矩阵(3x3)
1 2 3
6 5 4
7 8 9

以下代码用于输出一个 3x3 的蛇形数字矩阵,补全代码。

int num = 1;
for (int i = 0; i < 3; i++) {
    if (i % 2 == 0) {
        for (int j = 0; j < 3; j++) {
            cout << num++;
            if (j < 2) {
                cout << ' ';
            }
        }
    } else {
        for (int j = 2; j >= 0; j--) {
            cout << num++;
            if (j > 0) {
                cout << ' ';
            }
        }
    }
    cout << `____`;
}
  1. 三角形(数字,直角在左下角)
1
2 3
4 5 6
7 8 9 10

以下代码用于输出一个由数字组成的直角在左下角的三角形,补全代码。

int num = 1;
for (int i = 0; i < 4; i++) {
    for (int j = 0; j <= `____`; j++) {
        cout << num++;
        if (j < i) {
            cout << ' ';
        }
    }
    cout << `____`;
}
三、字形矩阵
  1. A 形
  *
 * *
*****
 * *
 * *

以下代码用于输出一个由 * 组成的 A 形,补全代码。

int height = 5;
for (int i = 0; i < height; i++) {
    for (int j = 0; j < height - i - 1; j++) {
        cout << ' ';
    }
    if (i == 0 || i == height / 2) {
        for (int k = 0; k < 2 * i + 1; k++) {
            cout << '*';
        }
    } else {
        cout << '*';
        for (int k = 0; k < 2 * i - 1; k++) {
            cout << ' ';
        }
        cout << '*';
    }
    cout << `____`;
}
  1. X 形
*   *
 * *
  *
 * *
*   *

以下代码用于输出一个由 * 组成的 X 形,补全代码。

int size = 5;
for (int i = 0; i < size; i++) {
    for (int j = 0; j < size; j++) {
        if (j == i || j == `____`) {
            cout << '*';
        } else {
            cout << ' ';
        }
    }
    cout << `____`;
}
  1. 口字型
****
*  *
*  *
****

以下代码用于输出一个由 * 组成的田字型,补全代码。

int side = 4;
for (int i = 0; i < side; i++) {
    for (int j = 0; j < side; j++) {
        if (i == 0 || i == side - 1 || `____`) {
            cout << '*';
        } else {
            cout << ' ';
        }
    }
    cout << `____`;
}

答案

第一部分:基础知识填空
  1. 行,列
  2. endl
  3. 行,列
  4. 增加
  5. 次数
第二部分:知识应用填空
  1. endl
  2. endl
  3. 2 * i + 1endl2 * i + 1endl
  4. iendl
  5. endl
  6. endl
  7. iendl
  8. endl
  9. size - 1 - iendl
  10. j == 0 || j == side - 1endl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信奥大黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值