GESP 八级 · GESP 八级样题(C++ 组) 第 17 题

判断题 · 答案 B

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

题目

若 a,x,b 都是 double 类型,则对方程 $a \times x+b=0$ 求解的程序中可以直接用 x=-b/a 来求解。( )

答案:B

解题思维

这题考的是浮点运算里除法的定义域。拿到题先别急着套公式,脑子里过一遍a能不能为0,a为0时方程ax+b=0会怎样?这才是解题的起手式。

常见错误

学生最容易犯的错就是看到ax+b=0就条件反射地写出x=-b/a,完全忽略了a可能是0的情况。题干特意强调a,x,b都是double类型,就是想考你计算机里除以零会产生inf或nan,而不是数学上无解。很多考生选了A,就是没意识到“直接”二字意味着程序必须对所有合法的double输入都成立,一旦a=0程序就会出错或给出错误结果。

详细解析(节选)

考点与命题视角

本题考查《GESP 八级 C++ 大纲》中浮点运算规则与方程求解的数学条件。命题人专门用这道题卡住只会套公式的考生——他们背下x=-b/a却忘了数学里除以零的禁忌,这是八级对算法严谨性的高阶考察。题干强调a,x,b都是double类型,就是想考你计算机里除以零会产生inf或nan,而不是数学上无解。

解题心法

拿到题先别急着写代码或套公式,脑子里过一遍a能不能为0。a为0时方程ax+b=0会怎样?移项得ax=-b,若a=0则0*x=-b,此时要么无解(b≠0)要么无穷解(b=0)。所以只有当a≠0时才能用除法,结论很明确——不能“直接”用公式。这类题的通法是:遇到等式变形,先检查除数是否可能为零,这是编程里所有除法运算的通用前置条件。

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