🏋️ C5-3 字符串模拟与输出调试 · 本讲巩固

精选 6 道本讲核心题 · 字符串操作·子串·字符模拟·输出调试

📌 在家怎么做本讲巩固: ① 先自己想思路 ② 对照流程图检查 ③ 去OJ平台敲代码 ④ 输本讲密码对答案
下面的解题思路流程图 + 重难点提示可以直接看;参考答案代码需要输入本节课密码后在本页弹出。
1Z1162 单词的长度

📚 覆盖知识点

字符串处理、cin自动分隔、size()函数、输出格式

⭐ 难度

入门级,字符串基础

解题思路流程图

用while(cin >> s)读入多个单词
↓
每个单词读入后直接输出 s.size()
↓
注意输出格式:每个长度后跟空格
↓
读完所有单词后结束

⚠️ 需格外注意

  • cin >> s 自动按空格分隔单词,不需要手动split
  • 用while循环持续读入,直到文件结束
  • 输出格式:长度之间用空格分隔
🚀 去OJ平台做题(Z1162)
2Z1243 密码翻译

📚 覆盖知识点

字符串遍历、字符替换、ASCII码运算、循环

⭐ 难度

入门级,字符操作

解题思路流程图

用getline读入一整行字符串
↓
遍历每个字符:字母后移一位(z→a)
↓
非字母字符保持不变
↓
输出替换后的字符串

⚠️ 需格外注意

  • z后移一位要变成a(循环),不是超出字母范围
  • 区分大小写:小写z→a,大写Z→A
  • 非字母字符(数字、符号、空格)不替换
🚀 去OJ平台做题(Z1243)
8Z1099 大整数加法

📚 覆盖知识点

字符串、大整数、逐位相加、进位处理、reverse

⭐ 难度

普及-,大整数运算

解题思路流程图

读入两个大整数字符串a和b
↓
reverse反转两个字符串(低位在前)
↓
逐位相加:da+db+carry,存结果,更新carry
↓
最高位有进位则加一位,reverse后输出

⚠️ 需格外注意

  • 大整数超过long long范围,必须用字符串存储
  • 从低位(字符串末尾)开始相加,所以要先reverse
  • carry进位:每一位相加后 carry = sum / 10
🚀 去OJ平台做题(Z1099)
9Z1207 统计天数

📚 覆盖知识点

日期计算、月份天数、闰年判断、累加

⭐ 难度

入门级,日期模拟

解题思路流程图

读入y年m月d日
↓
判断闰年:2月=29天,平年2月=28天
↓
累加1月到m-1月的天数
↓
加上当月d天,输出总天数

⚠️ 需格外注意

  • 闰年判断:(y%4==0 && y%100!=0) || y%400==0
  • 每月天数:31,28/29,31,30,31,30,31,31,30,31,30,31
  • 注意数组下标:days[1]=31(1月),不要搞错
🚀 去OJ平台做题(Z1207)
10Z1203 比饭量

📚 覆盖知识点

数组、排名计算、双重循环、比较

⭐ 难度

普及-,排名计算

解题思路流程图

读入n个人的饭量到数组a
↓
对每个人i:数有多少人的饭量 > a[i]
↓
rank = 1 + 比a[i]大的人数
↓
按原顺序输出每个人的排名

⚠️ 需格外注意

  • 排名 = 1 + 比你饭量大的人数
  • 相同饭量排名相同(并列)
  • 用双重循环:外层遍历每个人,内层数比他大的人数
🚀 去OJ平台做题(Z1203)
13Z1234 找朋友

📚 覆盖知识点

数组查找、配对、双重循环、模拟

⭐ 难度

普及-,数组查找

解题思路流程图

读入n个人的编号数组a[1..n]
↓
对每个人i:在数组中找值等于i的位置j
↓
找到后输出j
↓
所有人找完后输出

⚠️ 需格外注意

  • 找朋友:a[j]=i表示第j个人的朋友是i,所以i的朋友是j
  • 用双重循环:外层遍历每个人,内层查找
  • 找到后要break,只输出第一个匹配
🚀 去OJ平台做题(Z1234)
💪 本讲巩固做完意犹未尽?👉 去 💻 OJ练习题(完整题库 10基础+5进阶) 刷更多题!