任我行信息学奥赛一本通-第二本:备战CSP-J-总第九章:CSP-J初赛篇-2.9.1-冷知识合集
众所周知,信息学的天梯赛始于\(CSP-J\),而要想拿到复赛参赛资格,就得面对惊人淘汰率
CSP-J初赛淘汰率概览
| 年份 | 报名人数(全国预估) | 初赛通过率(约) | 淘汰率(约) | 主要变化因素 |
|---|---|---|---|---|
| 2020 | 8万+ | 30%-40% | 60%-70% | 首次线上考试,部分省份调整 |
| 2021 | 12万+ | 25%-35% | 65%-75% | 报名人数激增,难度微调 |
| 2022 | 15万+ | 20%-30% | 70%-80% | 题型改革(增加数学逻辑题) |
| 2023 | 18万+ | 15%-25% | 75%-85% | 部分省份分数线大幅提高 |
| 2024 | 20万+(预估) | 10%-20% | 80%-90% | 竞争加剧,题目难度分层 |
所以在此,我们一起来复习CSP-J的初赛吧!
冷知识占初赛约 5%-10%,但在同分选手中,他可能成为晋级关键,我们一起来复习一下吧!
1.人物
计算机发展史(\(5\)阶段划分)
| 代别 | 年代 | 逻辑(电子)元件 | 应用范围 |
|---|---|---|---|
| 第一代 | \(1946 - 1958\) | 真空电子管 | 科学计算、军事研究 |
| 第二代 | \(1959 - 1964\) | 晶体管 | 数据处理、事物处理 |
| 第三代 | \(1965 - 1970\) | 集成电路 | 工业控制的各个领域 |
| 第四代 | \(1971 - 至今\) | 大规模、超大规模集成电路 | 各个领域 |
| 第五代 | \(现代\) | 智能计算机系统 | 人工智能 |
“中国计算机之父”称号及争议点
1. 华罗庚(1910–1985)
- 主要贡献:
- 中国计算机科学理论奠基人,1950年代主持筹建中科院计算技术研究所。
- 推动中国早期计算机研制(如103机,中国第一台通用电子管计算机,1958年)。
- 争议点:
- 华罗庚更偏向数学理论和科研规划,未直接参与硬件设计,因此严格来说更符合“中国计算机理论之父”。
2. 夏培肃(1923–2014)
- 主要贡献:
- 中国第一台自行设计的通用电子计算机107机(1960年)的核心设计者。
- 培养了中国第一批计算机专业人才,被誉为“中国计算机之母”。
- 考点提示:
- 若题目强调“自行设计的第一台计算机”,夏培肃更符合。
3. 慈云桂(1917–1995)
- 主要贡献:
- 领导研制中国第一台晶体管计算机(441B机,1964年)。
- “银河”系列超级计算机的奠基人。
- 定位:
- 中国高性能计算机领域的先驱。
4. 金怡濂(1929–)
- 主要贡献:
- 中国巨型计算机(超算)的核心专家,主持研制“神威”系列。
- 2002年获得国家最高科学技术奖。
- 注意:
- 属于后起之秀,非“第一代”计算机先驱。
考点总结
如果CSP-J/S考试中出现“中国计算机之父”:
- 通常指华罗庚(因理论奠基作用更广泛)
- 若具提到硬件实现或自主研制,则可能是夏培肃或慈云桂
在CSP-J/S竞赛中,计算机科学史上的重要人物及相关知识点可能以选择题或填空题的形式出现。以下是需要重点掌握的人物及其贡献的详细分类讲解:
计算机理论奠基人
重中之重
- 1946年,世界上第一台电子计算机ENIAC在美国宾夕法尼亚大学诞生。
- 冯·诺依曼:被称为“计算机之父”,提出计算机体系结构;
- 图灵:被称为“人工智能之父”,提出了一种判定机器是否具有智能的试验方法,即图灵试验。此外,图灵提出的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础。
- 克劳德·香农:被称为“通信之父”
艾伦·图灵(Alan Turing)
英国数学家,计算机之父,人工智能之父,计算机逻辑的奠基者,提出“图灵机”概念,1966年由美国计算机协会ACM设“图灵奖”,是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称,每年评选出一名计算机科学家,目前获得该奖项的华人学者仅有2000年图灵奖得主姚期智教授。现代计算机的基础是抽象的图灵机。
- 主要贡献:
- 提出图灵机模型(1936年),为现代计算机理论奠定基础。
- 图灵测试:判断机器是否具有智能的经典方法。
- 二战期间破解德国\(Enigma\)密码,加速盟军胜利。
- 考点总结:
- 图灵奖是计算机领域最高奖项(相当于诺贝尔奖)。
- 图灵机是理论模型,而非实际计算机。
冯·诺依曼(John von Neumann)
美籍匈牙利数学家,现代电子计算机之父,世界上第一台现代意义的通用计算机EDVAC(离散变量自动电子计算机,二进制)的发明者,提出①存储程序思想 ②计算机硬件设备由存储器、中央处理器、控制器、输入设备和输出设备五部分组成
- 主要贡献:
- 提出冯·诺依曼体系结构(存储程序原理),现代计算机的通用设计。
- 冯·诺依曼体系结构图
flowchart TD
A[输入设备] --> B[存储器]
B --> C[运算器]
C --> B
B --> D[输出设备]
E[控制器] --> A
E --> B
E --> C
E --> D
- 关键特点:程序和数据存储在同一个存储器中。
- 考点总结:
- 第一台采用该体系的计算机:\(EDVAC\)(区别于\(ENIAC\))。
- 常与图灵的理论贡献对比(图灵侧重理论,冯·诺依曼侧重实际设计)。
- 拓展内容
- \(ENIAC\)(电子数值积分计算机,十进制),由宾夕法尼亚大学的莫奇莱教授和埃克特博士等为计算弹道轨迹而研制。
编程语言与算法先驱
高德纳(Donald Knuth)
- 主要贡献:
- 《计算机程序设计艺术》(TAOCP):算法领域的经典著作。
- 发明TeX排版系统(解决数学公式排版问题)。
- 考点总结:
- 算法分析中常用的“大O符号”在其著作中系统化。
尼古拉斯·沃斯(Niklaus Wirth)
- 主要贡献:
- 设计Pascal语言(结构化编程的代表)。
- 提出著名公式:算法 + 数据结构 = 程序。
- 考点总结:
- Pascal语言是早期NOI竞赛指定语言。
硬件与操作系统先驱
戈登·摩尔(Gordon Moore)
- 主要贡献:
- 提出摩尔定律:集成电路上晶体管数量每18-24个月翻倍。
- 英特尔公司创始人之一。
- 考点总结:
- 摩尔定律是经验性预测,非物理定律。
丹尼斯·里奇(Dennis Ritchie)
- 主要贡献:
- 发明C语言(1972年),影响C++、Java等后续语言。
- 共同开发Unix操作系统。
- 考点总结:
- C语言是操作系统和竞赛编程的基础语言。
中国计算机科学家
王选
- 主要贡献:
- 发明汉字激光照排系统,推动中文印刷革命。
- 被誉为“当代毕昇”。
- 考点总结:
- 汉字信息处理技术的代表性人物。
其他关键人物
布莱士·帕斯卡(Blaise Pascal)
- 主要贡献:
- 1642年发明机械计算器Pascaline,可进行加减运算
- 采用齿轮进位机制,解决税务计算需求
- 考点总结:
- 人类历史上首台获得实际应用的机械计算机
- 为后来的计算设备奠定机械设计基础
- 现代编程语言Pascal的命名来源
- 与莱布尼茨计算器的演进关系
戈特弗里德·莱布尼茨(Gottfried Leibniz)
- 主要贡献:
- 1673年改进帕斯卡设计,发明Stepped Reckoner计算器
- 实现四则运算与开方运算的机械化
- 提出二进制算术体系雏形
- 考点总结::
- 二进制理论与现代计算机的关联
- 与布尔代数的理论承继关系
查尔斯·巴贝奇(Charles Babbage)
- 主要贡献:
- 1837年设计分析机(Analytical Engine)
- 完整提出五大部件概念:
- 存储库(Store)→ 内存
- 运算室(Mill)→ CPU
- 控制器(Control Unit)→ 控制单元
- 输入/输出 → I/O设备
- 考点总结:
- 首次实现可编程设计(通过穿孔卡片)
- 支持条件跳转与循环结构
阿达·洛芙莱斯(Ada Lovelace)
- 主要贡献:
- 为巴贝奇分析机编写首个伯努利数计算算法
- 建立的重要概念:
- 循环结构
- 子程序调用
- 算法复杂度分析
- 考点总结:
- 史上首位程序员
- 预见了计算机超越纯数学计算的潜力
- 美国国防部编程语言Ada以其命名
- 每年10月第二个星期二是"Ada Lovelace日"
克劳德·香农(Claude Shannon)
- 主要贡献:
- 1937年硕士论文证明:
- 布尔代数可模拟所有电子开关电路
- 奠定数字电路理论基础
- 1948年创立信息论
- 提出信息度量单位:比特(bit)
- 建立信道容量计算公式
- 1937年硕士论文证明:
- 考点总结:
- 现代通信系统的理论基石
- 数据压缩/纠错编码的理论基础
- 熵(Entropy)的计算公式
- 二进制与逻辑门的关系证明
2.操作系统详解
操作系统概述
操作系统的定义
- 核心功能:管理硬件、提供用户接口、调度任务、控制程序执行。
- 主要目标:
- 效率:最大化系统资源利用率(CPU、内存、I/O)。
- 方便性:隐藏硬件细节,提供抽象接口(如文件系统)。
操作系统的分类
| 类型 | 特点 | 典型例子 |
|---|---|---|
| 批处理系统 | 一次性提交多个作业,顺序执行 | 早期大型机(如IBM OS/360) |
| 分时系统 | 多用户共享CPU,快速切换(时间片轮转) | Unix、Linux |
| 实时系统 | 严格时间约束(硬实时:导弹控制;软实时:视频播放) | VxWorks、QNX |
进程与线程
进程(Process)
- 定义:程序的一次执行实例,拥有独立的内存空间和资源。
- 进程控制块(PCB):存储进程状态、寄存器值、PID等。
- 进程状态:graph LR A[新建] --> B[就绪] B --> C[运行] C --> D[阻塞] D --> B C --> E[终止]
- 就绪:等待CPU分配时间片。
- 阻塞:等待I/O等事件完成。
线程(Thread)
- 定义:进程内的轻量级执行单元,共享进程资源(内存、文件)。
- vs 进程:
对比项 进程 线程 资源占用 高(独立内存) 低(共享内存) 切换开销 大(需切换内存空间) 小(仅切换寄存器)
进程调度算法
| 算法 | 策略 | 特点 |
|---|---|---|
| 先来先服务(FCFS) | 按到达顺序执行 | 简单,但长任务会阻塞短任务 |
| 短作业优先(SJF) | 优先执行预计时间最短的任务 | 平均等待时间最优,但需预知时间 |
| 时间片轮转(RR) | 每个任务分配固定时间片 | 公平,但上下文切换开销大 |
| 多级反馈队列(MFQ) | 结合优先级和时间片动态调整 | 平衡响应时间和吞吐量 |
内存管理
地址空间
- 逻辑地址:程序使用的地址(由CPU生成)。
- 物理地址:实际内存中的地址(由MMU转换)。
内存分配策略
- 连续分配:
- 固定分区:内存划分为固定大小块(内部碎片问题)。
- 动态分区:按需分配(外部碎片问题,需紧凑技术)。
- 分页(Paging):
- 内存划分为固定大小的页,逻辑地址通过页表映射到物理地址。
- 快表(TLB):缓存页表项,加速地址转换。
- 分段(Segmentation):
- 按逻辑单元(如函数、数组)划分内存,每段长度可变。
页面置换算法
| 算法 | 策略 | Belady异常 |
|---|---|---|
| FIFO | 淘汰最早进入的页 | 可能发生 |
| LRU | 淘汰最近最久未使用的页 | 不会发生 |
| OPT | 淘汰未来最长时间不使用的页(理论最优) | 不会发生 |
文件系统
文件存储结构
- 连续分配:文件占用连续磁盘块(访问快,但易碎片化)。
- 链式分配:通过指针连接非连续块(无碎片,但随机访问慢)。
- 索引分配:用索引块记录文件所有块位置(平衡速度与灵活性)。
目录结构
- 单级目录:所有文件在同一目录下(简单但易重名)。
- 树形目录:支持子目录(如Unix的
/home/user/file.txt)。 - 硬链接 vs 软链接:
- 硬链接:直接指向文件inode,删除原文件仍可访问。
- 软链接:存储目标文件路径,删除原文件后失效。
I/O系统
磁盘调度算法
| 算法 | 策略 | 特点 |
|---|---|---|
| 先来先服务(FCFS) | 按请求顺序处理 | 公平,但寻道时间长 |
| 最短寻道时间优先(SSTF) | 优先处理最近的磁道请求 | 吞吐量高,但可能饥饿远请求 |
| 扫描算法(SCAN) | 磁头单向移动到底再返回(电梯算法) | 平衡公平性与效率 |
缓冲技术
- 目的:缓解CPU与I/O设备速度差异。
- 类型:
- 单缓冲:一个缓冲区交替读写。
- 双缓冲:生产者-消费者模型,避免等待。

浙公网安备 33010602011771号