### **C++ 算术与关系运算符 课后习题 - 答案** #### **一、 填空题** 1. `/` , `%` 2. `bool` 3. 先变,再用 4. 先用,再变 5. `score = score - 10;` 6. 乘法 (`*`) , 加法 (`+`) , 关系 (`>`) 7. `==` , `=` #### **二、 单项选择题** 1. **C**. 整数除法舍弃小数,`13 / 5` 的商是 `2`。 2. **A**. `13` 除以 `5` 商 `2` 余 `3`。 3. **B**. 前置自增,先将 `x` 变为 `11`,再输出新值 `11`。 4. **A**. 后置自增,先输出 `x` 的原值 `10`,然后 `x` 的值才变为 `11`。 5. **C**. 前置自减,`x` 先从 `5` 变为 `4`,然后将新值 `4` 赋给 `y`。 6. **C**. 后置自减,先将 `x` 的原值 `5` 赋给 `y`,然后 `x` 自身的值从 `5` 变为 `4`。 7. **C**. 先算术后关系。`5 + 2` 得 `7`,`8 - 4` 得 `4`。表达式变为 `7 > 4`,结果为 `true`,输出 `1`。 8. **B**. `score /= 10;` 等价于 `score = score / 10;`,即 `100 / 10`,结果是 `10`。 9. **C**. 不等于的关系运算符是 `!=`。 10. **B**. `a++` 是后置自增,先用 `a` 的原值 `1` 参与运算,`1 + 2` 结果为 `3`。运算结束后,`a` 的值变为 `2`。 #### **三、 判断题** 1. √ (两个整数相除,结果只取整数部分。) 2. √ (当不把它们作为表达式的一部分,而是独立作为一条语句时,两者都只是让变量自增1,效果相同。) 3. × (根据讲义内容,`%` 主要用于整数运算。) 4. × ( `==` 是判断相等,返回 `bool` 值; `=` 是赋值,改变变量的值。) 5. × (这是后置 `++`,遵循“先用后变”原则,应是先把 `x` 的旧值赋给 `y`,然后 `x` 再加1。) 6. √ (这是 `cout` 对于 `bool` 类型的默认输出规则。) 7. √ (`10 >= 20` 这个关系不成立,结果是 `false`,输出为 `0`。) 8. √ (讲义中明确指出“非零即为真”。) 9. √ (括号用于强制改变运算优先级,是最高的。) 10. √ ( `b = a++` 是后置运算,先将 `a` 的原值 `10` 赋给 `b`,然后 `a` 自身的值变为 `11`。 )