GESP 四级 · GESP 202603 C++ 四级 第 1 题

选择题 · 答案 B · 考点:函数

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

题目

执行下面程序后,输出为( )。

int f(int x = 2){
    return x * 3;
}

int main(){
    cout << f() << " " << f(4);
}
答案:B

考点

函数

解题思维

答案B。指针和数组的代码追踪:画出变量和指针的内存示意图,追踪每次赋值后值的变化。

常见错误

指针和数组追踪时画内存布局图可以大大简化理解。

详细解析(节选)

【考点】默认参数|函数调用|算术运算

🎯 GESP四级C++模块;默认参数只在省略实参时生效,考的是你是否分清"有值"和"无值"的调用差异。命题人专挑函数定义和调用混淆的边界,卡住多数人对参数传递机制的理解深度。

🧠 f()无实参,x取默认值2,2×3=6;f(4)有实参4,跳过默认,4×3=12。核心是看实参是否给出,不给出才用默认。这一类题通法:先看函数签名有无默认参数,再看调用时是否提供值,最后执行逻辑。

🪤 A错在把2当成函数返回值(忘了乘3);C错在认为第二次调用仍用默认值2;D错在顺序颠倒。最阴险的是默认参数"只在省略时生效"这一定义,背结论会掉坑。

🔄 若改成f(int x=0)则输出0 12;若改成f(int x=2, int y=3)且函数为x+y*3,f()输出6。刷到类似题先问"实参给了没",这才是反命题思维。命题人常把默认参数和函数返回值混淆,或把调用顺序打乱,本质都是考你对函数调用实参处理的理解。

同考点真题

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