GESP2026年9月认证C++一级( 第三部分编程题(1、新龟兔赛跑))精讲
一、先听懂故事新龟兔赛跑 很久很久以前……兔子和乌龟进行了一场赛跑。以前兔子因为骄傲自满比赛的时候睡觉输给了乌龟。这一次兔子吸取了教训“这次我绝对不睡觉”所以 乌龟会一直按照固定速度跑到终点 兔子不会再睡觉但是它会在终点前睡一会儿谁先到达终点谁就获胜。题目给我们三个数字第1行乌龟从起点到终点需要的时间 第2行兔子的速度 第3行兔子在终点前睡觉的时间起点到终点的距离固定为1000.0题目要求我们判断乌龟赢 兔子赢 还是平局并且第二行输出兔子到达终点所需要的总时间。二、第一件事情先把题目转换成“数学语言”假设输入20.0 100.0 11.0那么乌龟时间 20.0 兔子速度 100.0 兔子睡觉时间 11.0兔子跑的距离是1000.0我们知道⭐ 时间 路程 ÷ 速度所以兔子不停下来跑完全程需要1000.0 ÷ 100.0 10.0但是兔子还要睡11.0所以兔子的总时间10.0 11.0 21.0于是 乌龟20.0 兔子21.0谁更快当然是20.0 21.0所以乌龟获胜题目的样例输出正是turtle 21.00三、这道题真正的核心只有两个步骤我们可以把整个题目压缩成一张“藏宝图”输入 ↓ ┌─────────────────┐ │ 乌龟需要的时间 t1 │ │ 兔子的速度 v │ │ 兔子睡觉时间 t2 │ └─────────────────┘ ↓ 计算兔子跑步时间 ↓ 1000.0 / v ↓ 加上兔子的睡觉时间 ↓ 兔子总时间 tt ↓ ┌────────┼────────┐ ↓ ↓ ↓ tt t1 tt t1 tt t1 ↓ ↓ ↓ rabbit turtle tie是不是一下就简单了四、第一步定义三个变量我们可以写float t1, v, t2;分别表示t1 → 乌龟需要的时间 v → 兔子的速度 t2 → 兔子睡觉的时间为什么使用float而不是int因为题目的数据可能是20.0 100.0 11.0也就是说可能有小数。所以我们使用能够保存小数的float。五、第二步输入数据代码cin t1 v t2;如果输入20.0 100.0 11.0那么t1 20.0 v 100.0 t2 11.0可以想象成三个小盒子┌────────────┐ │ t1 20.0 │ └────────────┘ ┌────────────┐ │ v 100.0 │ └────────────┘ ┌────────────┐ │ t2 11.0 │ └────────────┘六、第三步计算兔子的总时间这是全题最重要的一行float tt 1000.0 / v t2;我们拆开来看。①1000.0 / v这是兔子跑完整个1000米需要的时间。因为时间 路程 ÷ 速度所以1000.0 ÷ v② t2兔子跑完以后还需要加上睡觉时间所以兔子总时间 跑步时间 睡觉时间也就是float tt 1000.0 / v t2;七、拿样例走一遍输入20.0 100.0 11.0先计算1000.0 / 100.0 10.0再加10.0 11.0 21.0所以tt 21.0八、第四步比较谁先到达现在我们有t1 乌龟时间 tt 兔子时间所以直接比较if (tt t1)什么意思如果兔子用的时间更少兔子获胜。那么printf(rabbit\n);第二种情况如果else if (tt t1)说明兔子需要更多时间。所以 乌龟更快输出printf(turtle\n);第三种情况如果else意味着tt t1也就是两个人恰好同时到达所以printf(tie\n);九、把整个判断画成“比赛终点门”可以把它想象成终点有一个裁判 终点裁判 │ ┌────────┴────────┐ │ │ 兔子时间 tt 乌龟时间 t1 │ │ └────────┬────────┘ ↓ 比较时间 ↓ ┌───────────┼───────────┐ ↓ ↓ ↓ ttt1 ttt1 ttt1 ↓ ↓ ↓ rabbit turtle tie记住比赛比的是“时间”不是速度这是这道题非常容易出现的思维陷阱。十、为什么不能直接比较兔子的速度和乌龟比如乌龟时间20秒 兔子速度100 兔子睡觉11秒我们不能说“兔子的速度100看起来一定比乌龟快。”因为乌龟给我们的不是速度而是乌龟已经跑完全程需要20秒。而兔子需要我们自己计算1000 / 100 11 21最后比较20秒 vs 21秒所以 乌龟赢。十一、第二个样例兔子赢了 题目第二组输入20.0 100.0 9.0我们计算兔子跑步时间 1000 ÷ 100 10兔子睡觉9所以兔子总时间 10 9 19乌龟20比较19 20所以 兔子获胜输出rabbit 19.00十二、为什么输出是19.00而不是19这个地方很值得初学者注意。题目要求输出二位小数。参考程序printf(%.2f\n, tt);这里%.2f就是用小数形式输出并且保留2位小数。所以19会显示成19.00而21会显示成21.00十三、%.2f到底是什么意思把它拆成% .2 ff表示按浮点数格式输出。.2表示小数点后保留2位。所以printf(%.2f, 19.5);输出19.50而printf(%.2f, 19.567);会按照两位小数的要求输出相应结果。十四、完整参考程序#include iostream #include cstdio using namespace std; int main() { float t1, v, t2; cin t1 v t2; float tt 1000.0 / v t2; if (tt t1) printf(rabbit\n); else if (tt t1) printf(turtle\n); else printf(tie\n); printf(%.2f\n, tt); return 0; }这也是这道题的核心程序结构。十五、我们逐行解析#include iostream #include cstdio↓ 我要使用输入输出工具。using namespace std;↓后面的代码可以直接使用cin等名字。int main()↓ 比赛正式开始float t1, v, t2;↓准备三个小盒子 乌龟时间 兔子速度 兔子睡觉时间cin t1 v t2;↓把输入的数据装进三个盒子。float tt 1000.0 / v t2;↓计算兔子的总时间。if (tt t1)↓兔子时间更短吗如果是printf(rabbit\n);↓ 兔子赢else if (tt t1)↓兔子时间更长吗如果是printf(turtle\n);↓ 乌龟赢else↓两个人时间一样printf(tie\n);↓ 平局printf(%.2f\n, tt);↓把兔子的总时间保留两位小数打印出来。十六、这道题最重要的“做题模板”以后大家再遇到类似的两个人比赛谁先到达可以直接使用这个思考模板第1步分别确定两个人的时间人物A时间 ? 人物B时间 ?第2步如果某个人没有直接给时间利用时间 路程 ÷ 速度第3步把额外花费的时间加进去例如总时间 跑步时间 睡觉时间第4步比较时间A时间 B时间 → A赢 A时间 B时间 → B赢 A时间 B时间 → 平局十七、初学者容易犯的4个错误❌ 错误1把速度当成时间比较兔子的速度是100不能直接和乌龟的20比。因为100 → 速度 20 → 时间单位都不一样。❌ 错误2忘记兔子睡觉兔子真正的总时间1000 / v t2而不是1000 / v❌ 错误3把公式写反错误v / 1000正确1000.0 / v因为时间 路程 ÷ 速度❌ 错误4忘记平局不能只写if (tt t1) rabbit else turtle因为还有第三种可能tt t1所以应该if (tt t1) rabbit; else if (tt t1) turtle; else tie;十八、最后把这道题压缩成一句话乌龟时间题目直接给兔子时间用“1000÷速度睡觉时间”算出来然后谁的时间短谁获胜。最后形成一个思维方式流程读题 ↓ 找变量 ↓ 找公式 ↓ 算出兔子时间 ↓ if 比较 ↙ ↓ ↘ 兔赢 平局 龟赢这道题的算法难度不高真正考查的是孩子能不能把故事 → 数学公式 → C变量 →if-else判断 → 格式化输出这一整条链路连接起来。

相关新闻

2026中国战略规划机构实力榜:十家智库的专业度与创新力解读

2026中国战略规划机构实力榜:十家智库的专业度与创新力解读

一、2026年中国智库与战略咨询市场格局概览过去十年,中国的战略咨询与智库行业从“研究导向”迈入“决策驱动”阶段。尤其在人工智能、绿色低碳、智能制造与产业数字化领域,智库机构逐步扮演战略顾问、行业研究者与数据洞察提供者的多重角色。截至2026年…

2026/10/4 7:32:07 阅读更多 →
中望3D钣金:褶弯凸缘

中望3D钣金:褶弯凸缘

使用该命令在现有钣金模型的边线上添加不同的卷曲形状,其壁厚与钣金件厚度相同。

2026/10/5 9:08:40 阅读更多 →
数组与链表底层差异:内存模型、操作复杂度与工程选型全解析

数组与链表底层差异:内存模型、操作复杂度与工程选型全解析

数组和链表的区别,这道题出现在测开面试里的频率,我估计能排进前三。我面过的人里,十个有八个能背出“数组内存连续、链表内存不连续”“数组查得快、链表增删快”这两句,但真要往深了问一句“为什么查得快”“快在哪一步”&#…

2026/10/4 7:34:02 阅读更多 →

最新新闻

遥感生态指数RSEI模型原理与GEE实现全解析

遥感生态指数RSEI模型原理与GEE实现全解析

这些年做生态环境遥感评估,我周围很多同行一开始都习惯用NDVI单指标来看一个区域的生态状况,但说实话,单看绿度太片面了。一个城市周边可能有大量农田,NDVI很高,但地表温度、建筑裸土占比这些生态压力因素完全没体现出…

2026/10/5 14:01:23 阅读更多 →
CH340N Type-C转串口模块设计全流程:原理图到调试

CH340N Type-C转串口模块设计全流程:原理图到调试

CH340N这颗芯片,凡是玩单片机、折腾串口调试的人,大概率都见过。最近两年USB Type-C接口普及之后,基于CH340N做的Type-C转TTL小模块越来越多,体积比过去CH340G加晶振的方案小了一大截,插上电脑就能识别成一个串口&…

2026/10/5 14:01:22 阅读更多 →
蓝桥杯P8627饮料换购:从模拟循环到数学公式的解法剖析

蓝桥杯P8627饮料换购:从模拟循环到数学公式的解法剖析

看到 P8627 [蓝桥杯 2015 省 A] 饮料换购,熟悉蓝桥杯的朋友应该会心一笑——这是省赛里少见的“送分题”。但别急着得意,我身边很多同学在这道题上翻过车:有人把简单模拟写成了死循环,有人算出了错误的总瓶数,还有人明…

2026/10/5 14:01:22 阅读更多 →
基于Hadoop+Spark+Hive与TensorFlow的招聘薪资预测及岗位推荐系统实战

基于Hadoop+Spark+Hive与TensorFlow的招聘薪资预测及岗位推荐系统实战

每年到了毕业设计的高峰期,总能看到一批批类似“薪资预测系统”“招聘岗位推荐”的题目涌进来。这个方向之所以长盛不衰,本质上是踩中了当下两个最热的赛道:大数据处理和机器学习应用。你只要走进任何一个招聘软件的后台,就会发现…

2026/10/5 14:01:22 阅读更多 →
Supacode Worktree工作流实战:如何让多个AI编码Agent并行开发互不冲突

Supacode Worktree工作流实战:如何让多个AI编码Agent并行开发互不冲突

Supacode Worktree工作流实战:如何让多个AI编码Agent并行开发互不冲突 【免费下载链接】supacode worktree coding agents command center. 项目地址: https://gitcode.com/gh_mirrors/su/supacode Supacode 是一款 macOS 原生的 AI 编码 Agent 并行指挥中心…

2026/10/5 14:01:21 阅读更多 →
3D打印Pre-IPO估值30亿背后:设备、材料与应用生态的决胜点

3D打印Pre-IPO估值30亿背后:设备、材料与应用生态的决胜点

刚刷到这条融资消息的时候,我第一反应不是“哇,30亿”,而是“Pre-IPO”这三个字比数字本身更有意思。苏州,3D打印,投前估值30亿,这几个词叠在一起,基本能确定一件事:这个行业已经从“…

2026/10/5 14:00:21 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →