问题 单项选择题

以下程序的输出结果是
main()
int a=4,b=5,c=0,d;
d=!a&&! b||! c;
printf(“%d\n”,d;

A.1

B.0

C.非0的数

D.-1

答案

参考答案:A

解析:由于单目运算符优先级高于“&&”和“||”运算,所以先计算!a、!b和!c分别为“假”、“假”、“真”,然后是&&运算和“||”运算,原表达式就等价于“假”&&“假”||“真”又由于“&&”的优先级高于“||”运算符,所以先计算“假”&&“假”,还是为假,最后是“假”||“真” 为真。因此最后d被赋值为1,故最后输出为1。

选择题
单项选择题