int x=0,y=2;,语句if(x=0)y++;执行完毕后变量y的值是多少?

求助啊··

楼主,这个题目这样来解读。

if() 语句里面,如果里面的是非零的数,就表示为真,如果是0,就表示为假。现在,把0赋值给x,括号里面的值为0,条件为假,不执行y++,所以,执行完毕 ,x=0,y=2

如果写的是if(x==0) ,那么条件为真,会执行下一句y++,所以,执行完毕,x=0;y=3.

显然是第一种情况。 有可能作者想判断x==0,却写成了赋值语句x=0

所以好的编码风格是我们讲常数放在变量前面判断,如果你写成if(0==x),是对的,写成了if(0=x),编译器会报错的。谢谢
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-08
c语言中的判断相等符号是==,“=”是赋值语句
if(x=0)相当于把0赋给变量x,然后按照表达式(x=0)的值来进行判断。
表达式x=0的值也是0,所以表达式相当于false
y++没有执行,所以y的值应该是2

通常编程时为了防止出现误将x==0类似的语句错误的写为x=0这样的赋值语句,通常编程时写成
if(0==x),如果误写为if(0=x)则会在编译的时候报错,从而及早的发现错误。
第2个回答  2013-04-07
y的值还是2。。if语句内是一个赋值语句,赋值语句是X=0;执行X=0后,这个赋值语句的值等于0,所以if不成立,所以y++不执行,所以结果y的值没有变
第3个回答  2013-04-08
变量的什为2
因为在条件表达式里将0赋值给了x,而这个if 语句就是判断这个表达式是否为真(非0为真,0为假)
所以Y++永远也不会去执行
刚刚没看清楚,呵呵
第4个回答  2013-04-08
#include <iostream.h>
void main()
{
int x=0,y=2;
if(x=0) y++;
cout<<y<<endl;
}
运行结果为:2.
为什么呢?
原来,y++表示执行完与y有关的程序后自身再加一,所以我们可以改一下;
#include <iostream.h>
void main()
{
int x=0,y=2,m;
if(x=0) ++y;
m=++y;
cout<<m<<endl;
}
运行结果是:3.本回答被网友采纳

int x=0,y=2;,语句if(x=0)y++;执行完毕后变量y的值是多少?
if() 语句里面,如果里面的是非零的数,就表示为真,如果是0,就表示为假。现在,把0赋值给x,括号里面的值为0,条件为假,不执行y++,所以,执行完毕 ,x=0,y=2 如果写的是if(x==0) ,那么条件为真,会执行下一句y++,所以,执行完毕,x=0;y=3.显然是第一种情况。 有可能作者想判断x...

int x=1,y=2,执行表达式(x>y)?++x;++y后,x和y的值??
我的 int x=1,y=2,执行表达式(x>y)?++x;++y后,x和y的值?? 我来答 1个回答 #热议# 生活中有哪些成瘾食物?皮鞋你妹啊 2016-10-09 知道答主 回答量:19 采纳率:50% 帮助的人:2.8万 我也去答题访问个人页 展开全部 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 为你推荐:特...

int x=0,y=0;while(x<10){if(x%2)continue;y++;x++;};该程序执行后 y...
if(x%2)相当于if(x%2!=0)时结束本次循环 因此x=1时就不能进行下去了,进入死循环,即x之后一直等于1 学习,是指通过阅读、听讲、思考、研究、实践等途径获得知识和技能的过程。学习分为狭义与广义两种:狭义:通过阅读、听讲、研究、观察、理解、探索、实验、实践等手段获得知识或技能的过程,是一种...

int x=1,y=0; if(!x)y++; else if(x==0) if(x)y+=2; else y+=3;
所以之后的if(x)y+=2; else y+=3;都不执行。最后的x,y的值仍然是x=1,y=0

设int x = 1 , y = 2则表达式x+=++y的值是( )。
++y 自增为3 x=x+3 1+3=4赋值给X 答案为A

求一些c编程题
23、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 A) 3 B) 6 C) 10 D) 20、D、1 24、假定有以下变量定义: int k=7 ,x=12; 则能使值为3的表达式是 A x%=(k%=5) B x%=(k-k%5) C x%=k-k%5 D (x%=k)-(k%=5)、D、1 25、...

int X=1, y=0;if(!x) y++; else if(x==0) if(
输入0.这个代码你可以这样看 if (!x) y=0;else if (x == 0) if (x) y+=2; else y+=3;这样你应该懂了,不懂再问

{int x=1,y=0; if(!x) y++; else if(x==0) if(x) y+=2; else y+=3...
{ int x=1,y=0;if(!x)y++; \/\/这里是对x≠0时的处理。else if(x==0); \/\/这里应有对于x=0时的处理。就是这里缺少相应的处理语句,如不处理,也应加;表示不处理 if(x) y+=2; \/\/这是对x=1时的处理。else y+=3; \/\/这是对x≠0,x≠1时的处理。printf("%d",y...

执行语句:x=y=2;t=++x||++y;后 y的值为什么不是3呢?++y不是y=y+1吗?
这个|| 它的意思的 前面的对了 后面就不执行了 所以Y没加 515039180 | 发布于2013-01-09 举报| 评论 2 0 不是,如果++y和y++不一样的 y++是先调用后加1,++y 是先加1后调用 a280486228 | 发布于2013-01-09 举报| 评论 1 3 可能++y没执行 fzy3694 | 发布于2013-01-09 举报| 评论...

...y 的值为___。 int x,y,z; x=y=z=0; ++x || ++y && ++z;
0 ++x是1 ||的运算方式是只要前面为1,则后面不进行运算,结果肯定唯一 ++y && ++z这些实质上是没有运行的语句

相似回答