💻 计算机二级基础 —— 存储·网络·编程语言·流程图

哈喽同学们!今天我们来搞定信息学初赛必考的四大计算机基础理论~这些都是选择题里的"常客",搞懂了直接拿分!虽然是理论,但我会用最有趣的比喻讲清楚,保证不枯燥!准备好了吗?开始!🚀


📚 今日知识地图

知识点 核心问题 关键词
💾 计算机存储 内存分哪几种?RAM/ROM/Cache 啥区别? 易失性、读写速度、层次结构
🌐 计算机网络 网络怎么分类?OSI 七层和 TCP/IP 四层是啥? WAN/MAN/LAN、协议、IP地址
👨‍💻 编程语言 机器/汇编/高级语言有啥区别?C++ 和 Python 啥特点? 执行效率、可读性、翻译方式
📊 流程图 流程图怎么画?三种基本结构是啥? 起止框/处理框/判断框、顺序/选择/循环

💾 第一讲:计算机存储的基本概念

💡 引入:计算机的"记忆"在哪里?

我们写的程序、打开的文件、正在玩的游戏,都存在哪里?计算机有一套"记忆系统",就像我们人的大脑有短期记忆长期记忆一样。


🎯 存储的层次结构:金字塔模型

计算机存储是一个金字塔,越往上速度越快、容量越小、价格越贵:

        ┌─────────────┐
        │   CPU 寄存器  │  ← 最快,最小,最贵
        ├─────────────┤
        │  Cache 高速缓存 │
        ├─────────────┤
        │   RAM 内存    │
        ├─────────────┤
        │  硬盘/SSD/U盘  │  ← 最慢,最大,最便宜
        └─────────────┘

💡 小提示:寄存器在 CPU 内部,速度和 CPU 一样快,但容量极小(只有几十个)。我们重点讲 RAM、ROM、Cache 这三个。


🎯 RAM(随机存取存储器)= 内存

Random Access Memory,就是我们平时说的"内存条"。

特性 说明
可读可写 既能读数据,也能写数据
随机访问 访问任意地址的速度一样快
易失性 ⚠️ 断电后数据全部消失!
速度 很快(比硬盘快得多)
用途 存放正在运行的程序和数据

🧠 比喻:RAM 就像你的课桌桌面——你正在写的作业、正在看的书都放在桌面上,随手就能拿到(速度快),但放学一收拾桌面就空了(断电丢失)。


🎯 ROM(只读存储器)

Read-Only Memory

特性 说明
只读 正常情况下只能读,不能随便写
非易失性 断电后数据不消失!
速度 较快
用途 存放计算机启动时必需的基本程序(如 BIOS)

🧠 比喻:ROM 就像印在课本上的内容——你只能读,不能随便改,但就算放十年也不会消失(断电不丢失)。计算机一开机就要用的基本指令就存在 ROM 里。

💡 拓展:现在的 ROM 也不是完全不能写了,比如 EPROM(紫外线擦除)、EEPROM(电擦除)、Flash(闪存,U盘和 SSD 用的就是它),都可以多次改写,但本质上仍属于 ROM 家族(非易失性)。


🎯 Cache(高速缓冲存储器)

Cache 读作"卡什",是介于 CPU 和内存之间的一层高速小容量存储器。

特性 说明
速度 极快(接近 CPU 速度,比 RAM 快很多)
容量 很小(几 KB 到几 MB)
原理 把 CPU 最近常用的数据从内存复制一份到 Cache
目的 解决 CPU 太快、内存太慢的"速度不匹配"问题

🧠 比喻:Cache 就像你文具盒里的笔——你最常用的几支笔放在文具盒里(Cache),随手就拿;不常用的笔放在书包里(RAM),要翻一下;而 CPU 就像你写字的手,直接从文具盒拿最快。

💡 局部性原理:Cache 能起作用是因为程序有"局部性"——刚用过的数据附近很可能马上又要用(空间局部性),刚用过的数据很可能很快再用(时间局部性)。所以把常用数据放 Cache 里,命中率很高。


🎯 三者核心对比表(必背!)

RAM ROM Cache
中文名 随机存取存储器 只读存储器 高速缓冲存储器
可读可写? ✅ 可读可写 ❌ 一般只读 ✅ 可读可写
断电丢失? ✅ 丢失(易失) ❌ 不丢失(非易失) ✅ 丢失(易失)
速度 较快 极快
容量 较大(GB级) 小(MB级) 极小(KB~MB级)
位置 主板上(内存条) 主板上 CPU 内部或附近
典型用途 运行中的程序和数据 BIOS/启动程序 CPU 常用数据缓存

🚨 易错点(选择题高频坑!)

❌ 错误说法 ✅ 正确说法
RAM 断电不丢失 RAM 是易失性的,断电数据全没
ROM 可以随便写入 ROM 正常只读,特殊方式才能写
Cache 容量很大 Cache 容量极小,只是速度快
硬盘属于 RAM 硬盘是外部存储器,不属于 RAM
内存速度比 Cache 快 Cache 比 RAM 快,Cache 更接近 CPU

💡 口诀:RAM 可读也可写,一断电呀全没了;ROM 只读不丢失,启动程序里面搁;Cache 速度快如飞,容量小小常用归;存储金字塔记心间,越快越小越费钱!


🌐 第二讲:计算机网络基础

💡 引入:计算机怎么"聊天"?

你用手机发微信、用电脑看视频,数据是怎么从一个地方传到另一个地方的?这就是计算机网络要解决的问题。

计算机网络:把多台计算机通过通信线路连接起来,实现数据传输和资源共享。


🎯 网络分类:按覆盖范围分

类型 英文名 覆盖范围 例子
局域网 LAN(Local Area Network) 小范围(一个房间/一栋楼/一个学校) 教室的电脑网、家里的 WiFi
城域网 MAN(Metropolitan Area Network) 一个城市范围 城市的有线电视网
广域网 WAN(Wide Area Network) 大范围(国家/全球) 互联网(Internet)就是最大的 WAN

💡 记忆技巧:范围从小到大 = LAN < MAN < WAN,首字母 L(Local 本地)< M(Metro 城市)< W(Wide 宽广)。


🎯 网络的层级结构:为什么要分层?

网络通信非常复杂,工程师们把它拆成多层,每层负责一件事,就像寄快递:

你写一封信 → 装信封写地址 → 邮递员取件 → 运输 → 分拣 → 投递 → 对方拆信

每一层只关心自己的事,不用管其他层怎么实现。这就是分层思想


🎯 OSI 七层模型(理论模型)

OSI(Open Systems Interconnection) 是国际标准化组织提出的理论参考模型,共七层:

层级 名称 作用(人话版) 典型协议/设备
7 应用层 给用户用的软件(浏览器、微信) HTTP、FTP、SMTP、DNS
6 表示层 数据格式转换、加密解密 SSL/TLS、JPEG、ASCII
5 会话层 建立和管理会话(连接/断开) 会话管理协议
4 传输层 端到端的数据传输(可靠/不可靠) TCP、UDP
3 网络层 路由选择、IP 地址寻址 IP、ICMP、路由器
2 数据链路层 相邻节点间的数据传输、差错检测 Ethernet、MAC、交换机
1 物理层 最底层,传输电信号/光信号 网线、光纤、集线器

🧠 记忆口诀(从上到下)应表会传网数物

(应用层、表示层、会话层、传输层、网络层、数据链路层、物理层)

谐音记:"应表会传网数物" → 想象成"应表会传,网数物",多读几遍就记住了!


🎯 TCP/IP 四层模型(实际使用的模型)

OSI 七层是理论模型,实际互联网用的是 TCP/IP 四层模型(也叫 TCP/IP 协议族):

TCP/IP 层 对应 OSI 层 作用 典型协议
应用层 应用层 + 表示层 + 会话层 直接给应用程序用 HTTP、FTP、DNS、SMTP
传输层 传输层 端到端传输 TCP、UDP
网际层(网络层) 网络层 IP 寻址和路由 IP、ICMP、ARP
网络接口层 数据链路层 + 物理层 物理传输和帧 Ethernet、Wi-Fi

💡 对比记忆:TCP/IP 四层把 OSI 的上三层(应用/表示/会话)合并成了"应用层",把下两层(数据链路/物理)合并成了"网络接口层",中间两层(传输/网络)保持不变。


🎯 重要协议速查表(选择题高频!)

协议 全称 层级 作用
HTTP 超文本传输协议 应用层 网页传输(看网页用的)
HTTPS 安全超文本传输协议 应用层 加密的 HTTP(更安全)
FTP 文件传输协议 应用层 上传下载文件
SMTP 简单邮件传输协议 应用层 发邮件
POP3/IMAP 邮局协议/互联网消息访问协议 应用层 收邮件
DNS 域名系统 应用层 把域名(如 baidu.com)翻译成 IP 地址
TCP 传输控制协议 传输层 可靠传输(三次握手、保证到达)
UDP 用户数据报协议 传输层 不可靠传输(快但不保证到达,如直播/游戏)
IP 网际协议 网络层 给每台设备分配地址、路由选择
ICMP 互联网控制报文协议 网络层 ping 命令用的就是它
ARP 地址解析协议 网络层 IP 地址 → MAC 地址

💡 TCP vs UDP 对比

  • TCP:打电话(要确认对方在听,可靠,慢一点)
  • UDP:寄明信片(不管对方收没收到,不可靠,快)

🎯 IP 地址基础

什么是 IP 地址?

IP 地址是互联网上每台设备的"门牌号",IPv4 地址由 32 位二进制组成,通常写成四个 0~255 的十进制数,用点隔开:

192.168.1.1   ← 点分十进制表示法

每个数对应 8 位二进制(一个字节),所以范围是 0~255。

IP 地址分类(传统分类)

类别 第一段范围 网络号/主机号 用途
A 类 1~126 8位网络号 + 24位主机号 大型网络(主机数超多)
B 类 128~191 16位网络号 + 16位主机号 中型网络
C 类 192~223 24位网络号 + 8位主机号 小型网络(如局域网)
D 类 224~239 组播(多播)
E 类 240~255 保留实验用

💡 特殊地址

  • 127.0.0.1 = 回环地址(本机自己,A 类里 127 段保留)
  • 192.168.x.x10.x.x.x172.16~31.x.x = 私有地址(局域网内部用,不能直接上公网)

子网掩码是啥?

子网掩码用来区分 IP 地址里哪部分是网络号、哪部分是主机号

  • 子网掩码中,1 对应网络号0 对应主机号
  • 常见默认子网掩码:
    • A 类:255.0.0.0(前 8 位是网络号)
    • B 类:255.255.0.0(前 16 位是网络号)
    • C 类:255.255.255.0(前 24 位是网络号)

🧠 比喻:IP 地址就像"江苏省徐州市XX路XX号",子网掩码告诉你"江苏省徐州市"是网络号(地区),"XX路XX号"是主机号(具体门牌号)。同一个网络号下的设备在同一个局域网里。

💡 CIDR 表示法:现在更常用 192.168.1.0/24 这种写法,/24 表示前 24 位是网络号(即子网掩码 255.255.255.0)。


🚨 易错点

❌ 错误说法 ✅ 正确说法
OSI 模型是实际使用的 OSI 是理论参考模型,实际用 TCP/IP 四层
TCP 和 UDP 都在网络层 TCP/UDP 在传输层
HTTP 在传输层 HTTP 在应用层
IP 地址是 16 位的 IPv4 是 32 位,IPv6 是 128 位
子网掩码 255.255.255.0 是 A 类默认 那是 C 类默认掩码,A 类是 255.0.0.0
192.168.x.x 可以直接上公网 这是私有地址,只能局域网内部用
LAN 比 WAN 范围大 LAN < MAN < WAN,WAN 最大

💡 口诀:网络分三类,LAN 小来 WAN 大,MAN 在中间趴;OSI 七层记心间,应表会传网数物;TCP/IP 四层用,应用传输网际接口通;IP 地址三二位,点分十进制来配;子网掩码分网络,1 是网络 0 是机!


👨‍💻 第三讲:程序设计语言的分类

💡 引入:计算机只懂 0 和 1,我们怎么跟它说话?

计算机的 CPU 只认识机器指令(一堆 0 和 1),但人不可能直接写 0 和 1。于是人们发明了各种编程语言,让人写起来方便,再翻译成计算机能懂的机器指令。

编程语言从低级到高级,分三大类:


🎯 机器语言(最低级,计算机直接懂)

机器语言就是二进制代码,由 0 和 1 组成,是 CPU 能直接执行的唯一语言。

示例(某条机器指令):10110000 01100001
特性 说明
执行效率 ⭐⭐⭐⭐⭐ 最高(CPU 直接执行,不用翻译)
可读性 ⭐ 极差(全是 0 和 1,人根本看不懂)
可移植性 ⭐ 极差(不同 CPU 的机器指令不一样)
编写难度 极大

🧠 比喻:机器语言就像摩尔斯电码,只有嘀和嗒(0 和 1),计算机一听就懂,但人学起来想死。


🎯 汇编语言(低级,用助记符代替二进制)

汇编语言用简短的英文缩写(助记符)代替机器指令,比机器语言好读一点,但仍然很底层。

示例(x86 汇编):
MOV AX, 5    ; 把 5 放进 AX 寄存器
ADD AX, 3    ; AX = AX + 3
特性 说明
执行效率 ⭐⭐⭐⭐⭐ 很高(和机器语言一一对应)
可读性 ⭐⭐ 较差(要记大量助记符)
可移植性 ⭐ 差(和具体 CPU 架构绑定)
翻译方式 需要汇编器翻译成机器语言

🧠 比喻:汇编语言就像给摩尔斯电码每个组合起了个缩写名字,比直接记嘀嗒好一点,但还是很麻烦。

💡 小提示:汇编语言和机器语言是一一对应的,一条汇编指令对应一条机器指令。所以汇编也叫"符号化的机器语言"。


🎯 高级语言(最接近人类语言,我们学的 C++/Python 都是)

高级语言用接近自然语言(英语)和数学公式的方式写程序,人读起来很舒服。

// C++ 示例
#include <iostream>
using namespace std;
int main() {
    int a = 5, b = 3;
    cout << a + b << endl;
    return 0;
}
# Python 示例
a = 5
b = 3
print(a + b)
特性 说明
执行效率 ⭐⭐⭐ 较高(需要翻译,比机器/汇编稍慢)
可读性 ⭐⭐⭐⭐⭐ 很好(接近英语)
可移植性 ⭐⭐⭐⭐⭐ 很好(同一份代码可在不同机器上运行)
翻译方式 编译(如 C++)或解释(如 Python)

🎯 编译型 vs 解释型(高级语言的两种翻译方式)

编译型 解释型
翻译方式 整个程序先翻译成机器码(生成可执行文件),再运行 边运行边逐行翻译
典型语言 C、C++、Pascal Python、JavaScript、PHP
运行速度 快(翻译一次,多次运行) 较慢(每次运行都要翻译)
跨平台 需要为不同平台分别编译 只要有解释器就能跑
比喻 请翻译把整本书译完再看 请同声传译边说边译

💡 C++ 是编译型语言:我们写的 .cpp 文件要先用编译器(如 g++)编译成 .exe 可执行文件,然后才能运行。

Python 是解释型语言.py 文件不需要编译,直接用 Python 解释器逐行执行。


🎯 常见高级语言速览

语言 特点 典型用途
C++ 编译型,效率极高,功能强大,语法较复杂 算法竞赛、游戏引擎、系统软件
C C++ 的前身,更底层更简洁 操作系统、嵌入式开发
Python 解释型,语法极简,代码量少,库超多 人工智能、数据分析、脚本自动化
Java 编译+解释(先编译成字节码,再在 JVM 上解释),跨平台强 企业级应用、安卓开发
Pascal 语法严谨,适合教学 早期信息学竞赛用(现在基本被 C++ 取代)

🚨 易错点

❌ 错误说法 ✅ 正确说法
机器语言需要翻译才能执行 机器语言 CPU 直接执行,不需要翻译
汇编语言和机器语言完全无关 汇编和机器指令一一对应,是符号化的机器语言
高级语言执行效率比汇编高 高级语言需要翻译,效率低于机器/汇编
Python 是编译型语言 Python 是解释型语言
C++ 是解释型语言 C++ 是编译型语言
高级语言不能直接被 CPU 执行 对!必须经过编译或解释翻译成机器码

💡 口诀:编程语言分三类,机器汇编和高级;机器全是零和一,CPU 直接就能提;汇编助记来代替,一一对应好记忆;高级语言最友好,编译解释两条道;C++ 编译效率高,Python 解释代码少!


📊 第四讲:流程图基础

💡 引入:用图把算法"画"出来

写程序之前,我们通常先想清楚步骤。怎么把步骤清晰地展示出来?用流程图!流程图用标准化的图形和箭头,把算法的每一步画出来,让人一眼看懂。


🎯 流程图的基本符号(必背!)

符号 名称 形状 作用
起止框 圆角矩形(椭圆形) 表示程序的开始结束
输入输出框 平行四边形 表示输入数据或输出结果
处理框 矩形(直角) 表示处理/计算/赋值操作
判断框 菱形 表示条件判断,有一个入口、两个出口(是/否)
流程线 箭头 表示流程的执行顺序
连接点 小圆圈 流程图跨页时用来连接(同标号连接)

💡 记忆技巧

  • 椭圆 = 起止(开始/结束,圆圆满满)
  • 平行四边形 = 输入输出(斜着的,像打字机进纸)
  • 矩形 = 处理(方方正正干活)
  • 菱形 = 判断(有尖角,像在做选择)

🎯 三种基本结构(结构化程序设计的基石!)

任何复杂的程序,都可以由三种基本结构组合而成:顺序结构、选择结构(分支)、循环结构

1️⃣ 顺序结构:一步一步往下走

最简单的结构,按顺序从上到下依次执行,没有分支、没有回头。

   ┌─────┐
   │ 开始 │
   └──┬──┘
      ▼
   ┌─────┐
   │ 步骤A│
   └──┬──┘
      ▼
   ┌─────┐
   │ 步骤B│
   └──┬──┘
      ▼
   ┌─────┐
   │ 结束 │
   └─────┘

🧠 例子:先输入 a 和 b,再计算 c = a + b,最后输出 c。这就是顺序结构。


2️⃣ 选择结构(分支结构):根据条件走不同路

遇到判断框,根据条件是否成立,选择不同的执行路径。

单分支(if)

        ┌─────┐
        │ 条件?│
        └──┬──┘
       是/   \否
      ▼       ▼
   ┌─────┐  (直接往下)
   │ 操作 │
   └──┬──┘
      ▼
   (汇合继续)

🧠 例子:如果 a > b,就输出 a。否则什么也不做,继续往下。

双分支(if-else)

        ┌─────┐
        │ 条件?│
        └──┬──┘
       是/   \否
      ▼       ▼
   ┌─────┐ ┌─────┐
   │操作A│ │操作B│
   └──┬──┘ └──┬──┘
      └───┬───┘
          ▼
       (汇合继续)

🧠 例子:如果 a > b,输出 a;否则输出 b。(求两个数的最大值)


3️⃣ 循环结构:满足条件就反复执行

循环结构让一段代码反复执行,直到条件不满足为止。有两种常见形式:

当型循环(while):先判断,再执行

   ┌──────────┐
   │  条件成立? │◄──┐
   └────┬─────┘   │
       是/ \否     │
      ▼     ▼      │
   ┌─────┐ 结束    │
   │循环体│        │
   └──┬──┘        │
      └────────────┘

💡 特点:先判断条件,条件成立才执行循环体;如果一开始条件就不成立,循环体一次都不执行。对应 C++ 的 whilefor

直到型循环(do-while):先执行,再判断

   ┌─────┐
   │循环体│◄──┐
   └──┬──┘   │
      ▼       │
   ┌──────┐   │
   │条件成立?│  │
   └──┬───┘   │
     是/ \否   │
    ─┘    ▼    │
         结束   │

💡 特点:先执行一次循环体,再判断条件;条件成立继续循环,不成立就结束。循环体至少执行一次。对应 C++ 的 do-while


🎯 完整示例:用流程图描述"求三个数的最大值"

        ┌─────┐
        │ 开始 │
        └──┬──┘
           ▼
     ┌───────────┐
     │输入 a, b, c│  ← 平行四边形(输入输出框)
     └─────┬─────┘
           ▼
        ┌───────┐
        │ a > b ?│  ← 菱形(判断框)
        └───┬───┘
         是/  \否
        ▼      ▼
    ┌─────┐ ┌─────┐
    │max=a│ │max=b│  ← 矩形(处理框)
    └──┬──┘ └──┬──┘
       └───┬───┘
           ▼
        ┌───────┐
        │ c > max?│
        └───┬───┘
         是/  \否
        ▼      ▼
    ┌─────┐ (继续)
    │max=c│
    └──┬──┘
       └───┬───┘
           ▼
     ┌───────────┐
     │ 输出 max   │  ← 平行四边形(输出框)
     └─────┬─────┘
           ▼
        ┌─────┐
        │ 结束 │  ← 椭圆(起止框)
        └─────┘

🚨 易错点

❌ 错误做法 ✅ 正确做法
用矩形表示开始/结束 起止用椭圆/圆角矩形
用矩形表示条件判断 判断用菱形,且有两个出口(是/否)
用椭圆表示输入输出 输入输出用平行四边形
判断框只有一个出口 判断框必须有两个出口(是和否)
循环结构没有回到判断的箭头 循环必须有回头的箭头,形成闭环
当型和直到型搞混 当型先判断后执行(while),直到型先执行后判断(do-while)
流程线没有箭头 流程线必须带箭头,表示执行方向

💡 口诀:流程图呀六符号,椭圆起止不能少;平行四边形输入出,矩形处理计算搞;菱形判断两出口,箭头方向要明了;三种基本结构全,顺序选择加循环;当型先判再执行,直到先执行后判!


📝 综合练习(选择题自测)

光说不练假把式,来几道选择题自测一下!💪

练习 1 · 存储 💾

下列关于 RAM 和 ROM 的说法,正确的是?

  • A. RAM 断电后数据不丢失
  • B. ROM 可以随意写入数据
  • C. RAM 是易失性存储器,ROM 是非易失性存储器
  • D. ROM 的速度比 Cache 快

👉 点击查看答案
答案:C。RAM 断电丢失(易失),ROM 断电不丢(非易失)。A 说反了,B ROM 正常只读,D Cache 比 ROM 快得多。

练习 2 · 网络 🌐

HTTP 协议工作在 OSI 七层模型的哪一层?

  • A. 传输层
  • B. 网络层
  • C. 应用层
  • D. 数据链路层

👉 点击查看答案
答案:C。HTTP 是应用层协议。传输层是 TCP/UDP,网络层是 IP,数据链路层是 Ethernet/MAC。

练习 3 · 编程语言 👨‍💻

下列关于编程语言的说法,错误的是?

  • A. 机器语言可以被 CPU 直接执行
  • B. 汇编语言需要汇编器翻译成机器语言
  • C. Python 是编译型语言
  • D. C++ 是编译型语言

👉 点击查看答案
答案:C。Python 是解释型语言,不是编译型。A、B、D 都正确。

练习 4 · 流程图 📊

流程图中,表示条件判断的图形是?

  • A. 椭圆
  • B. 矩形
  • C. 菱形
  • D. 平行四边形

👉 点击查看答案
答案:C。菱形是判断框。椭圆是起止,矩形是处理,平行四边形是输入输出。

练习 5 · IP 地址 🌐

IP 地址 192.168.1.100 属于哪一类?默认子网掩码是?

  • A. A 类,255.0.0.0
  • B. B 类,255.255.0.0
  • C. C 类,255.255.255.0
  • D. D 类,255.255.255.255

👉 点击查看答案
答案:C。第一段 192 在 192~223 范围内,属于 C 类地址,默认子网掩码 255.255.255.0。


🎉 课堂小结

知识点 一句话记住
💾 存储 RAM 易失可读可写,ROM 非易失只读,Cache 高速小容量常用数据
🌐 网络 LAN<MAN<WAN;OSI 七层"应表会传网数物";TCP/IP 四层实际用;IPv4 是 32 位
👨‍💻 编程语言 机器(0/1直接执行)→ 汇编(助记符)→ 高级(C++编译/Python解释)
📊 流程图 椭圆起止、平行四边形输入输出、矩形处理、菱形判断;顺序/选择/循环三结构

🌟 理论知识不难记,理解比喻加表格,口诀辅助多复习,初赛选择全拿下!

四大基础打牢固,后面学算法更轻松~同学们加油!👋


C++ 信息学竞赛训练 · 计算机基础理论专题 · 存储 / 网络 / 编程语言 / 流程图

posted @ 2026-08-26 15:37  飞花阁  阅读(18)  评论(0)    收藏  举报
//雪花飘落效果