测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看
B6

字符图形与算术小练习

引入

章前总览 本章不讲新“大概念”,而是把 cout 用熟:一是用多行输出“画”出图形;二是把数学题写成表达式,让程序算。考试和作业里,这类题非常常见。

练习路线:

  • P1:用加号画出菱形(注意空格)
  • P2:两门课成绩求和
  • P3:买铅笔还剩多少钱(练习 * 号)
  • P4:输出星号长方形

1 P1. 用加号组成的菱形

思路很简单:一行一行打印。图形里的空格也要数清楚——多一个、少一个,在线评测可能判错。

怎么想

  • 先在草稿纸上画出目标图形,数每一行前面有几个空格、几个 +
  • 每一行对应一条 cout << \"...\" << endl;
  • 中间最宽的一行通常没有前导空格(或空格最少)。

</> 参考代码

#include <iostream>
using namespace std;

int main() {
    cout << "   +" << endl;
    cout << "  +++" << endl;
    cout << " +++++" << endl;
    cout << "+++++++" << endl;
    cout << " +++++" << endl;
    cout << "  +++" << endl;
    cout << "   +" << endl;
    return 0;
}
  • 从上到下:加号个数 1→3→5→7→5→3→1,左右对称。
  • 空格个数也要对称:3、2、1、0、1、2、3(按你的题目要求微调)。

易错点

  • 复制粘贴时把空格弄丢。
  • 最后一行忘记 endl,有的评测对末尾换行很严格。

2 P2. 两门课程成绩总分

语文 96、数学 92,求总分。必须在程序里用加法算,不要口算完只输出一个数字。

解题思路

  • 数学里写 96 + 92,C++ 里一样写成 96+92
  • 放进 cout,且不加双引号

</> 参考代码

#include <iostream>
using namespace std;

int main() {
    cout << 96 + 92 << endl;  // 不要加双引号
    return 0;
}
  • 运行后应看到 188
  • 如果写成 cout << \"96+92\";,屏幕会显示文字 96+92,这不符合题意。

3 P3. 还剩多少钱

妈妈给 100 元,买了 10 支铅笔,每支 2 元,还剩多少?式子是:100 − 2 × 10。

关键提醒:乘号怎么写

  • 数学里的 ×,在 C++ 里必须写成星号 *
  • 运算顺序和数学一样:先乘除、后加减。所以 100-2*10 会先算 2*10

</> 参考代码

#include <iostream>
using namespace std;

int main() {
    cout << 100 - 2 * 10 << endl;
    return 0;
}
  • 结果应是 80
  • 不要写成 100-2x10 或使用中文乘号。
补充说明

不推荐

cout << 100 - 2 x 10;  // x 不是乘号

问题:C++ 不认识数学课本里的 × 或字母 x 当乘号。

推荐写法

cout << 100 - (2 * 10) << endl;

优点:星号乘法 + 括号,意思更清楚,结果一样。

4 P4. 输出星号长方形

要求输出 5 行、每行 10 个星号的长方形。依然是:重复打印同一行字符串

</> 参考代码

#include <iostream>
using namespace std;

int main() {
    cout << "**********" << endl;
    cout << "**********" << endl;
    cout << "**********" << endl;
    cout << "**********" << endl;
    cout << "**********" << endl;
    return 0;
}
  • 每行正好 10 个 *,共 5 行。
  • 以后学了循环,可以用更短的写法;一级入门先熟练“一行一条 cout”。

易错点

  • 少打或多打星号。
  • 行数不对(4 行或 6 行)。
本章小结

把四道练习的共同点记牢,后面学变量、输入时会轻松很多:

// 1) 文字 / 图形 → 用双引号
cout << "**********" << endl;

// 2) 计算结果 → 不要双引号
cout << 96 + 92 << endl;
cout << 100 - 2 * 10 << endl;
里程碑达成:

你已经能用 cout 完成“看图输出”和“列式计算”。下一章了解 C/C++ 从哪来、有哪些版本,并做一组一级常考的基础知识题。