1.1 计算机基础与程序结构
GESP C++ 一级:计算机基础与程序结构
计算机硬件基础、操作系统、计算机历史、程序基本框架、注释规范、IDE 使用、编译与调试
第一部分:计算机基础
1. 计算机的基本构成
计算机系统由硬件和软件两大部分组成。硬件是看得见摸得着的物理设备,软件是运行在硬件上的程序和数据。
1.1 硬件五大部件
计算机硬件由五大部分组成:运算器、控制器、存储器、输入设备、输出设备。
| 部件 | 功能 | 典型设备/说明 |
|---|---|---|
| 运算器 | 完成算术运算和逻辑运算 | 算术逻辑单元(ALU) |
| 控制器 | 控制程序执行流程,指挥各部件协调工作 | 控制单元(CU) |
| 存储器 | 存储程序和数据 | 内存、硬盘 |
| 输入设备 | 向计算机输入数据和指令 | 键盘、鼠标、扫描仪、麦克风、触摸屏、摄像头 |
| 输出设备 | 显示或输出计算机处理后的数据 | 显示器、打印机、扬声器、投影仪 |
考试提示:CPU(中央处理单元)= 运算器 + 控制器。CPU 是计算机的“大脑”,负责执行指令、控制各部件工作、完成算术和逻辑运算。
1.2 存储器分类
| 类型 | 特点 | 用途 |
|---|---|---|
| RAM(随机存储器) | 易失性,断电后数据丢失 | 存储正在运行的程序和当前使用的数据 |
| ROM(只读存储器) | 非易失性,断电后数据保留 | 存储固化程序(如 BIOS) |
| Cache(高速缓存) | 速度极快,容量小 | 存储 CPU 频繁访问的数据,提高效率 |
| 硬盘(HDD/SSD) | 非易失性,容量大 | 长期存储数据 |
1.3 存储单位换算
这是高频考点,必须记住:
1 B(字节)= 8 bit(位)
1 KB = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
1.4 输入/输出设备辨析
- 输入设备:键盘、鼠标、扫描仪、麦克风、触摸屏、摄像头、手写板、游戏手柄、条码扫描枪、湿度传感器(采集数据送入系统)。
- 输出设备:显示器、打印机、投影仪、扬声器/耳机、绘图仪。
- 复合型 I/O:触摸屏(输入+显示)、网卡/Wi-Fi 模块、U 盘/移动硬盘。
真题示例:湿度传感器采集数据送入系统,属于(输入设备)。
2. 操作系统
操作系统(Operating System,简称 OS)是计算机系统的核心软件和基础软件,负责管理计算机硬件和软件资源,提供用户界面,调度程序执行。
2.1 常见操作系统
| 操作系统 | 特点 |
|---|---|
| Windows | 图形界面友好,使用广泛 |
| Linux | 开源,默认使用命令行终端,部分发行版提供图形界面 |
| macOS | 苹果电脑专用 |
2.2 操作系统核心功能
进程管理、内存管理、文件管理、I/O 管理、用户界面。
考试提示:Windows 是操作系统,而 Word、Excel 是应用程序,注意区分。
常见操作系统:Windows、macOS、Linux、Android、iOS、鸿蒙。
3. 计算机历史
3.1 关键时间节点
| 时间 | 事件 | 要点 |
|---|---|---|
| 1946 年 | ENIAC 诞生于美国 | 第一台通用电子计算机,核心部件为电子管 |
| 1958 年 | 中国第一台通用数字电子计算机(103 机) | 比 ENIAC 晚十多年 |
| 现代 | 冯·诺依曼体系结构 | 核心思想:程序存储与程序控制 |
3.2 冯·诺依曼体系结构
现代计算机硬件系统设计的基石。核心特性为“程序存储与程序控制”:程序和数据都以二进制形式存储在存储器中,计算机按照存储的程序顺序执行指令。
记忆口诀:程序存储,顺序执行。
第二部分:程序结构与编程规范
4. 程序的基本概念
4.1 什么是程序
程序是计算机执行的指令集合。C++ 是编译型语言,执行流程为:编写 → 编译 → 链接 → 运行。
编译与解释的区别:
- 编译:将源代码一次性翻译成机器码,生成可执行文件(C++ 属于编译型)。
- 解释:逐行翻译并执行,不生成可执行文件(Python 属于解释型)。
4.2 标识符命名规则
- 只能由字母、数字、下划线组成。
- 不能以数字开头。
- 不能是关键字(如
int、if、for、return、void、while等)。 - 区分大小写:
a和A不同。 - 同一作用域内不能同名。
- 建议见名知义:
sum、score、maxn。
4.3 关键字
C++ 一级需要认识的关键字包括:
int char float double bool
if else for while do switch case break continue default
return void const true false
注意:
Default和default不一样,因为 C++ 区分大小写。
5. 程序的基本框架
5.1 必背骨架
#include <bits/stdc++.h>
using namespace std;
int main() {
// 程序代码写在这里
return 0;
}
骨架简介
include <bits/stdc++.h>:万能头包含竞赛常用功能,使用方便。using namespace std;:使用标准命名空间,之后可直接写cin、cout。int main():主函数,程序唯一入口,从这里开始执行。
5.2 常见错误
// 错误1:漏写分号
cout << "Hello" // 缺少 ;
// 错误2:main 拼写错误
int mian() { } // 应为 main
// 错误3:漏写头文件
int main() { cout << "Hi"; } // 缺少 #include <iostream>
6. 程序的注释
注释用于解释代码,不参与运行,编译器会忽略注释内容。
6.1 两种注释方式
// 这是单行注释
/*
这是多行注释
可以写多行
*/
6.2 注释的用途
- 说明代码的功能和思路。
- 暂时屏蔽某些代码(调试时常用)。
- 标注作者、日期等信息。
6.3 易错点
- 多行注释
/* */不能嵌套。 - 注释可以混用中英文。
- 注释不会影响程序运行结果。
7. 集成开发环境(IDE)的使用
一级考纲要求熟悉集成开发环境的基本操作,例如 Dev C++。
7.1 基本操作流程
| 操作 | 说明 |
|---|---|
| 创建文件 | 新建源代码文件(.cpp) |
| 编辑文件 | 在编辑区编写代码,支持查找替换、多步撤销、缩进调整 |
| 保存文件 | 将代码保存到磁盘(Ctrl+S) |
| 编译 | 将源代码翻译为机器码,检查语法错误 |
| 运行 | 执行程序,查看输出结果 |
| 调试 | 排查和修复程序中的错误 |
7.2 编辑区常用功能
- 查找/替换:快速定位或批量修改代码。
- 多步撤销:撤销之前的编辑操作。
- 缩进调整:自动或手动调整代码缩进,提高可读性。
考试提示:IDE 编辑区的注释可以混用中英文,这一点常出现在选择题中。
8. 编译与调试
8.1 编译过程
源代码(.cpp) → 编译 → 目标文件(.o/.obj) → 链接 → 可执行文件(.exe)
- 编译:检查语法错误,将源代码翻译为机器码。
- 链接:将目标文件与库文件连接,生成可执行文件。
8.2 常见编译错误
| 错误类型 | 示例 | 原因 |
|---|---|---|
| 语法错误 | 漏写分号 | 语句末尾缺少 ; |
| 拼写错误 | mian 写成 main |
函数名拼写错误 |
| 头文件缺失 | 使用 cout 但没 #include <iostream> |
未引入所需库 |
| 变量未声明 | 直接使用 a 但没定义 |
变量未定义 |
8.3 调试方法
- 断点:在代码某一行设置断点,程序运行到该行暂停,查看变量值。
- 单步执行:逐行执行代码,观察每步的变化。
- 输出中间结果:在关键位置插入
cout语句,打印变量值辅助排查。
一级考试中调试部分以概念理解为主,不需要实际使用断点操作,但需要知道调试的作用和常见方法。
9. 结构化程序设计三大结构
结构化程序设计的三种基本结构是:顺序结构、分支结构、循环结构。
| 结构 | 特点 | 一级要求 |
|---|---|---|
| 顺序结构 | 代码从上到下依次执行,无判断、无跳转 | 重点掌握 |
| 分支结构 | 根据条件判断走哪条路(if / if-else) |
|
| 循环结构 | 重复执行某段代码(for / while / do-while) |
10. 顺序结构
顺序结构是最基础的程序结构:程序从上到下,一条一条执行。
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
int sum = a + b;
cout << sum << endl;
return 0;
}
执行顺序:输入 → 计算 → 输出,三步依次执行,没有跳过或重复。
考点速查表
| 模块 | 必记内容 | 常见考法 |
|---|---|---|
| 硬件五大部件 | 运算器、控制器、存储器、输入设备、输出设备 | 选择题辨析 |
| CPU | = 运算器 + 控制器 | 选择题 |
| 存储器分类 | RAM(易失)、ROM(非易失)、Cache(高速) | |
| 存储单位 | 1KB=1024B,1MB=1024KB,1GB=1024MB | 计算题 |
| 操作系统 | Windows/Linux/macOS,管理硬件和软件资源 | 选择题 |
| 计算机历史 | ENIAC(1946,电子管)、冯·诺依曼体系结构 | |
| 程序执行流程 | 编写→编译→链接→运行 | |
| 标识符规则 | 字母/数字/下划线,不以数字开头,区分大小写 | 对错题 |
| 程序框架 | #include、using namespace std、int main()、return 0 |
补全/改错 |
| 注释 | // 单行、/* */ 多行,不参与运行,不能嵌套 |
对错题 |
| IDE 操作 | 创建/编辑/保存/编译/运行/调试 | 选择题 |
| 编译与调试 | 编译查语法,调试查逻辑;断点、单步执行 | 概念题 |
| 三大结构 | 顺序、分支、循环 |
易错点
main不要写成mian。- 语句末尾不要漏分号。
#include <iostream>不要漏写。- 注释
/* */不能嵌套。 - 标识符不能以数字开头。
- 区分编译型语言和解释型语言。
- 区分输入设备和输出设备。
- 存储单位是 1024 进制,不是 1000。
RAM断电丢失数据,ROM断电不丢失。- CPU = 运算器 + 控制器,不是存储器。