c语言题大家看看

来源:百度知道 编辑:UC知道 时间:2024/05/14 11:24:36
设x,y,z均为int形整数,则执行以下语句后,t的值是什么?
x=y=z=1;
t=x||y&&z;
A不定值 B 2 C 1 D 0
另外x=y=z=1 c语言中可以这样赋值吗,在什么情况下不许这样写?
请大家答的时候附上说明,谢谢!

C
逻辑运算
y&&z 为真 值为 1
x||(y&&z) 相当于 x||1 为着 值为 1

赋值那是完全可以了
赋值的一般表达式为:变量1=变量2=变量3=……=表达式;
连续赋值在定义时就是错误的了
如: int x=y=z=1;
这语句就是错的了

选择 C 1 ,t的值是1

x=y=z=1 c语言中可以这样赋值,就是把每个值都赋值成1
在声明的时候,不能这样写:int x=y=z=1;

C,其实有一个||运算符且一个操作数为1之后后面的就不用算了,最后结果就是1
x=y=z=1 作为赋值语句是可以的,但是在定义且赋初值的时候不能这样,即不能int x=y=z=1 ;

运算符的优先为:&&大于||
所以t=x||y&&z;相当于t= x || (y&&z)
y&&z为真,逻辑运算符||只要有一个为真,便为真。所以x||(y&&z)为真。真转化为数值1,所以t=1。
至于x=y=z=1,我的所学的知识,什么情况都可以这样!

答案是C

赋值这样都可以的
=是右结合的,从右边依次赋值

学校怎么都教这种垃圾的东西
学点有用的多好