news 2026/2/25 13:23:35

小学生学C++编程 (C风格的输入与输出)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小学生学C++编程 (C风格的输入与输出)

一、🏰《数字王国的传声筒》

—— C 风格输入输出(scanf / printf)奇幻故事课

1、认识两位主角 🎭

C++ 王国里,有一条古老又强大的魔法体系,叫做:

C 风格输入输出

它的两位主角是:

名字作用
🧙‍♂️ scanf听别人说话(输入)
🧙‍♀️ printf大声念出来(输出)

2、printf:会“念稿子”的播音员 🎤

1️⃣ 最简单的 printf

printf("Hello World!");

📢 播音员说:

Hello World!

👉双引号里的内容,原封不动念出来


2️⃣ printf 会“留空位”等数字 📦

如果你想说:

“我今年 10 岁”

就不能直接写死数字,而是:

int age = 10; printf("我今年 %d 岁", age);

🧩%d是什么?

它是一个占位符,意思是:

“这里等一个整数来!”


3、printf 的“变形金刚符号”大全 🤖

🎯 常用格式符

符号意思举例
%d整数10
%f小数3.14
%c字符'A'
%s字符串"cat"
%lld很大的整数long long
printf("%d %f %c %s", 10, 3.14, 'A', "cat");

📢 输出:

10 3.140000 A cat

(注意:小数默认打印 6 位)


4、控制小数:小数精灵 ✨

1️⃣ 控制小数点后几位

printf("%.2f", 3.14159);

📢 输出:

3.14

🧠 规则:

%.2f→ 保留2 位小数


2️⃣ 让数字“站得整整齐齐” 📏

printf("%5d", 12);

📢 输出:

12

解释:

  • 总共 5 个位置

  • 数字只有 2 位

  • 前面补空格


3️⃣ 左对齐 vs 右对齐 🧍‍♂️🧍‍♀️

printf("|%5d|\n", 12); printf("|%-5d|\n", 12);

📢 输出:

| 12| |12 |

🧠 小口诀:

  • %5d右对齐

  • %-5d左对齐


4️⃣ 用 0 补位(像时间一样) ⏰

printf("%05d", 42);

📢 输出:

00042

5、scanf:会“听指令”的小机器人 🤖

1️⃣ 最基础用法

int x; scanf("%d", &x);

🧠 故事理解:

  • %d:我要一个整数

  • &x:把听到的数,放进 x 的盒子里

⚠️& 非常重要!
没有它,机器人不知道往哪放数据!


2️⃣ 一次听多个数字 👂👂

int a, b; scanf("%d %d", &a, &b);

输入:

3 5

3️⃣ 听小数、字符、字符串 🎶

double d; char c; char s[20]; scanf("%lf", &d); scanf(" %c", &c); // 注意前面的空格! scanf("%s", s);

🧠 为什么%c前要加空格?

因为:

键盘里可能还残留一个“回车键幽灵” 👻
加空格可以吃掉它!


6、scanf 的“精准读取魔法” 🎯

1️⃣ 限制字符串长度(防止炸掉) 💥

char name[6]; scanf("%5s", name);

最多只读5 个字符(留 1 个给结尾)


2️⃣ 按固定格式读取(高级) 🧩

int h, m; scanf("%d:%d", &h, &m);

输入:

12:30

7、printf + scanf 完整小故事 🌈

#include <cstdio> int main() { int age; double score; printf("请输入你的年龄:"); scanf("%d", &age); printf("请输入你的分数:"); scanf("%lf", &score); printf("你今年 %d 岁,考试得了 %.1f 分!\n", age, score); return 0; }

📢 输出示例:

你今年 10 岁,考试得了 98.5 分!

8、给小学生的终极口诀 🧠✨

🪄 printf 口诀

有 % 就要给
给的顺序不能乱
想要几位写几位

🪄 scanf 口诀

scanf 读数据
变量前面要加 &
字符注意空格吃


9、C 风格 vs C++ 风格(悄悄说) 🤫

风格特点
scanf / printf快、严谨、竞赛常用
cin / cout好理解、适合初学

二、🏆 小学生 → 竞赛级

——C风格 输入与输出格式专项训练

🟢 第一阶段:入门稳固(1–5 题)

目标:不写错、不慌、不乱


✅ 第 1 题:最基础输出

题目

输出下面一句话(完全一样):

I love C++!
参考答案
printf("I love C++!");
解析
  • 字符串原样输出

  • 不涉及变量和格式符


✅ 第 2 题:整数输出

题目

定义一个整数x = 8,输出:

x = 8
参考答案
int x = 8; printf("x = %d", x);
解析
  • %d对应int

  • 一个%对应一个变量


✅ 第 3 题:多个整数

题目

输入两个整数a b,输出:

a+b=?
参考答案
int a, b; scanf("%d %d", &a, &b); printf("a+b=%d", a + b);
解析
  • scanf读整数必须加&

  • 输出中=+都是普通字符


✅ 第 4 题:小数默认输出

题目

输入一个double,直接输出它

参考答案
double x; scanf("%lf", &x); printf("%f", x);
解析
  • double%lf

  • printf%f打印

  • 默认6 位小数


✅ 第 5 题:字符与整数混合

题目

输入一个字符和一个整数,输出:

A 10
参考答案
char c; int x; scanf(" %c %d", &c, &x); printf("%c %d", c, x);
解析
  • %c前的空格:吃掉回车

  • 混合输入要注意顺序


🟡 第二阶段:格式控制(6–10 题)

目标:整齐、好看、可控


✅ 第 6 题:控制小数位数

题目

输入一个小数,输出保留 2 位

参考答案
double x; scanf("%lf", &x); printf("%.2f", x);
解析
  • %.2f:保留两位,四舍五入


✅ 第 7 题:右对齐输出

题目

输出整数42,占 5 个位置

参考答案
printf("|%5d|", 42);
解析
  • 不够的位置用空格补在左边

  • 默认右对齐


✅ 第 8 题:左对齐输出

题目

同样占 5 个位置,但左对齐

参考答案
printf("|%-5d|", 42);
解析
  • -表示左对齐


✅ 第 9 题:0 补位

题目

输出一个三位数,不足补 0
输入:7
输出:

007
参考答案
int x; scanf("%d", &x); printf("%03d", x);
解析
  • 0:用 0 补位

  • 3:总宽度


✅ 第 10 题:宽度 + 精度

题目

输出小数,占 6 位,保留 1 位

参考答案
double x; scanf("%lf", &x); printf("%6.1f", x);
解析
  • 6:总宽度

  • .1:小数位数


🟠 第三阶段:字符串与表格(11–15 题)

目标:竞赛中最容易丢分的地方


✅ 第 11 题:字符串输入输出

题目

输入一个名字,比如Tom , 输出:

Hello, Tom
参考答案
char s[20]; scanf("%s", s); printf("Hello, %s", s);
解析
  • 字符数组不用&

  • %s遇空格会停


✅ 第 12 题:限制字符串长度

题目

最多读 5 个字符

参考答案
char s[6]; scanf("%5s", s);
解析
  • 留 1 位给\0

  • 防止数组越界(竞赛必考)


✅ 第 13 题:整齐表格(一行)

题目
输出:
|Tom | 95|
参考答案
printf("|%-5s|%3d|", "Tom", 95);
解析
  • 字符串左对齐

  • 数字右对齐


✅ 第 14 题:多行表格

题目
输出:
|Tom | 95| |Bob |100|
参考答案
printf("|%-5s|%3d|\n", "Tom", 95); printf("|%-5s|%3d|\n", "Bob", 100);

✅ 第 15 题:固定格式输入

题目

输入时间12:30

参考答案
int h, m; scanf("%d:%d", &h, &m);
解析
  • :必须完全匹配

  • 格式不对 → 读失败


🔴 第四阶段:竞赛级 IO(16–20 题)

目标:不翻车、不卡题、不 WA


✅ 第 16 题:多组输入直到 EOF

参考答案
int x; while (scanf("%d", &x) == 1) { printf("%d\n", x); }
解析
  • scanf返回成功读入的个数

  • EOF 是竞赛常见输入方式


✅ 第 17 题:cin + printf 混用(安全版)

ios::sync_with_stdio(false); cin.tie(nullptr); int x; cin >> x; printf("%d\n", x);
解析
  • 关闭同步,避免慢或乱序


✅ 第 18 题:高精度输出

题目

输出 15 位小数

参考答案
double x; scanf("%lf", &x); printf("%.15f", x);

✅ 第 19 题:long long 输入输出

参考答案
long long x; scanf("%lld", &x); printf("%lld", x);
解析
  • %lld是竞赛必背


✅ 第 20 题:综合终极题 ⭐

题目
输入:
Tom 95.5
输出:
Name: Tom Score: 095.50
参考答案
char name[20]; double score; scanf("%s %lf", name, &score); printf("Name: %s\n", name); printf("Score: %06.2f\n", score);
解析
  • 06:宽度 6,不足补 0

  • .2:保留两位

  • 竞赛输出最常见组合


三、🎉 总结

🧠输入输出不是“语法”,而是“规则 + 细节 + 习惯”

做完这 20 题,你已经:

  • ✅ 达到NOIP / CSP 入门级 IO 水平

  • ✅ 不再害怕输出格式题

  • ✅ 能一眼看出题目在“卡你什么格式”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/23 23:08:22

论文相似度超30%?五种实用降重策略,帮你快速符合要求

全球变暖与极端气候事件之间的关联性已得到多项实证研究支持&#xff0c;气象数据分析显示温度上升与异常天气模式的发生频率呈现明显的正相关性。 首先&#xff0c;咱们聊聊人工降重的基本功 人工降重可不是简单换换词就行&#xff0c;它需要一点技巧和耐心。核心方法包括&a…

作者头像 李华
网站建设 2026/2/23 23:00:41

使用Jmeter轻松实现AES加密测试

大家在自己公司做接口测试的时候&#xff0c;有没有遇到过接口做加密处理的情况呢&#xff1f;相信我们的读者朋友们都有一定的概率会遇到这种情况&#xff0c;尤其是对接口数据安全有一定要求的公司接口数据一定会做加密处理。那么遇到加密情况&#xff0c;大家使用工具JMeter…

作者头像 李华
网站建设 2026/2/24 16:10:17

Ubuntu安装Miniconda图文教程(适配20.04及以上版本)

Ubuntu 安装 Miniconda 图文教程&#xff08;适配 20.04 及以上版本&#xff09; 在现代 AI 和数据科学开发中&#xff0c;一个干净、可控的 Python 环境几乎是每个项目的起点。你有没有遇到过这样的情况&#xff1a;刚装好的 PyTorch 跑不起来 CUDA&#xff0c;提示版本不兼容…

作者头像 李华
网站建设 2026/2/21 0:18:40

速藏!程序员转大模型:小白也能懂的生存升级干货

如今的开发圈&#xff0c;“逆水行舟&#xff0c;不进则退”的焦虑感愈发明显——曾让我们安身立命的代码能力&#xff0c;正在被AI技术悄然重塑。尤其是深耕CRUD领域的开发工程师&#xff0c;更是直观感受到岗位需求的微妙变化&#xff0c;这个一度被奉为“铁饭碗”的方向&…

作者头像 李华
网站建设 2026/2/20 22:10:44

16位AD多通道模拟量采集模块:精度够高,选型够灵活

高精度模拟量采集模块是工业自动化、物联网数据采集场景中的核心硬件&#xff0c;其功能围绕精准、稳定、高效采集各类模拟信号展开&#xff0c;特点则聚焦于工业环境适配性与数据可靠性。一、 核心功能 1.多类型模拟信号采集 支持工业现场主流模拟量输入&#xff0c;覆盖电压型…

作者头像 李华