第1章 计算机基础知识
本章介绍学习 C++ 编程前需要了解的计算机关底知识:计算机的发展、冯·诺依曼体系结构、硬件与软件组成、分类与应用,以及程序是如何被"翻译"成机器能懂的语言的。这些概念是 GESP 一级选择题的高频考点。
1.1 计算机的发展
1.1.1 世界上第一台电子计算机
1946 年 2 月,世界上第一台电子数字计算机 ENIAC(Electronic Numerical Integrator And Calculator,电子数值积分计算机)诞生于美国宾夕法尼亚大学。
| 项目 | 参数 |
|---|---|
| 运算速度 | 约 5000 次加法/秒 |
| 重量 | 约 30 吨 |
| 电子管 | 约 18000 只 |
| 功耗 | 约 150 kW |
ENIAC 采用十进制而非二进制,且程序靠手动接线设置,使用很不方便。真正奠定现代计算机结构的,是冯·诺依曼提出的"存储程序"思想。
1.1.2 计算机发展的四代
人们按"主要元器件"把计算机发展史划分为四代:
| 代 | 年份(约) | 主要元器件 | 特点 |
|---|---|---|---|
| 第一代 | 1946—1958 | 电子管 | 体积大、功耗高、易发热 |
| 第二代 | 1959—1964 | 晶体管 | 体积缩小、可靠性提升 |
| 第三代 | 1965—1970 | 中小规模集成电路 | 成本下降、性能提高 |
| 第四代 | 1971—至今 | 大规模/超大规模集成电路 | 微型化、网络化、智能化 |
1.2 冯·诺依曼体系结构
1944 年前后,美籍匈牙利数学家 冯·诺依曼 提出"存储程序"计算机的设计思想,至今绝大多数计算机仍采用这一结构。
冯·诺依曼结构的三大要点:
- 硬件五大部件:运算器、控制器、存储器、输入设备、输出设备。
- 存储程序:把程序和数据一起存入存储器,计算机自动按程序指令顺序执行。
- 采用二进制:计算机内部一切信息都用 0 和 1 表示。
五大部件中,运算器 + 控制器 合称 CPU(中央处理器);存储器分为内存(主存)和外存(辅存)。输入/输出设备统称 I/O 设备。
1.3 计算机硬件系统
1.3.1 运算器与控制器(CPU)
- 运算器(ALU):负责算术运算(加减乘除)和逻辑运算(与或非、比较)。
- 控制器(CU):从存储器取指令、译码,并指挥各部件协同工作。
- CPU 的性能常用 主频(GHz) 衡量,主频越高,单位时间执行的指令越多。
1.3.2 存储器
| 类型 | 别名 | 特点 | 举例 |
|---|---|---|---|
| 内存(主存) | RAM | 速度快、断电数据丢失、容量较小 | 内存条 |
| 外存(辅存) | — | 速度慢、断电不丢、容量大 | 硬盘、U 盘、光盘 |
程序运行时,代码和数据必须先加载到内存才能被 CPU 执行;外存中的程序不能直接运行。因此写程序时定义的"变量",本质上是内存中的一小块空间。
1.3.3 输入与输出设备
- 输入设备:键盘、鼠标、扫描仪、摄像头……
- 输出设备:显示器、打印机、音箱……
1.4 计算机软件系统
软件分为两大类:
| 类别 | 作用 | 例子 |
|---|---|---|
| 系统软件 | 管理硬件、为应用软件提供运行环境 | 操作系统(Windows、Linux、macOS)、编译器、驱动程序 |
| 应用软件 | 面向具体任务 | 浏览器、WPS、游戏、QQ |
操作系统(OS) 是最核心的系统软件,负责"进程管理、内存管理、文件管理、设备管理"。我们后面用的 Dev-C++ 就运行在操作系统之上。
1.5 计算机的分类
按 性能规模 由大到小:
- 超级计算机:算力极强,用于气象预报、核模拟等。代表:天河、神威·太湖之光。
- 大型机 / 小型机:用于银行、企业或科研。
- 微型计算机(PC):台式机、笔记本、平板,面向个人。
- 嵌入式计算机:嵌入到其它设备中的专用计算机,如智能家电、汽车电子、智能手表,体积小、功耗低。
按 用途 可分为:通用计算机(PC、服务器)和专用计算机(如嵌入式设备、互联网终端)。
1.6 计算机的应用领域
- 科学计算(数值计算):天气预报、卫星轨道、工程仿真。
- 数据处理:企业账务、人事管理、海量数据整理。
- 过程控制(实时控制):工业自动化生产线、智能交通。
- 人工智能:语音识别、图像识别、机器人、自动驾驶。
- 计算机辅助设计/制造(CAD/CAM):机械、建筑设计。
- 教育与娱乐:在线课程、游戏、影视特效。
1.7 程序设计语言与翻译方式
1.7.1 三级语言
| 语言层级 | 特点 | 例子 |
|---|---|---|
| 机器语言 | 二进制指令,CPU 直接执行,人难以阅读 | 10110000 01100001 |
| 汇编语言 | 用助记符代替二进制,需汇编器翻译 | MOV AL, 61H |
| 高级语言 | 接近人类自然语言,需编译/解释 | C、C++、Python |
我们学习的 C++ 是高级语言。用 C++ 写出的源程序(.cpp 文件)人能读懂,但 CPU 看不懂,必须经过"翻译"变成机器语言。
1.7.2 编译型 vs 解释型
| 方式 | 过程 | 特点 | 代表 |
|---|---|---|---|
| 编译型 | 一次性把全部源程序翻译成机器码,生成可执行文件 | 运行快,但修改后需重新编译 | C、C++ |
| 解释型 | 边读源程序边翻译边执行,不生成独立可执行文件 | 跨平台好,运行稍慢 | Python、JavaScript |
C++ 属于编译型语言:我们写 hello.cpp → 编译器(如 GCC)把它编译成 hello.exe → 再运行 exe。这正是第 2 章 Dev-C++ 中"编译"按钮背后的原理。
下面这段就是最经典的 C++ 源程序,它需要被编译后才能运行:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl; // 编译后由 CPU 执行
return 0;
}
1.8 信息如何表示:二进制
计算机只认识 0 和 1。一个 0 或 1 称为 1 个比特(bit);8 个 bit 组成 1 个字节(Byte,简写 B)。
为什么是 1024 而不是 1000?因为计算机用二进制,而 。关于二进制、八进制、十六进制以及它们之间的相互转换,将在第 8 章详细讲解。
1.9 随堂检测
1. 现代计算机所采用的"存储程序"思想是由谁提出的?( )
- A. 图灵
- B. 冯·诺依曼
- C. 比尔·盖茨
- D. 香农
查看答案
答案:B。冯·诺依曼提出存储程序思想,奠定现代计算机体系结构。
2. 下列关于计算机硬件五大部件的说法,正确的是( )。
- A. 运算器和控制器合称 CPU
- B. 内存断电后数据不丢失
- C. 显示器是输入设备
- D. 硬盘属于内存
查看答案
答案:A。运算器 + 控制器 = CPU;内存断电丢失;显示器是输出设备;硬盘是外存。
3. C++ 语言属于( )。
- A. 机器语言
- B. 汇编语言
- C. 高级语言(编译型)
- D. 高级语言(解释型)
查看答案
答案:C。C++ 是高级语言,且为编译型语言。