C语言 求表达式的值

设x,y,z,t均为整型变量,则执行以下语句后,t的值为:(1)
x=y=z=1;
t=x++||++y&&++z;

不懂啊,谁来解释一下啊。。。。谢谢。。。。

逻辑式。解释如下:
x++,x的值不为0,所以(x++)为“真”。同理(++y)也为“真”。
所以x++||++y的运算结果为“真”。
++z,这个z的值也不是0,所以(++z)为真。
所以表达式:x++||++y&&++z的逻辑结果为“真”,值就是“1”。所以t=1
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-10
这个涉及到逻辑与和逻辑或得短路特征(就是如果第一个条件就能判断整个逻辑与和逻辑或的值,第二个条件就不会被执行,比如 1 || ++x, 第一个条件为真,不管后面的值为0还是1,结果都为真,++x是不会被执行的)
这里x为1,根据短路特征,所以整个结果为1,即
t=1, x=2, y=1, z=1.
第2个回答  2011-09-10
首先这是一个逻辑表达式,结果只能是0(表示假)或者1(表示真)
在表达式中出现了三个运算符:自加运算符,与逻辑,或逻辑。优先级别为:++>&&>||;
而X,Y,Z的初值都是1;所以不过怎么运算结果都是1;
执行表达式后,X=2;Y=2;Z=2;T=1.
第3个回答  2011-09-10
首先,x++的意思是本句执行完后x+1;
++x的意思为先加1再执行语句功能
所以在t=x++||++y&&++z语句中,x=1,y=2,z=2;
表达式相当于t=1||2&&2;
相当于一个逻辑判断语句,语句为真,所以t=1。
例:t=1||0&&1;
则t=0。
第4个回答  2011-09-10
t=x++||++y&&++z;
这个可以理解为:
++y; // y = 2
++z; // z = 2
t = x || y && z; // t = 2 || 2 && 1, y 和 z都为真,返回1,x为真,还是返回1,因此t = 1
x++; // x = 2

C语言计算表达式的值
逗号表达式的运算过程为:从左往右逐个计算表达式。逗号表达式作为一个整体,它的值为最后一个表达式的值。逗号运算符的优先级别在所有运算符中最低。

C语言 求表达式的值
所以表达式:x++||++y&&++z的逻辑结果为“真”,值就是“1”。所以t=1

表达式的求值(c语言)
1.算术表达式就是包含算术运算符(如+ - \/ * %等)的表达式(不是语句,后面没有分号),如:a+b ,a%b,a+b-c*d,3+5等,算术表达式的值就是最后算出的结果,如3+5这个表达式的值就是8 2.赋值表达式,就是含有赋值运算符=的表达式,如a=5,b=3,c='A'等,=左边的a,b,c称为...

c语言程序表达式的值是多少?
再运算:(x*1\/3)=4。

C语言 从键盘输入一个简单的数学表达式,计算并显示该表达式的值...
我理解的简单的数学表达式:纯数字+运算符+纯数字+(回车)而且这里的运算符指 +,-,*,\/ 四种之一,纯数字是指整数 如下:include <stdio.h> define NUMSIZE 10 \/\/操作数长度 int ch_to_num(char a[]); \/\/多位数字符到数值的转换 void main(){ char var1[NUMSIZE+1]; \/\/...

C语言 表达式求值
先把四个小括号里的算出来,再按照我刚才写的顺序计算即可。b<c 得1 b!=a 得1 a+b 得 -1 b-c 得-9 即 !1+1||-1&&-9 其中 !1+1 得 1 -1&&-9 得 1 最终 1||1 得 1.总之,不管是关系运算符还是逻辑运算符的结果都只有“真、假”两种,C语言用1代表真,用0代表假。

关于c语言表达式
表达式(x=2)||(z=1)计算时,先计算子表达式x=2。由于作为||运算符的左操作数,x=2的值为2而不等于0,所以不计算右操作数z=1,且表达式(x=2)||(z=1)的值为1。之后,计算表达式z,即z本身的值。此时z的值为0。所以(z=0, (x=2)||(z=1), z)的值为0。=== [原创回答团]参考...

C语言 就下面算术表达式的值
%2\/4=2.5+2*0\/4=2.5 这里2.5+3.5=6.0,6.0被强制转换成int型,变成整数6。2.先进行强制转换再计算值。(float)(2+3)\/2+3%2=2.5+1=3.5 这里(2+3)被转换成float型,所以(2+3)\/2=2.5。ps:现在c++里强制转换不用这样的形式了,用static_cast<int>(x)这样的形式。

谁能用C语言编个完整的程序求表达式的值,例如3*(7-2)。很急!!!谢谢了...
define FALSE 0 define LEN 10\/\/输入数字不得超过10位 define MAXSIZE 40\/\/数字和运算符总个数不得超过40个 typedef struct { char data[MAXSIZE][LEN];\/\/栈区为二维数组 int top;}seqstack;seqstack *initseqstack();void push(seqstack *s, char *x);char *pop(seqstack *s);int optr(...

C语言计算并输出个表达式的值?
int main(){ int a=3,b=2,c=1,m;printf("%d\\n",c>a+b);printf("%d\\n",a>b==c);printf("%d\\n",a==b>c);printf("%d\\n",m=b>c);printf("%d\\n",m=a>b>c);printf("%d\\n",c+1>=a);printf("%d\\n",c*2!=b);printf("%d\\n",m=c==a%b);return 0;} ...

相似回答
大家正在搜