🎁 当前为 免费试看 内容 · 开通VIP 解锁 GESP 通关手册全部 1–8 级知识点 + 题库 + 详细解析
🌐 主站
📖 已学 0

📌 计算机基础与第一个程序

所属等级:GESP 1级 | 难度:★★★ | 关键词:冯·诺依曼、存储单位、编译器、hello world

📝 考纲要求

  • 了解计算机的发展与冯·诺依曼体系结构的基本思想;
  • 认识硬件(CPU / 内存 / 硬盘)与软件的区别和各自作用;
  • 掌握存储单位 bit / Byte 及 1KB = 1024B 的换算;
  • 理解编译器的作用,能写出第一个 C++ 程序并编译运行。

📖 通俗讲解

💡 一句话理解 计算机由“运算 + 存储 + 控制”组成,遵循冯·诺依曼“程序存储”思想:把指令和数据都放进内存,CPU 一条条取出来执行。

硬件是看得见摸得着的设备:CPU 负责计算和控制,像大脑;内存 断电就丢、速度快,临时放正在用的数据;硬盘 断电不丢、速度慢,长期存文件。软件是让硬件干活的程序,分系统软件(如操作系统)和应用软件。

💡 存储单位 最小单位是 bit(位),只能存 0 或 1;8 个 bit 组成 1 个 Byte(字节)。注意计算机用二进制,所以 1KB = 1024B、1MB = 1024KB,不是 1000。

编译器是把我们写的“人话”C++ 代码翻译成 CPU 能懂的“机器语言”的工具。写好的源文件(.cpp)经编译、链接,才生成可运行的程序。

🖼️ 图解

键盘/鼠标        内存(程序+数据)        屏幕
    |                |  ^                |
    v                v  |                v
+---------------------------------------------+
|              CPU 中央处理器                 |
|   控制器(取指令)      运算器(做计算)         |
+---------------------------------------------+
     冯·诺依曼:程序和数据都放进内存
C++
#include <iostream>        // 1. 包含输入输出头文件
using namespace std;        // 2. 使用标准命名空间
int main() {                // 3. 程序入口,main 是起点
    cout << "Hello, World!" << endl; // 4. 向屏幕输出一句话并换行
    return 0;               // 5. 返回 0 表示正常结束
}
输出Hello, World!

编译运行步骤(以命令行 g++ 为例):

终端
g++ hello.cpp -o hello    # 编译生成可执行文件 hello
./hello                   # 运行程序

🔵 核心必背重点

✅ 必背
  • 冯·诺依曼:程序和数据都存内存,CPU 顺序取指执行;
  • CPU 算、内存 临时快、硬盘 长期慢;
  • 1 Byte = 8 bit,1KB = 1024B(不是 1000);
  • 编译器把 C++ 源文件变成可执行的机器程序;
  • 每个 C++ 程序都有 int main() { ... } 作为入口。
🔑
记忆口诀:“冯氏存程序,CPU 当大脑;内存快易丢,硬盘稳又慢;字节八个位,千二不是千;编译翻译官,main 是起跑线。”

🔴 考试拉分难点

⚠️ 难点
  • 单位换算:1024 进制是考试常考点,常把 KB/MB/GB 当作 1000 进制而算错。
  • CPU 与内存角色混淆:内存不是“永久仓库”,硬盘才是;CPU 不直接长期存数据。
  • 源文件与可执行文件:写的是 .cpp 文本,必须经过编译才变成能双击运行的程序。

🟡 高频易错陷阱

🚫 扣分坑点
  • 把 1KB 当成 1000B,正确是 1024B;
  • 写程序漏掉 int main() 或结尾的 return 0;;
  • 误以为“编译”就是“运行”,其实编译通过也要再运行才能看到结果;
  • 用中文引号、全角分号,编译器一堆报错。

🧪 例题演练

例题 1(基础题):单位换算

题目:1 MB 等于多少 Byte?请写出换算过程。

解答
1 KB = 1024 B
1 MB = 1024 KB = 1024 × 1024 B = 1048576 B
所以 1 MB = 1048576 Byte
答案1048576 Byte

例题 2(模拟真题):第一个程序的输出

题目:下面程序编译运行后会输出什么?

C++
#include <iostream>
using namespace std;
int main() {
    cout << "GESP" << " " << "1" << endl;
    return 0;
}
输出GESP 1
🚫 错误示范 cout << GESP; —— 把字符串 GESP 漏写双引号,编译器会把它当成变量名,因未定义而报错。字符串必须用双引号 "GESP" 包住。

🛡️ 避坑总结

  1. 冯·诺依曼思想:程序和数据存内存,CPU 顺序执行;
  2. CPU 计算、内存临时、硬盘长期,三者角色分清;
  3. 存储用 1024 进制:1KB=1024B,1MB=1024KB;
  4. 编译器把 .cpp 翻译成可执行程序,编译 ≠ 运行;
  5. 每个程序必须有 int main() 和 return 0;,字符串加双引号。

💡 提示:按 ← → 方向键可在上一 / 下一知识点间快速翻页

GESP 1级 · 学习进度 0/0

📑 本页目录