一题逻辑运算的C语言题目。。。跪求
main(){intx,y,z;x=y=z=0;++x||++y&&++z;X=1y=0z=0printf("x=%d\ty=%d\tz=%d\n",x,y,z);x=y...
main( )
{ int x,y,z;
x=y=z=0;
++x||++y&&++z; X=1 y=0 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=0;
++x&&++y||++z; X=1 y=1 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=0;
++x&&++y&&++z; X=1 y=1 z=1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x&&++y&&++z; X=0 y=-1 z=-1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x||++y&&++z; X=0 y=0 z=-1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x&&++y||++z; X=0 y=-1 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
}
逻辑表达式系统是怎么执行的。。。。左边的是程序。。。右边是结果。。。。 展开
{ int x,y,z;
x=y=z=0;
++x||++y&&++z; X=1 y=0 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=0;
++x&&++y||++z; X=1 y=1 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=0;
++x&&++y&&++z; X=1 y=1 z=1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x&&++y&&++z; X=0 y=-1 z=-1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x||++y&&++z; X=0 y=0 z=-1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x&&++y||++z; X=0 y=-1 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
}
逻辑表达式系统是怎么执行的。。。。左边的是程序。。。右边是结果。。。。 展开
2个回答
展开全部
main( )
{ int x,y,z;
x=y=z=0;
++x||++y&&++z;
//因为&&的运算级高于||而且运算顺序都是从左到右,所以当执行||前面的++x内容非零以后,后面的两项不管是什么值都不影响结果,所以后面的程序就不编译了
//这句话等同于++x的效果,得到X=1 y=0 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=0;
++x&&++y||++z;
//因为&&的运算级高于||运算顺序都是从左到右,所以先计算++x和++y,当这两项运算结果非零,不管||后面值是什么都不影响结果,所以后面的++z就不编译了
//这句话等同于++x&&++y的效果,得到X=1 y=1 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=0;
++x&&++y&&++z;
//&&的运算顺序是左到右,而且不存在前面的执行以后后面的值不管是否执行都不影响语句结果的情况,所以++x++y++z都运算
//得到X=1 y=1 z=1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x&&++y&&++z;
//&&的运算顺序是从左到右,当先执行了++x以后,表达式的值不管y和z是什么值结果都是0,所以后面的部分不编译运算
//等同于++x,得到X=0 y=-1 z=-1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x||++y&&++z;
//&&的优先级高于||,所以先执行++y,当执行了++y以后z的值就不影响++y&&++z的结果了,就不执行++z了,
//等同于++x||++y得到X=0 y=0 z=-1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x&&++y||++z;
//同理等同于++x||++z得到X=0 y=-1 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
}
{ int x,y,z;
x=y=z=0;
++x||++y&&++z;
//因为&&的运算级高于||而且运算顺序都是从左到右,所以当执行||前面的++x内容非零以后,后面的两项不管是什么值都不影响结果,所以后面的程序就不编译了
//这句话等同于++x的效果,得到X=1 y=0 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=0;
++x&&++y||++z;
//因为&&的运算级高于||运算顺序都是从左到右,所以先计算++x和++y,当这两项运算结果非零,不管||后面值是什么都不影响结果,所以后面的++z就不编译了
//这句话等同于++x&&++y的效果,得到X=1 y=1 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=0;
++x&&++y&&++z;
//&&的运算顺序是左到右,而且不存在前面的执行以后后面的值不管是否执行都不影响语句结果的情况,所以++x++y++z都运算
//得到X=1 y=1 z=1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x&&++y&&++z;
//&&的运算顺序是从左到右,当先执行了++x以后,表达式的值不管y和z是什么值结果都是0,所以后面的部分不编译运算
//等同于++x,得到X=0 y=-1 z=-1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x||++y&&++z;
//&&的优先级高于||,所以先执行++y,当执行了++y以后z的值就不影响++y&&++z的结果了,就不执行++z了,
//等同于++x||++y得到X=0 y=0 z=-1
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x&&++y||++z;
//同理等同于++x||++z得到X=0 y=-1 z=0
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
}
展开全部
这个简单,你知道C语言是有上向下一次运行的是把,你的程序可是简单的分析成以下的 形式
main( )
{ int x,y,z; //定义变量 x,y,z;
x=y=z=0; //你给x,y,z 赋了个初始值0;
++x||++y&&++z; //这是你的逻辑表达式 其中++x 等同于x=x+1(赋值运算)之后的++y和++z 同理,||和&&是逻辑运算符,这个 语句就牵扯到了 逻辑运算符的 优先级:&&的优先级大于|| 而他们俩的优先级又大于赋值运算符的!
printf("x=%d\ty=%d\tz=%d\n",x,y,z); //打印出来 x,y,z的结果
}
优先级就是决定电脑先去执行那一部分,越高越先执行! 之后你的语句就是这个上面这个形式的重复了 希望 我的解答能让你了解到逻辑表达式在系统是怎么执行的。有什么不懂的 再问哈!
main( )
{ int x,y,z; //定义变量 x,y,z;
x=y=z=0; //你给x,y,z 赋了个初始值0;
++x||++y&&++z; //这是你的逻辑表达式 其中++x 等同于x=x+1(赋值运算)之后的++y和++z 同理,||和&&是逻辑运算符,这个 语句就牵扯到了 逻辑运算符的 优先级:&&的优先级大于|| 而他们俩的优先级又大于赋值运算符的!
printf("x=%d\ty=%d\tz=%d\n",x,y,z); //打印出来 x,y,z的结果
}
优先级就是决定电脑先去执行那一部分,越高越先执行! 之后你的语句就是这个上面这个形式的重复了 希望 我的解答能让你了解到逻辑表达式在系统是怎么执行的。有什么不懂的 再问哈!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询