企业网站的主要类型有,网站建设 类型,做暧电影在线观看网站,市文联网站建设一、#x1f9d9;♂️《C 王国的对话魔法》—— 学会和电脑“说话”的第一课在 C 王国里#xff0c;电脑其实是个“小机器人#x1f916;”#xff0c;
它不会主动说话#xff0c;也不会自己知道答案#xff0c;
#x1f449; 你必须教会它两件事#xff1a;1️⃣ 怎…一、♂️《C 王国的对话魔法》—— 学会和电脑“说话”的第一课在 C 王国里电脑其实是个“小机器人”它不会主动说话也不会自己知道答案 你必须教会它两件事1️⃣怎么听你说话输入2️⃣怎么把话说出来输出今天我们就来学这两种“魔法”。1、先认识两位魔法师 ✨在 C 王国里有两位非常重要的魔法师名字作用记忆方法cin输入听c in→ 把东西“放进来”cout输出说c out→ 把东西“送出去”2、输出魔法 ️ —— cout电脑说话 1cout 是干什么的让电脑在屏幕上显示内容就像你对电脑说“嘿把这句话写在黑板上” 2最简单的输出例子 运行结果Hello, C! 2 一行一行解释代码意思#include iostream请来“输入输出魔法书”using namespace std;不用每次都写std::cout电脑开始说话“送出去”的箭头Hello, C!要说的话;这句话说完了 (4) 输出数字cout 10;输出⚠️注意字符串要加 数字不用加 (5) 连续输出像接火车 cout 我今年 10 岁;输出我今年10岁就像一节一节车厢连起来 (6) 换行输出另起一行方法一\ncout 第一行\n; cout 第二行\n;方法二endl推荐给小学生cout 第一行 endl; cout 第二行 endl;3、输入魔法 —— cin电脑听你说 (1) cin 是干什么的让电脑“听”你在键盘上输入的内容你对电脑说“我来告诉你一个数字你记好哦” (2) 第一个输入例子#include iostream using namespace std; int main() { int age; cin age; cout age; return 0; } (3) 发生了什么讲故事版1️⃣int age; 准备一个“小盒子”名字叫age2️⃣cin age; 电脑在等你输入 你在键盘上输入一个数字按回车 数字被放进 age 盒子里3️⃣cout age; 电脑把盒子里的东西拿出来说给你听 (4) 加点提示更友好 (竞赛考试时绝对不要加自己的任何注释和提示int age; cout 请输入你的年龄; cin age; cout 你的年龄是 age endl;️ 运行时画面请输入你的年龄10 你的年龄是104、输入 输出组合魔法 ✨✨ 例子计算两数之和#include iostream using namespace std; int main() { int a, b; cout 请输入第一个数; cin a; cout 请输入第二个数; cin b; cout 它们的和是 a b endl; return 0; } 学生输入3 5 输出它们的和是85、cin 和 cout 的“方向箭头”口诀 超级好记口诀一定要教cin 是右箭头 往盒子里装cout 是左箭头 往外说cin 变量 装进去 cout 内容 说出来6、常见错误小学生一定会犯 ❌ 错误 1忘记分号cout Hello❌ 会报错✅ 每句后面要加;❌ 错误 2字符串忘记加双引号cout Hello;❌ 错✅ 要写cout Hello;❌ 错误 3cin 写反方向cin age; // ❌✅ 正确cin age;二、♂️《C 王国的超级输入输出控制室》—— 不只是说话而是“怎么说、说多准、排多齐”第一幕为什么 cin / cout 还不够 问题抛给学生非常重要老师问“如果电脑要读一整句话呢比如Hello C World中间有空格cin能不能读” 学生会说能吧错第二幕输入篇完整版1、cin —— 一个“怕空格”的听话机器人 1️⃣ cin 的本质规则必须讲清cin遇到空格 / 回车就停string s; cin s;输入Hello C World结果s Hello原因cin 只读到第一个“空白字符”为止。2️⃣ cin 能读什么类型是否可用int / double✅char✅string无空格✅一整行有空格❌2、getline —— “整句话捕捉大师” 出场原因“电脑需要把一句话原封不动地听完”1️⃣ 基本用法必须会string s; getline(cin, s);输入Hello C World结果s Hello C World2️⃣ getline 的规则非常重要getline 会一直读到回车键Enter3、cin getline 的“超级大坑” ⚠️一定要重点讲❌ 错误示例int age; string name; cin age; getline(cin, name);输入10 Tom结果name 空的 为什么 真相老师一定要讲清cin age只读了10回车符\n还留在输入缓冲区getline一来直接读到这个回车 → 结束✅ 正确写法 在竞赛中尽量避免cin与getline混用cin age; cin.ignore(); // 忽略一个回车 getline(cin, name);第三幕输出篇真正的“控制输出”️现在进入重点内容cout 不只是输出而是“怎么输出”1、控制精度小数1️⃣ 默认情况double x 3.1415926; cout x endl;输出3.141592️⃣ 固定小数位数必须会cout fixed setprecision(2) x endl;输出3.14记忆法控制器作用fixed固定小数setprecision(n)保留 n 位3️⃣ 不用 fixed 会怎样cout setprecision(2) x;输出3.1这是“有效数字”不是小数位2、控制宽度对齐用1️⃣ setw —— 给输出一个“格子”cout setw(5) 10 endl;输出10 默认右对齐2️⃣ 左对齐 / 右对齐cout left setw(5) 10 endl; cout right setw(5) 10 endl;输出10 103️⃣ 表格实例非常适合课堂cout left; cout setw(10) 姓名 setw(5) 分数 endl; cout setw(10) Tom setw(5) 95 endl; cout setw(10) Lucy setw(5) 88 endl;输出姓名 分数 Tom 95 Lucy 883、填充字符进阶但很酷 cout setfill(*) setw(6) 42 endl;输出****424、常用输出控制器总表一定要掌握控制器作用fixed固定小数setprecision(n)控制精度setw(n)控制宽度left / right左右对齐setfill(c)填充字符endl换行刷新第四幕综合实战有学习含量 成绩单程序cin getline 所有输出控制#include iostream #include iomanip using namespace std; int main() { string name; double score; cout 请输入学生姓名; getline(cin, name); cout 请输入成绩; cin score; cout \n 成绩单 \n; cout left; cout setw(10) 姓名 setw(10) 成绩 endl; cout setw(10) name setw(10) fixed setprecision(2) score endl; return 0; }三、 C 风格输入输出专项训练 第一阶段基础输入输出1–5第 1 题你好C题目使用cout输出一行文字Hello C【训练目标】cout字符串输出分号第 2 题输出数字题目输出数字12345不加引号。【训练目标】数字输出字符串 vs 数字的区别第 3 题输入一个整数题目输入一个整数n输出它。【训练目标】cin 变量第 4 题输入两个整数题目输入两个整数a和b输出它们的和。【训练目标】连续输入表达式输出第 5 题输入并提示题目提示用户输入年龄并输出你的年龄是X【训练目标】提示语输出输入 输出组合 第二阶段cin 的规则与坑6–9第 6 题字符串无空格题目输入一个不包含空格的名字用cin读取并输出。【训练目标】cin stringcin 遇空格停止第 7 题一句话有空格题目输入一整句话可能包含空格原样输出。【训练目标】getline区分 cin / getline第 8 题先数字后整行题目先输入一个整数再输入一整行字符串分别输出。【训练目标】cin getline输入缓冲区问题⚠️本题必须正确处理回车第 9 题多行输入题目连续输入 3 行文字使用getline读取并逐行输出。【训练目标】多次getline行输入概念 第三阶段小数与精度控制10–13第 10 题输出浮点数题目输入一个double直接输出。【训练目标】浮点输入输出默认精度第 11 题保留 2 位小数题目输入一个浮点数保留 2 位小数输出。【训练目标】fixedsetprecision第 12 题保留 3 位小数题目输入两个浮点数输出它们的平均值保留 3 位小数。【训练目标】浮点运算精度控制第 13 题有效数字 vs 固定小数题目输入一个浮点数第一行用setprecision(3)输出第二行用fixed setprecision(3)输出【训练目标】理解两种精度含义的区别 第四阶段宽度、对齐、表格14–17第 14 题控制输出宽度题目输出数字42占 5 个字符宽度。【训练目标】setw默认右对齐第 15 题左对齐题目输出字符串Tom占 10 个字符宽度左对齐。【训练目标】left宽度 对齐第 16 题右对齐题目输出字符串Tom占 10 个字符宽度右对齐。【训练目标】right第 17 题成绩表题目输入 2 个学生的姓名和成绩按下表格式输出姓名 成绩 Tom 95.50 Lucy 88.00【训练目标】getline cinsetwfixed setprecision表格输出 第五阶段竞赛级输入输出18–20第 18 题多组数据题目第一行输入整数n接下来输入n个整数逐个输出。【训练目标】循环 输入输出比赛常见格式第 19 题严格格式输出题目输入一个整数x输出格式如下注意空格和对齐Value: x其中x占 5 个字符宽度右对齐。【训练目标】精确格式控制OJ 判题思维第 20 题综合终极题I/O 大魔王题目输入一行姓名可能有空格一个整数年龄一个浮点数成绩输出格式要求姓名左对齐占 15年龄右对齐占 5成绩保留 2 位小数占 8【训练目标】cin getline缓冲区处理所有输出控制综合竞赛级 I/O 能力四、C 风格输入输出专项训练—— 参考答案与详细讲解 第 1 题你好C✅ 参考答案#include iostream using namespace std; int main() { cout Hello C; return 0; } 讲解coutC 风格输出Hello C字符串必须加双引号;一句话结束程序从main开始从return 0结束 第 2 题输出数字✅ 参考答案#include iostream using namespace std; int main() { cout 12345; return 0; } 讲解数字不是字符串不需要双引号12345和12345是完全不同的东西 第 3 题输入一个整数✅ 参考答案#include iostream using namespace std; int main() { int n; cin n; cout n; return 0; } 讲解cin n把键盘输入的整数放进变量ncout n把变量里的值输出箭头方向记忆法cin 装进去cout 拿出来 第 4 题输入两个整数求和✅ 参考答案#include iostream using namespace std; int main() { int a, b; cin a b; cout a b; return 0; } 讲解cin a b连续输入a b可以直接写在cout里不需要中间变量 第 5 题带提示的输入输出✅ 参考答案#include iostream using namespace std; int main() { int age; cout 请输入你的年龄; cin age; cout 你的年龄是 age; return 0; } 讲解提示语只是普通输出输入不会自动换行是否换行由程序员决定 第 6 题字符串无空格✅ 参考答案#include iostream #include string using namespace std; int main() { string name; cin name; cout name; return 0; } 讲解cin string遇到空格就停只能读一个“单词”非常重要的规则 第 7 题一句话有空格✅ 参考答案#include iostream #include string using namespace std; int main() { string s; getline(cin, s); cout s; return 0; } 讲解getline读整行一直读到回车为止专门用来处理“有空格的输入” 第 8 题先数字后整行重点✅ 参考答案#include iostream #include string using namespace std; int main() { int n; string s; cin n; cin.ignore( ); getline(cin, s); cout n endl; cout s endl; return 0; } 讲解必须讲清cin n读完数字后回车还留在缓冲区getline一来就读到了这个回车cin.ignore()清理缓冲区这是竞赛必会坑 第 9 题多行输入✅ 参考答案#include iostream #include string using namespace std; int main() { string s; for (int i 0; i 3; i) { getline(cin, s); cout s endl; } return 0; } 讲解每次getline读一整行非常常见的输入形式作文、日志 第 10 题输出浮点数✅ 参考答案#include iostream using namespace std; int main() { double x; cin x; cout x; return 0; } 讲解默认输出不是全部小数C 会自动控制精度 第 11 题保留 2 位小数✅ 参考答案#include iostream #include iomanip using namespace std; int main() { double x; cin x; cout fixed setprecision(2) x; return 0; } 讲解fixed固定小数位setprecision(2)保留 2 位比赛中极其常用 第 12 题平均值3 位小数✅ 参考答案#include iostream #include iomanip using namespace std; int main() { double a, b; cin a b; double avg (a b) / 2; cout fixed setprecision(3) avg; return 0; } 讲解浮点计算要用double精度控制只影响输出不影响计算 第 13 题精度对比✅ 参考答案#include iostream #include iomanip using namespace std; int main() { double x; cin x; cout setprecision(3) x endl; cout fixed setprecision(3) x endl; return 0; } 讲解非常重要没有fixed有效数字有fixed小数位数这是很多 WA 的根源 第 14 题宽度控制✅ 参考答案#include iostream #include iomanip using namespace std; int main() { cout setw(5) 42; return 0; } 讲解setw(5)占 5 个字符默认右对齐 第 15 题左对齐✅ 参考答案#include iostream #include iomanip using namespace std; int main() { cout left setw(10) Tom; return 0; } 讲解left是状态会一直生效常用于表格输出 第 16 题右对齐✅ 参考答案#include iostream #include iomanip using namespace std; int main() { cout right setw(10) Tom; return 0; } 讲解right是默认状态数字通常右对齐更好看 第 17 题成绩表✅ 参考答案#include iostream #include iomanip #include string using namespace std; int main() { string name1, name2; double s1, s2; cin name1 s1; cin name2 s2; cout left; cout setw(10) 姓名 setw(10) 成绩 endl; cout setw(10) name1 fixed setprecision(2) setw(10) s1 endl; cout setw(10) name2 fixed setprecision(2) setw(10) s2 endl; return 0; } 讲解setw每次只作用于下一个输出精度控制是状态表格输出是竞赛必备技能 第 18 题多组数据✅ 参考答案#include iostream using namespace std; int main() { int n, x; cin n; for (int i 0; i n; i) { cin x; cout x endl; } return 0; } 讲解第一行是“控制数量”的输入OJ 中极其常见 第 19 题严格格式✅ 参考答案#include iostream #include iomanip using namespace std; int main() { int x; cin x; cout Value: setw(5) right x; return 0; } 讲解判题系统空格不允许多也不允许少格式不对 WA 第 20 题终极综合题✅ 参考答案#include iostream #include iomanip #include string using namespace std; int main() { string name; int age; double score; getline(cin, name); cin age score; cout left setw(15) name; cout right setw(5) age; cout fixed setprecision(2) setw(8) score; return 0; } 讲解竞赛级getline cin混用对齐 宽度 精度这是完整 I/O 能力的体现五、总结一句话最后给学生C 输入输出不是“会用就行”而是“格式对不对直接决定你 AC 还是 WA”。