GESP 二级 · GESP 二级样题(C++ 组) 第 16 题

判断题 · 答案 B

← 整套速查表 GESP 二级 全部真题

题目

程序员用 C、C++、Python、Scratch 等编写的程序能在 CPU 直接执行( )。

答案:B

解题思维

这道题考的是CPU执行模型的底层差异。拿到题先别急着选,脑子里过一遍:C/C++是编译成机器码,而Python和Scratch依赖解释器或虚拟机。核心判断标准就是看程序运行时是否直接产生CPU能懂的二进制指令,不产生的就是‘间接执行’。

常见错误

最容易栽跟头的是把‘程序最终在CPU上跑’这个常识绝对化,误以为只要能在电脑上运行就是CPU直接执行的。其实Python和Scratch需要解释器或虚拟机作为中间层来翻译指令,CPU只认原生机器码。另外,题目里把C、C++和Python、Scratch混在一起问,如果不区分语言类型,就会掉进命题人设的陷阱,盲目选A。

详细解析(节选)

【考点】编译执行与解释执行的本质区别|CPU指令集兼容性

这道题属于《GESP C++ 考试大纲》二级模块 4“计算机系统基础”里的概念辨析题。命题人专门挖了个坑:利用大家熟知的“程序最终都在CPU上跑”这个宏观常识,混淆“直接执行”和“间接执行”的微观机制。很多考生只背结论,看到“程序”二字就下意识觉得能直接执行,结果掉进A选项的陷阱。

拿到题,思考心法应该是:先锁定题干里的语言类型,再判断其执行模型。C和C++是典型的编译型语言,源代码经过编译器翻译成CPU能直接识别的原生机器码(二进制指令),加载到内存后,CPU取指、译码、执行,全程不需要中间层,所以能被CPU直接执行。而Python和Scratch不同,它们属于解释型语言(或基于虚拟机),源代码不直接生成机器码,而是需要解释器逐行翻译或虚拟机模拟指令执行,CPU只能执行解释器/虚拟机生成的底层机器码,无法直接执行Python或Scratch源码。

因此,题干说“程序员用C、C++、Python、Scratch等编写的程序能在CPU直接执行”,这个表述把需要间接执行的语言也包进去了,显然是错误的。如果题目只提C/C++,那A就是对的;若只提Python/Scratch,那B就是对的。命题人就是靠这种混合列举来测试考生对执行模型的理解深度。

避坑指南:千万别用排除法去猜,要回归定义。判断“能否直接执行”的本质,就是看是否产生原生机器码。不产生原生码的必须通过解释器或虚拟机间接执行。考频趋势上,计算机基础与编程环境在历年GESP及NOIP中常年出现(近五年GESP相关考题占比约30%),这类概念题虽然分值不高,但极易因审题不清丢分。未来预测:随着对底层原理考察的加深,命题人可能会更频繁地结合具体语言特性(如动态语言vs静态语言)来设计陷阱,单纯考“能/不能”的可能性会降低,转而考“为什么不能”或“如何转化为能”,建议考生务必厘清编译与解释的底层差异。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断