以下程序的结果是()main(){unsigned int a=3,b=10;printf("%d\n",a1);}

以下程序的结果是()
main()
{unsigned int a=3,b=10;
printf("%d\n",a<<2|b>>1);
}


A、

1


B、

5


C、

12


D、

13


【正确答案】:D
【题目解析】:

|: 是位运算符,表示“按位或”。a赋值为3,3的而进制为00000011,对a<<2,即a左移两位,a=00001100,b赋值10,二进制为00001010,对b>>1,即b右移一位,b=00000101。a<<2|b>>1,即1100|0101=1101=13。