GESP 一级 · GESP 202306 C++ 一级 第 23 题

判断题 · 答案 B

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

题目

如果 a 和 b 为 int 类型的变量,则表达式 a = b 可以判断 a 和 b 是否相等。

答案:B

解题思维

这题考的是赋值运算符和比较运算符的区别。拿到题先想:C++里'='是干嘛的?它只管赋值,不管比较;要比较相等必须用'=='。

常见错误

很多初学者看到'='就下意识觉得是'等于',这是把数学符号直接套用到编程里的惯性思维。在C++里,'a = b'这个表达式的含义非常明确:把b的值赋给a。它执行完后,整个表达式的值就是b,而不是一个表示'是否相等'的布尔结果。所以用它做判断是绝对行不通的,编译器也不会把它当成关系运算。

详细解析(节选)

考点定位

GESP一级基础语法,命题人专盯初学者把数学直觉当编程逻辑的惯性思维,专卡'赋值'与'比较'的混淆。

概念澄清

在C++里,'='是赋值运算符,作用是"把右边的值赋给左边的变量"。执行完' a = b '后,a的值变成了b的值,整个表达式的返回值就是b。而判断两个数是否相等,必须用比较运算符'==',它的作用是"返回一个布尔值(true或false)",告诉程序这两个数是否一样。

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