有以下程序: #include main() {char c=’A’; int x=36,b; b=(x>>2)&&(c

admin2016-04-07  17

问题 有以下程序:   
    #include
    main()
    {char c=’A’;
    int x=36,b;
    b=(x>>2)&&(c<’a’);
    printf("%d\n",b);
    }
    程序运行后的输出结果是(    )。

选项 A、1
B、0
C、2    (9)4

答案A

解析 “>>”右移运算符每次右移一位等价于除2,x=36,执行x>>2后,x=9;“&&”逻辑与运算,先计算左表达式真假,若为假,不计算右表达式,整个逻辑表达式为假,若左表达式为真,再计算右表达式,之后做逻辑与运算;x>>2为真,A的ASCII码为65,a的ASCII码为97,c<’a’为真,整个逻辑表达式(x>>2)&&(c<’a’)为真,得b=1。故A选项正确。
转载请注明原文地址:https://kaotiyun.com/show/dtDp777K
0

最新回复(0)