问题 单项选择题

有以下程序: main() { int x=3,y=2,z=1; printf("%d\n",x/y&~z); } 程序运行后的输出结果是( )。

A.3

B.2

C.1

D.0

答案

参考答案:D

解析:在prinft()函数的表达式中,“&”前面表达式的值为1(3/2=1)表示为二进制为00000001,而按位取反运算符“~”的优先级高于按位与运算符“&”,先计算“&”后面的取反运算符“~”。z的二进制表示为00000001,取反后为11111110,员后进行“&”,即“00000001&11111110”可知结果为00000000,故最后的值为0,所以,4个选项中选项D符合题意。

选择题
多项选择题