问题 单项选择题

以下程序输出结果为( )。
class test 2

public static void main(String args[])

int n=7;
n<<=3;
n=n&n+1 |n+2^n+3;
n>>=2;
System.out.println(n);

A.0

B.-1

C.14

D.64

答案

参考答案:C

解析: 第1个赋值语句使得n的值为, 7的二进制形式为00000111,第2个赋值语句可写为n=n<<3,n左移3位的结果为 00111000,即第3个赋值语句的运算顺序为 (((n&n)+(1|n))+(2^n))+3,运算结果为57(十进制),其二进制形式为00111001,第4个赋值语句使n的值右移2位,由于n的符号位为0,因此,在右移时左边填充位为0,即 00001110,其十进制形式为14。

选择题
单项选择题