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

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

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

题目

下面的语句中,( )正确定义了一个计算浮点数 $x$ 的平方($x^2 = x \times x$)的函数,并成功调用该函数。

A.

float square(float x) {
    return x * x;
}
float area = square(2);

B.

square(float x) {
    return x * x;
}
float area = square(2);

C.

void square(float x) {
    return x * x;
}
area = square(2.0);

D.

void square(float x) {
    x * x;
    return;
}
area = square(2);
答案:A

考点

函数

解题思维

答案A。函数必须有函数名。函数可以没有参数,可以没有返回值(void类型),定义可以在调用之后(需提前声明)。

常见错误

函数必须有名称,但可以有默认参数。参数默认以值传递(传值)。函数未被调用时参数不占内存。

详细解析(节选)

【考点】函数定义|函数调用|类型匹配

【解题思维】看到"计算浮点数的平方"立刻锁定返回类型必须为 float,否则结果会被截断。再检查函数声明:C++ 函数定义必须写明返回类型,B 缺省默认为 int,A 正确。调用时,C 和 D 都声明了 void,意味着不能返回值,但后面却写 area = square(...),这是非法赋值。

【陷阱拆解】B 的陷阱是"缺省返回类型",新手常误以为不写就是 float;C 和 D 的陷阱是"void 不能 return 值",考生容易忽略 return 语句的合法性——void 函数连 return x*x 都写不下去,更别说把返回值赋给变量。

【反命题思维】把 area 改为 int,A 会因隐式转换警告;把 square 改为返回 int,C 的 return 语句就合法了。刷到此类题先问:题目要什么类型?函数声明是否匹配?

同考点真题

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