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++ 从哪来、有哪些版本,并做一组一级常考的基础知识题。