GESP 二级 · GESP 202303 C++ 二级 第 18 题

判断题 · 答案 A · 考点:函数

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

题目

在 C++语言中,一个程序不能有多个 main 函数。

答案:A

考点

函数

解题思维

这题考 C++ 程序入口规则。别被‘多个源文件’带偏,要盯着‘可执行文件’这个最终产物——链接时只能有一个入口点,所以选 A。

常见错误

容易把‘程序’当成‘源文件’,觉得几个.cpp 文件就是几个程序,自然能写多个 main。其实 C++ 编译分翻译单元和可执行文件,链接阶段会合并所有单元,入口点必须唯一,否则编译报错。

详细解析(节选)

【考点】C++ 程序入口|main 函数定义规则|编译链接

考纲定位:GESP 二级 C++ 模块属于‘程序设计基础’中的‘程序结构’考点,通常出现在二级试卷的选择题第 1-3 题。命题人放这道题就是为了筛掉那些只背‘main 是入口’但不懂‘翻译单元 vs 可执行文件’区别的选手——他们容易把‘一个程序’误当成‘一个源文件’。

概念厘清:在 C++ 里,‘程序’指最终生成的可执行文件(.exe 或 .out),而源代码通常拆成多个翻译单元(.cpp 文件)。每个翻译单元独立编译成目标文件,最后由链接器把它们合并成一个可执行文件。

解题思维:看到‘一个程序不能有多个 main 函数’,先想:C++ 标准里 main 是程序入口,但入口只存在于可执行文件层面。关键观察:C++ 允许在多个翻译单元里写 main,但链接时只能把其中一个保留为入口,其他会被忽略或报错。推理依据:ISO C++ 标准规定每个可执行文件必须且只能有一个 main 作为入口点。通法:凡涉及‘程序/源文件/翻译单元’的概念,都要区分‘源码组织’和‘可执行产物’,这是 C++ 特有的编译模型。

陷阱拆解:错误选项 B 的设计思路:利用‘程序=源文件’的朴素直觉,让学生以为每个.cpp 文件都是独立程序,从而认为可以多个 main。最阴险的细节:题干中的‘程序’一词在 C++ 语境下其实指‘可执行文件’,但很多初学者会忽略‘翻译单元’这个中间层。如果你只背结论‘main 只能有一个’,而不理解‘入口点’和‘链接’的关系,就会掉进这个陷阱。

反命题思维:把‘程序’改成‘翻译单元’,答案就变成‘可以有多个 main'。再换考法:问‘一个可执行文件允许几个 main?’答案还是 1。刷到类似题时,先问自己‘命题人想考我什么’,是考概念区分还是考标准细节。

考频与趋势:‘基础语法’类题目在题库中占比极高,2023 年高达 287 题,2024 年 413 题,2025 年 401 题,近年持续高频。‘函数定义与调用’相关题目中,GESP 二级仅考了 2 题,属于低频但关键的考点。

预测:鉴于‘函数定义’在二级中近年考频较低(2023-2025 年二级仅 2 题),但基础语法类题目整体高频,预计未来 GESP 二级仍可能以‘程序结构’‘编译模型’等概念区分题为主,单纯考‘main 只能有一个’这类基础规则的概率会下降,更可能出现结合多文件编译、链接错误等场景的变式题。暂无足够依据预测具体年份考题形式。

同考点真题

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