GESP C++ 2 级 · 知识点

程序设计语言的特点

GESP C++ 二级要求区分机器语言、汇编语言与高级语言,理解编译与解释两种执行方式的差别,并能说明 C++ 属于编译型语言。这一节的概念题常与「源代码如何变成可执行程序」结合考查。

对应知识域:程序设计语言的特点相关真题 4 套

本页为本站原创整理,例题与解析均由本站编写,不取自任何题库原题;考试范围以 CCF 官方公布为准,本平台不是 GESP 官方平台。

考纲要求

  • 知道程序设计语言分为机器语言、汇编语言和高级语言三类,机器语言由二进制指令组成,高级语言更接近人类的表达习惯。
  • 理解编译与解释的区别:编译先把整个程序翻译成机器指令再执行,解释则逐条翻译并立即执行。
  • 能说明 C++ 是编译型语言,源代码需要经过编译器生成可执行文件后才能运行。
  • 知道高级语言具有可读性好、可移植性强的特点,同一段源代码可以在不同平台上重新编译运行。

典型题型

  • 给出若干描述,让考生判断属于编译型语言还是解释型语言。
  • 比较机器语言、汇编语言、高级语言的抽象程度与执行效率。
  • 解释为什么同一种高级语言程序需要针对不同操作系统分别编译。

常见错误

  • 认为高级语言写好的程序可以直接在任何机器上运行。高级语言必须先编译成目标平台的机器指令,换平台通常要重新编译。
  • 把编译和解释当成同一件事。编译是整体翻译并生成独立文件,解释是边翻译边执行,通常离不开解释器。
  • 以为汇编语言就是机器语言。汇编用助记符表示指令,仍然需要汇编器翻译成机器码。
  • 认为越接近机器硬件的语言越容易写。机器语言和汇编语言效率高但可读性差、编写困难,高级语言更利于表达算法。

深入理解

三代语言,越往上越像人话

  • 机器语言:由 0 和 1 组成的指令,CPU 能直接识别。不同型号的 CPU 指令集不同,同一段代码换个机器就跑不了。
  • 汇编语言:用助记符代替二进制,例如 ADD、MOV,一条汇编语句大致对应一条机器指令。
  • 高级语言:接近自然语言和数学表达,C++、Python、Java 都属于这一类,与具体硬件无关。

层级越高,可读性和可移植性越好,但离机器越远,必须靠翻译工具才能运行。高级语言的「可移植」不是指编译好的程序能随便搬,而是指同一份源代码换个平台重新编译就能用。

编译和解释,差在「什么时候翻译」

编译方式先把整个源程序一次性翻译成机器指令,生成可执行文件,之后每次运行都不再翻译,C、C++ 是典型代表。解释方式不生成独立的可执行文件,而是逐条读出源代码、翻译一条、执行一条,Python、JavaScript 常用这种方式。

两者的取舍可以这样记:编译型执行快、每次改动都要重新编译;解释型改完就能跑、执行相对慢。因此 C++ 程序换一台电脑必须重新编译,不能直接把 .exe 拷过去就用——这是概念题最爱问的场景,也解释了一级里「源代码必须经过编译才能运行」这句话为什么成立。

这节和「计算机基础」是同一件事的两面

一级学过「源代码 → 编译 → 可执行文件」,二级在这里补上「为什么需要翻译」和「有哪些翻译方式」。答题时如果问 C++ 属于哪一类语言,答案是「高级语言 + 编译型」;问 Python 属于哪一类,答案通常是「高级语言 + 解释型」。语言层级和执行方式是两个独立的维度,不要混成一个答案。

自编例题

为什么 C++ 程序换一台电脑要重新编译

同学把写好的程序复制到另一台电脑上,直接双击 .cpp 文件却打不开。请解释原因,并说明正确的做法。

#include <iostream>
using namespace std;
int main() {
    cout << "hello" << endl;
    return 0;
}
// 保存为 hello.cpp 后,还需要编译:g++ hello.cpp -o hello

.cpp 文件是源代码文本,不是可执行文件。C++ 属于编译型语言,需要在本机用编译器把源代码翻译成该操作系统和处理器能够执行的机器指令,生成可执行文件后才能运行。换一台电脑意味着换了运行环境,应当重新编译;如果对方没有安装编译器,就需要把已经编译好的可执行文件复制过去,而不是复制源代码。

相关真题

这块内容在整条路线里的位置:GESP C++ 2 级备考路径。

READY TO START

开始练习

先做一套本级别测评,报告会指出哪些知识点需要重点补;再回到本页对照考纲要求逐条核对,把不确定的条目记下来集中练。

常见问题

机器语言、汇编语言、高级语言有什么区别?

机器语言是二进制指令,计算机可以直接执行;汇编语言用助记符表示指令,需要汇编器翻译;高级语言接近自然语言,需要编译或解释后才能运行。

C++ 是编译型还是解释型语言?

C++ 是编译型语言,源代码经编译器整体翻译成机器指令,生成可执行文件后运行。

为什么要有编译器?

处理器只能识别机器指令,编译器负责把人类易读的源代码翻译成机器能执行的指令,同时检查语法错误。

本级别其他知识点

官方依据