A-A+

有以下程序: main() { int x=3 y=2 z=1; printf(\%dn

2022-08-06 04:42:28 问答库 阅读 176 次

问题详情

有以下程序: main() { int x=3,y=2,z=1; printf("%dn",x/y&~z); } 程序运行后的输出结果是()。
A.3
B.2
C.1
D.0请帮忙给出正确答案和分析,谢谢!

参考答案

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

考点:程序