中职C语言程序设计基础 - 互动教学页
C语言提供3种逻辑运算符,用于对“真/假”进行逻辑运算,运算结果只有两种:真(非0值,运算结果为1)、假(0值,运算结果为0)。
| 运算符 | 名称 | 含义 | 运算对象数 | 示例 | 结果说明 |
|---|---|---|---|---|---|
| && | 逻辑与 | 两边都真则真 | 双目 | 3>2 && 5<6 | 1(真) |
| || | 逻辑或 | 有一边真则真 | 双目 | 3>2 || 5>6 | 1(真) |
| ! | 逻辑非 | 取反(真变假、假变真) | 单目 | !(3>2) | 0(假) |
核心规则:
C语言中没有专门的“布尔类型”,判断真假的规则是:非0值视为真,0值视为假;逻辑运算的结果固定为1(真)或0(假)。
逻辑与(&&)和逻辑或(||)具有“短路”特性,是考试核心考点,直接影响表达式执行结果:
若左侧表达式为假(0),则右侧表达式不执行(因为整体必为假)。
若左侧表达式为真(非0),则右侧表达式不执行(因为整体必为真)。
逻辑非是单目运算符,仅对单个表达式取反,无“短路”概念。
逻辑运算符的优先级:!(逻辑非) > &&(逻辑与) > ||(逻辑或),且低于关系运算符(>、<、==等),高于赋值运算符。
| 运算符 | 优先级 | 结合性 | 示例 | 等效写法 |
|---|---|---|---|---|
| ! | 高(2级) | 自右向左 | !a && b | (!a) && b |
| && | 中(11级) | 自左向右 | a > b && c < d | (a > b) && (c < d) |
| || | 低(12级) | 自左向右 | a > b || c < d | (a > b) || (c < d) |
易错点:区间判断不能直接写10 < a < 20,需拆分为a > 10 && a < 20(因为10 < a < 20等效于(10 < a) < 20,结果永远为真)。
a < x < b,未拆分为a < x && x < b!a || b && c)计算以下逻辑表达式的值:(3>2)&&(5<4)、(3>2)||(5<4)、!(3>2),并输出结果。
分析以下代码的执行结果,重点理解&&的短路特性。
判断变量a是否在[10,20]区间内,对比错误与正确写法的结果。
分析以下代码的执行结果,理解逻辑运算符的优先级规则。
使用逻辑表达式判断“成绩score是否在60~100之间”,并输出结果。
💡 规则:两位同学分别在左右两侧答题,每关1道题,答对进入下一关,答错重新答,先完成10关者获胜!