已知a,b,c的值均为0,且均为int类型变量,则执行a++||++b&&++c; 语句后,a,b,c的值分别为多少

如题所述

答案:1,0,0

计算机处理这种逻辑语句从左到右,对于 || 逻辑运算符,先判断左边是不是为1,如果为1,后面就不算了。如果为0,计算机会继续往后看。

虽然在我们看来 &&的优先级高于 ||,但是对于计算机来说,只要保证||的两端有一个为1就可保证为真,所以a++之后为a为1,后面的就不会看了,并没有执行 ++b和++c语句。

综上:

a=1;b=0;c=0

实际上写个c程序跑一下,结果也为1,0,0

#include <stdio.h>

int main()
{
    int a,b,c;
    a = b = c = 0;
    ++a || ++b && ++c;
    printf("%d %d %d ",a,b,c);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-21
执行后都为1
不过你这有问题吧?追问

哪有问题啊

追答

你这个是想做什么的

a++先赋值后计算
++a计算在赋值

你记住这句就好

追问

作业题目上是这样的 那就是说 先赋值 a=0,然后就要判断 ++b&&++c,都为1,所以再看a++ a为1吗

追答

执行到本行代码时a为0
本行代码结束a为1

追问

谢谢啊~

本回答被提问者采纳
第2个回答  2017-06-21
应该是1,1,1追问

为啥 不是1 0 0

追答

先计算或,0或1为真!然后再计算且,算完了都是1呀~

追问

是是是 没错 谢谢啊 刚刚想错了一个地方

相似回答