ID: 9542
题目
x=0x66, y=0x39,计算 x && ~y 的字节值
A 0x01
B 0x10
C 0x11
D 0x21
解析
- 逻辑与
&&的规则:两边非0则为1,否则为0。 x=0x66(非0),~y为字节取反:0x39→01000110→ 非0。- 两边均非0,结果为逻辑真,即
0x01。
答案:A
知识点总结
C语言中逻辑运算符的结果只有1(真)和0(假),非0值视为真。
ID: 9543
题目
x=0x66, y=0x39,计算 !x || !y 的字节值
A 0x11
B 0x00
C 0x01
D 0x10
解析
!x:x=0x66非0 →!x=0!y:y=0x39非0 →!y=00 || 0逻辑或为假,结果为0x00。
答案:B
知识点总结
逻辑非!:非0值取反为0,0取反为1;逻辑或||:全0才为0。
ID: 9464
题目
a=01101001, b=01010101,则 a^b=
A 1000100
B 111100
C 1011100
D 1011100
解析
- 按位异或
^:对应位不同为1,相同为0。 01101001 ^ 01010101 = 00111100,即十进制的60,二进制111100。
答案:B
知识点总结
按位异或:相同为0,不同为1。
ID: 9465
题目
a=01101001, b=01010101,则 a&b=
A 01000001
B 10110101
C 01011111
D 11011010
解析
- 按位与
&:对应位全1才为1,否则为0。 01101001 & 01010101 = 01000001。
答案:A
知识点总结
按位与:全1才为1,有0则为0。
ID: 9476
题目
1100|1010, 1001^1001, 1001&1100 分别为
A 1110 0000 1000
B 1000 1001 1000
C 1110 1001 0101
D 1000 1001 1000
解析
1100 | 1010(按位或):11101001 ^ 1001(按位异或):0000(相同为0)1001 & 1100(按位与):1000
- 结果依次为
1110 0000 1000。
答案:A
知识点总结
按位或:有1则为1;按位异或:相同为0;按位与:全1为1。
ID: 9619
题目
C语言中 !!0x41 的结果用十六进制表示为
A 0x00
B 0x41
C 0x14
D 0x01
解析
!0x41:0x41非0 → 取反为0!0:取反为1,即十六进制0x01。
答案:D
知识点总结
!!x 等价于逻辑归一:非0值最终为1,0值最终为0。
ID: 9637
题目
结果为0的式子(X为任意非0数)
A X^~X
B X|0xFF
C !X
D ~X
解析
- A:
X和~X按位异或结果全1,非0 - B:
X与0xFF按位或,低8位全1,非0 - C:
X非0,!X结果为0 - D:
~X为X按位取反,非0
答案:C
知识点总结
逻辑非!:非0值取反为0,0取反为1。
ID: 9663
题目
x=0x66, y=0x93,则 ~x | ~y 的值为
A 0xFA
B 0xFD
C 0xFC
D 0xCC
解析
x=0x66→ 二进制01100110→~x(字节取反)为10011001(0x99)y=0x93→ 二进制10010011→~y(字节取反)为01101100(0x6C)0x99 | 0x6C(按位或):11111101→0xFD。
答案:B
知识点总结
字节取反~:按位取反后,仅保留低8位;按位或:有1则为1。
ID: 9701
题目
x=0x66, y=0x93,则 x|y 的值为
A 0xF6
B 0xF4
C 0xF8
D 0xF7
解析
x=0x66→01100110y=0x93→1001001101100110 | 10010011 = 11110111→0xF7。
答案:D
知识点总结
按位或:对应位只要有1则为1。
ID: 9702
题目
x=0x66, y=0x93,则 x&&y 的值为
A 0x01
B 0x02
C 0x03
D 0x04
解析
x=0x66(非0),y=0x93(非0)- 逻辑与
&&两边均为真,结果为1,即0x01。
答案:A
知识点总结
逻辑与&&:两边非0则为1,否则为0。
ID: 9703
题目
x=0x66, y=0x93,则 x&y 的值为
A 0x03
B 0x04
C 0x02
D 0x03
解析
x=0x66→01100110y=0x93→1001001101100110 & 10010011 = 00000010→0x02。
答案:C
知识点总结
按位与:对应位全1才为1。
ID: 9572
题目
逻辑运算中结果为0x00的是
A !0x00
B !0x41
C 0x69 && 0x55
D 0x69 || 0x55
解析
- A:
!0x00→!0=1→0x01 - B:
!0x41→!非0=0→0x00 - C:两边非0,
&&结果为1 - D:两边非0,
||结果为1
答案:B
知识点总结
逻辑非!:0取反为1,非0取反为0;逻辑与/或:非0值视为真。
ID: 9439
题目
int x=2; int y=3; x=(x>y)?x>>1:y>>1,执行后x=
A 1
B 2
C 6
D 3
解析
- 条件判断:
x=2>y=3为假,执行y>>1 y=3→ 二进制11,右移1位为1(十进制1),x=1。
答案:A
知识点总结
三元运算符?::条件为真执行前半部分,为假执行后半部分;右移>>1等价于除以2取整。
ID: 9654
题目
在C语言中,移位运算的优先级比加法(和减法)要高。
A 对
B 错
解析
- C语言运算符优先级中,
+/-(加减)的优先级高于 移位运算符<</>>。 - 因此题目说法错误。
答案:B
知识点总结
运算符优先级:+/- > <</>>。
ID: 9607
题目
C语言中,1<<2+3<<4 的结果是
A 52
B 112
C 512
D 2的50次方
解析
- 先算加法:
2+3=5 - 再算移位:
1<<5(即1*2^5=32),再32<<4(即32*2^4=32*16=512)
答案:C
知识点总结
加减优先级高于移位,因此先算2+3,再按顺序执行移位运算。
ID: 9595
题目
C语言中,~0x41 的结果是
A 0x41
B 0x71
C 0xBE
D 0xFF
解析
0x41的二进制为01000001(8位)- 按位取反
~后为10111110,即十六进制的0xBE(题目按8位字节取反)。
答案:C
知识点总结
~是按位取反运算符,对每一位取反;若按8位计算,~0x41 = 0xBE。