#7376. 2026/6/15/HSJ笔记(输入输出)
2026/6/15/HSJ笔记(输入输出)
📚 编程复习笔记
🗓️ 2026年6月10日 — 6月16日
🎯 本周学习路线:从第一行代码
Hello,World!出发,掌握输出 → 输入 → 算术运算 → 图形输出,一步步搭建编程基础!
🟢 专题一:程序入门 — 输出与输入
📌 1.1 Hello, World!
题目:P1218
请输出一行内容:
Hello,World!(中间没有空格)
🎯 核心知识:学会用 cout 输出文字
#include <iostream>
using namespace std;
int main() {
cout << "Hello,World!" << endl;
return 0;
}
⚠️ 易错点:
| ❌ 常见错误 | ✅ 正确写法 |
|---|---|
Hello World!(多了空格) |
Hello,World!(逗号后无空格) |
忘了 endl 或 \n |
输出后加换行 |
| 中英文标点混用 | 英文逗号 , 不是中文逗号 , |
💡 小贴士:
endl= end line,表示换行。每次输出最后都记得加!
📌 1.2 A+B Problem
题目:P1
输入两个整数 A 和 B,输出 A+B 的值
🎯 核心知识:学会用 cin 读入数据
#include <iostream>
using namespace std;
int main() {
int A, B;
cin >> A >> B;
cout << A + B << endl;
return 0;
}
🔑 输入输出模板(所有题目的骨架):
┌─────────────────────────────────────────┐
│ #include <iostream> │
│ using namespace std; │
│ │
│ int main() { │
│ // 1. 声明变量 │
│ // 2. 读入数据 (cin >> ...) │
│ // 3. 计算处理 │
│ // 4. 输出结果 (cout << ... << endl)│
│ return 0; │
│ } │
└─────────────────────────────────────────┘
⚠️ 易错点:
| ❌ 常见错误 | ✅ 正确做法 |
|---|---|
cin << A(方向反了) |
cin >> A(箭头指向变量) |
cout >> A+B(方向反了) |
cout << A+B(箭头从变量指出) |
忘了声明变量 int A, B; |
先声明再使用 |
💡 记忆口诀:
cin用>>(数据流入变量),cout用<<(数据流出变量)
🔵 专题二:算术运算
📌 2.1 A×B 问题
题目:P952
输入两个正整数 A 和 B(1 ≤ A,B ≤ 10000),输出 A×B 的值
🎯 核心知识:乘法运算符 * + 数据类型选择
#include <iostream>
using namespace std;
int main() {
int A, B;
cin >> A >> B;
cout << A * B << endl;
return 0;
}
⚠️ 重点关注 — 数据范围:
A, B 最大 10000
A × B 最大 = 10000 × 10000 = 100,000,000(1亿)
int 范围:约 ±21亿 → ✅ 本题用 int 够用
但如果 A, B 可以到 10⁹ 呢?
10⁹ × 10⁹ = 10¹⁸ → int 存不下!必须用 long long
💡 安全习惯:看到乘法,先想"结果会不会超 int?"拿不准就用
long long!
📌 2.2 计算 (a+b)×c 的值
题目:P462
输入三个整数 a, b, c,计算 (a+b)×c
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
cout << (a + b) * c << endl;
return 0;
}
🎯 核心知识:运算符优先级 + 括号
数学写法: (a+b)×c
C++ 写法: (a + b) * c ← 必须加括号!
如果写成 a + b * c → C++ 会算成 a + (b*c),结果完全不同!
| 数学 | C++ | 含义 |
|---|---|---|
| (a+b)×c | (a + b) * c |
✅ 先加后乘 |
| a+b×c | a + b * c |
❌ 先乘后加(数学也是这样,但容易写错) |
| a÷c | a / c |
⚠️ 整数除法(向下取整) |
| a mod c | a % c |
取余数 |
📌 2.3 计算 (a+b)/c 的值
题目:P459
输入三个整数 a, b, c,计算 (a+b)÷c
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
cout << (a + b) / c << endl;
return 0;
}
⚠️ 整数除法陷阱(重要!):
7 / 2 = 3 (不是 3.5!小数部分直接丢弃)
5 / 3 = 1 (不是 1.67!)
-7 / 2 = -3 (向零取整,不是 -4)
口诀:整数除整数,结果还是整数,小数直接砍掉
💡 题目保证 c ≠ 0,所以不用担心除以零。但以后写代码要记得检查!
🟡 专题三:图形输出
🎯 核心思想:图形输出 = 把题目要求的每一行逐行用
cout输出来!
📌 3.1 输出星号矩形
题目:P4440
输出 3 行 4 列的星号矩形
****
****
****
#include <iostream>
using namespace std;
int main() {
cout << "****" << endl;
cout << "****" << endl;
cout << "****" << endl;
return 0;
}
🔑 方法:题目怎么画,你就怎么写——一行一行 cout!
💡 3 行内容一样?那就写 3 行
cout,简单直接!
📌 3.2 输出直角三角形
题目:P4441
输出 3 行直角三角形
*
**
***
#include <iostream>
using namespace std;
int main() {
cout << "*" << endl;
cout << "**" << endl;
cout << "***" << endl;
return 0;
}
🔑 观察规律:
第1行:1个* → "*"
第2行:2个* → "**"
第3行:3个* → "***"
每一行星号数量 = 行号
💡 不用想复杂了,图形题就是看清楚题目要什么,原样输出!
📌 3.3 输出倒直角三角形与数字组合图形
题目:P4442
上半部分:3 行星号倒三角;下半部分:两行数字
***
**
*
123
321
#include <iostream>
using namespace std;
int main() {
cout << "***" << endl;
cout << "**" << endl;
cout << "*" << endl;
cout << "123" << endl;
cout << "321" << endl;
return 0;
}
🔑 分段输出:
上半部分(倒三角):
第1行:3个* → "***"
第2行:2个* → "**"
第3行:1个* → "*"
下半部分(数字):
第4行:123
第5行:321
两部分之间没有空行,直接接着写 cout 就好!
📌 3.4 输出菱形数字图案
题目:P4443
输出 5 行菱形数字图案,每行总宽度 5 个字符
1
222
33333
222
1
#include <iostream>
using namespace std;
int main() {
cout << " 1" << endl;
cout << " 222" << endl;
cout << "33333" << endl;
cout << " 222" << endl;
cout << " 1" << endl;
return 0;
}
🔑 空格是关键!
1 → 2个空格 + 1个1(共5字符)
222 → 1个空格 + 3个2(共5字符)
33333 → 0个空格 + 5个3(共5字符)
222 → 1个空格 + 3个2(共5字符)
1 → 2个空格 + 1个1(共5字符)
⚠️ 最容易出错的地方:
| ❌ 错误 | ✅ 正确 |
|---|---|
| 空格数数错了 | 用尺子量或在纸上一个一个数 |
| 行末多了空格 | 行末不要加多余空格 |
| 只看了数字忘了空格 | 空格也是输出内容的一部分! |
💡 小技巧:把每行内容用引号括起来,连空格一起原样写在
cout里!
📌 3.5 输出长方形
题目:P6387
输出 4 行 7 列的星号长方形
*******
*******
*******
*******
#include <iostream>
using namespace std;
int main() {
cout << "*******" << endl;
cout << "*******" << endl;
cout << "*******" << endl;
cout << "*******" << endl;
return 0;
}
💡 和矩形题一样的思路,只是行数和列数变了——4行7列!
📊 本周知识体系总览
编程入门
┌───┴───┐
输出与输入 算术运算
┌──┴──┐ ┌──┴──┐
cout cin 加减乘除 运算优先级
│ │ │ │
输出文字 读变量 整数除法 括号
取余%
│
图形输出
┌──────┼──────┐
矩形 三角形 菱形
(逐行cout) (逐行cout) (空格是关键)
🔴 本周常见错误汇总
| # | 错误类型 | 错误示例 | 正确做法 |
|---|---|---|---|
| 1 | 输出字符串错误 | Hello World! |
Hello,World! 仔细对照题目 |
| 2 | cin/cout 方向反 | cin << / cout >> |
cin >> cout << |
| 3 | 忘记声明变量 | 直接用 A+B |
先 int A, B; |
| 4 | 运算优先级 | a + b * c |
(a + b) * c 加括号 |
| 5 | 整数除法 | 以为 7/2=3.5 | 7/2=3,整数除法砍小数 |
| 6 | 图形漏换行 | 两行粘在一起 | 每行末尾加 endl |
| 7 | 空格数错了 | 菱形对不齐 | 在纸上一个一个数空格 |
| 8 | 行末多了空格 | 看起来对但判题WA | 行末不要加多余空格 |
📋 复习检查清单
✏️ 基础操作
- [ ] 能独立写出
#include和main函数框架 - [ ] 能用
cout输出指定文字 - [ ] 能用
cin读入整数 - [ ] 分清
>>和<<的方向
🔢 算术运算
- [ ] 知道 C++ 中乘法是
*不是× - [ ] 知道 C++ 中除法是
/不是÷ - [ ] 理解整数除法:
7/2 = 3不是 3.5 - [ ] 知道取余运算:
7%2 = 1 - [ ] 会用括号控制运算顺序
🎨 图形输出
- [ ] 会把题目要求的图形逐行用
cout输出 - [ ] 知道空格也是输出内容的一部分
- [ ] 每行输出完记得加
endl换行 - [ ] 数空格时仔细,不嫌麻烦
🧠 好习惯
- [ ] 写代码前先在纸上画出图形,数清每行的空格和字符
- [ ] 提交前仔细对照题目要求的输出格式
- [ ] 注意数据范围,判断是否需要
long long
📅 生成时间:2026-06-17 | 内容覆盖:C++ 入门 — 输入输出、算术运算、图形输出