2025/5/23 每日一题带你轻松学习C语言知识,今天学习的是
| 按位或运算符
|| 逻辑或运算符
题目:
代码的运算结果是什么?(所有数字都是十进制)
int a = 0;
int b = 0;
b = 9 | 10;
b || a++;
printf("%d ", b);
printf("%d ", a);
A. 11 1
B. 11 0
C. 10 1
D. 10 0
正确答案:B
解析:本题主要考查了对于位运算符和逻辑运算符的理解。首先要理解什么是位运算符:
在现代计算机中,所有数据都以二进制形式存储,即 0 和 1 两种状态。计算机对二进制数据进行的运算(如加、减、乘、除)被称为位运算,即对二进制数的每一位进行操作的运算。
题目中的 9|10 实际上就是先转化为二进制 1001 和 1010,规则是只要有一个位是1,结果就是1,最后将结果的二进制组合赋值给b。那么二进制1011就是十进制的11,b=11;
b || a++; ||是逻辑运算符或,特点就是如果左侧表达式判定为真(非0)那么就不会执行右侧表达式,因此a++不会执行,a仍然等于0;
所以最终输出应该为 11 0