下述程序的输出结果是( )。 #include<stdio.h> voidmain() { char a=1,b=2; char c=a∧b<<2; pfintf(’’\n%d’’,c); }

admin2018-09-26  13

问题 下述程序的输出结果是(    )。
    #include<stdio.h>
    voidmain()
    {  char a=1,b=2;
    char c=a∧b<<2;
    pfintf(’’\n%d’’,c);
    }

选项 A、9
B、10
C、12
D、2

答案A

解析 本题主要考查C语言最基本的算术运算“左移(<<)”和“异或(∧)”。
    “左移”或“右移”运算表达式的一般形式为:x<<n或x>>n。“左移(<<)”运算的规则是将x的二进制位全部向左移动n位,将左边移动的高位舍弃,右边空出的位补0;“右移(>>)”运算的规则是将x的二进制位全部向右移动n位,将右边移出的低位舍弃,左边高位空出要根据原来符号位的情况进行补充,对无符号数则补0,对有符号数,若为正数则补0,若为负数则补1。
    “异或”运算是当两个运算量的相应位相同时结果为0,不相同时结果为1。b=2的二进制为(00000010)b<<2后为00001000,a=1的二进制为00000001,所以c=a∧b<<2为00001001,转化为十进制后为9。
转载请注明原文地址:https://kaotiyun.com/show/UNxp777K
0

最新回复(0)