OneCoder

【CSP】CSP-J 2019 第一轮真题解析(一):单项选择题

2019 年是 NOIP 转型为 CSP 的第一年,本年度的 CSP-J(入门级/普及组)初赛试卷难度适中,非常注重计算机的基础理论广度以及算法执行的模拟能力。 本文将为您先展示真题原题,然后进行逐题深度解析,帮助 GESP 及 CSP-J 的备考同学精准对标考点。 📌 一、单项选择题(共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项) 第 1 题 ...

【信奥业余科普】C++ 的奇妙之旅 | 14:程序的分叉路口——逻辑判断与 if-else 语句

在上一篇文章中,我们探讨了计算机底层二进制存储的规则,了解了“爆 int”数据溢出与浮点数精度丢失的原因,并简单了解了条件控制。不过,我们目前编写的程序还有一个明显的问题:代码只能从上到下按顺序执行,不会根据情况改变执行路线。 如果在之前分苹果的程序中,用户输入的小朋友数量是 0,程序在执行除法时就会因为除数为零而引发崩溃报错。为了让程序能够应对各种情况,避开错误,我们需要引入一项基本机制...

【CSP】CSP-J 2019真题 | 公交换乘 luogu-P5661 (适合GESP四级及以上考生练习)

CSP-J 2019真题- 公交换乘,模拟、队列考点,重点考察对于时间窗口内状态的维护以及阅读理解能力,适合GESP四级及以上考生练习,难度⭐⭐☆,洛谷难度等级普及−。 P5661 [CSP-J 2019] 公交换乘 题目要求 题目描述 著名旅游城市 B 市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交车的优惠方案: 在搭乘一次地铁后可以获得一张优...

【信奥业余科普】C++ 的奇妙之旅 | 13:为什么 0.1+0.2≠0.3?——解密“爆int”溢出与浮点数精度的底层原理

在第 11 篇文章中,我们提到 int、double 等数据类型本质上是向系统申请固定大小的内存空间。在第 12 篇文章中,我们看到整数除法(如 5 / 2)会舍弃小数部分,仅保留整数 2。 这些现象的根本原因在于:计算机内部依靠晶体管的高低电平处理数据,只能理解由 0 和 1 组成的二进制。 今天,我们将探讨不同数据类型是如何在二进制架构中存储的,并解释为什么计算机在处理简单的小数运算(...

【信奥业余科普】C++ 的奇妙之旅 | 12:程序的交互与加工——数据的输入与算术运算

在上一篇文章中,我们介绍了变量的概念,理解了程序是如何在内存中开辟“收纳空间”存放不同类型数据的。然而,如果一个程序只能在代码里写死固定的数字(比如永远只算 12 + 5),那它只具备计算器的单一计算功能,算不上灵活的软件或算法。 为了让程序能够根据现实情况动态处理问题,它必须具备从外部获取数据的能力,并在内部完成特定的数学加工。今天,我们就来探讨 C++ 程序获取外界信息和进行基础数据运...

【随笔】关于信奥科普系列的一点思考:我觉得你不该用“三分钟速成”的方式学编程?

在持续更新《计算机历史》与《C++ 的奇妙之旅》这两个致力于探讨底层运作机制与基础核心思想的科普系列之际,我关注了一下后台的阅读数据。 坦率地说,这让我产生了一点关于网络时代学习方式的困惑。 我个人非常喜欢,甚至要求我的孩子对“信奥科普系列”文章每篇都要仔细阅读给我总结。但这个系列的阅读量与讨论度,反而往往比不上我顺手制作的“一图看懂xxx”系列文章。 这让我不禁想停下科普的脚步,借这...

【信奥业余科普】C++ 的奇妙之旅 | 11:程序的处理核心——变量与常用数据类型

在上一篇文章中,我们剖析了“Hello, World!”背后的编译原理与程序的骨架结构。现在我们已经知道如何让程序通过屏幕和世界打招呼了。但真正的软件和算法绝不只是为了打印几行固定的文字,其存在的根本目的是为了处理数据。 要处理数据,首先要有一个地方存放数据。今天,我们就来解构几乎所有编程语言的基础:变量与数据类型。我们不仅会看看它们是什么,更重要的是,我们要探讨在计算机科学和 C++ 的...

【信奥业余科普】C++ 的奇妙之旅 | 10:代码是如何运行的?——编译过程与“Hello, World”

在上一篇文章中,我们了解了 C++ 的发展历史。很多同学可能已经准备好动手写代码了。但在编写著名的“Hello, World!”程序之前,我们需要先了解一个基本原理:由英文字母写成的 C++ 代码,是如何被计算机识别并运行的? 今天,我们将介绍程序编译的基本过程,并解析我们即将编写的第一段 C++ 代码。 写在前面的话:这是一系列专为对信奥(信息学奥赛)感兴趣的中小学生及家长朋友们准备的...

【信奥业余科普】C++ 的奇妙之旅 | 09:信奥赛场的核心语言——C++ 的前世今生

在上一篇文章中,我们为第一部分【计算机历史】画上了句号。从本篇开始,我们将开启第二部分——【C++ 的奇妙之旅】。在此部分中,我们将开始学习 C++ 这门核心编程语言。今天,我们将由浅入深地介绍 C++ 的发展历史、设计理念,以及它为何能成为当今信奥赛场上的主要编程语言。 写在前面的话:这是一系列专为对信奥(信息学奥赛)感兴趣的中小学生及家长朋友们准备的科普文章。笔者受自身学识所限,文中若...