为您找到"
int a,b,c; a=b=c=1; 执行以下语句后,a,b,c的值分别为多少?
"相关结果约100,000,000个
a\b\c初是1 后面的逻辑表达式本来是先算&&再算|| 但是最终还是算||,||中当左边表达式为真时就不会计算右边表达式所以只运算++a,所以结果是a=2,b=1,c=1
本题中:a=b=c=1;于是a,b,c的值都是1,++a||++b&&++c;中,&&的优先级高,所以先算++b&&++c,再跟++a做||运算。于是++a是||的前半部分。而++a的值此时是2,a的值就是2,即为真。于是就不做后半部分的运算。也就没有++b&&++c的运算。于是b,c的值还是都为1.这下明名为什么是...
逗号运算符的优先级是最低的,在第一个表达式中,先把b赋值给a,然后a与c逗号运算返回c当然没有任何变量接收这个返回值,如果 d=(a=b,c) 这样d的值就和c的值一样了,所以在a=b,c;之后a和b的值一样 在第二个表达式中,逗号表达式用括号括起来了,所以先计算逗号运算,结果为最右边的值,...
int x=10,y=0;int a,b,c;a=(--x = = y++) ? –x :++y; //--x是先-1后计算,所以x=9而y++是先计算后+1,b=x++; //上面条件不成理,所以a=++y 而++y是先+1后计算,所以y=2 ,a=2 c=y; //x++是先计算后+1,所以b=9,x=10 //c=2 这个程序的...
include <stdio.h>#include <conio.h>int main() { int a,b,c; a = b = c = 0 ; a++ && ++b || c++ ; printf("%d %d %d\n",a,b,c);}a=1 b=0 c=1 或运算是短路运算
【答案】:C 解析:a=p1==&m;等价于a=(P1==&m);将p1是否等于m的地址的逻辑值(0)赋给变量a;在b=(*p1)/(*p2)+7;语句中,(*P1)/(*p2)=0,因此将表达式的值7赋给变量b。
也就是需要计算出 ++b和c++;但是按照优化, 只要计算出 a>0 就可以了,不需要计算出 ++b和c++,“||”在这里起到了短路的功能(短路就是,当第一条表达式能决定整条表达式的结果,那么后面的语句都不执行!),这也叫做布尔法则,给你推荐一本书叫做“c语言解惑”。望采纳 ...
【答案】:D 当b为10时,执行b-=a,此时b为9,接着b--表达式值为9,b的值为8,大于0,while不成立,退出循环,故选择D选项。
【答案】:B 解析:本题考查逻辑与运算的运算规则。其规则是:当运算符前后两个条件表达式都满足时,其最终结果才为真。当发现第一个表达式的值为假时,计算机将不再执行后面表达式的运算。本题中,由于前一个表达式的值为“假”,所以后面的表达式不再进行运算,因而n的值保持不变,仍为2。
也就是说,a=b=c, 是一个表达式,运行到这里时,将a的值赋给b、c,运行完后abc的值相等;a=b==c,是一个复合表达式,先将a的值赋给b,然后与c比较,如果相等则返回0,否则返回一个非零值;a==(b=c),是一个复合表达式,先执行括号中的内容(即将b的值赋给c),然后比较a、c,如果相...