问题 单项选择题

有以下程序:
main ( ) int X=3, y=2, z=1;
printf ("%d\n", x/y&~z );

A.3

B.2

C.1

D.0

答案

参考答案:D

解析: 本题考核的知识点是位运算符的应用。位与运算符“&”参加运算的两个数据,按二进位进行“与”运算,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0,取反运算符“~”,用来对一个;进制按位取反,即将0变1,1变0.在prinft()函数的表达式中, “&”前面表达式的值为 1(3/2=1)表示为二进制为 00000001,而按位取反运算符“~”的优先级高于按位与运算符“&”,先计算“&”后面的取反运算符“~”。 z的二进制表示为00000001,取反后为11111110,最后进行“&”,即“00000001&11111110”可知结果为00000000,故最后的值为0,所以,4个选项中选项D符合题意。

单项选择题
单项选择题