使用 cmath 或 math.h 中的 pow(2, 10) 计算 $2^{10}$ 时,由于参数均为整型 int,返回值类型也为整型 int。
判断正误题需注意绝对化表述("一定""必须""只能"等)往往是错误的。
判断题中注意"一定""总是""所有""唯一"等绝对化表述通常是错误的。但也要结合具体知识点判断。
【考点】GESP 七级 C++ 标准库函数|类型提升|返回值类型
命题人专门卡住“数学库函数返回值必为浮点型”这一基础认知,七级考生常误以为参数类型决定返回值类型。类型提升是 C++ 基础,但考生易忽略函数定义才是返回值来源。
题目提及 cmath 或 math.h,强调标准库函数特性。看到 pow 函数定义 double pow(double, double) 即可判断。关键观察:即使传 int 参数,实参会被隐式转换为 double,返回值类型固定为 double。通法:数学库函数(如 sin/log/sqrt)返回值必为浮点型,与参数类型无关。
错误选项诱你陷入“参数类型决定返回值类型”的误区。最阴险细节:pow 函数定义中参数虽为 double,但题目描述说“参数均为 int",实则考查的是类型提升——int 会被提升为 double 传入函数,返回值类型由函数定义决定,而非实参类型。pow 函数设计用于实数运算,返回值类型固定为 double,无论实参如何。若只背结论,就会掉进“参数类型决定返回值”这个陷阱。
命题人视角:若把条件改为“使用 sqrt 计算时返回值类型”,答案仍是 double;若问“pow(2, 10) 结果能否存 int 变量”,需先转换。ceil/floor 虽返回 double,但可安全赋给 int 变量。刷到类似题,先问自己:该函数的返回值类型由什么决定?