首页 > 试题广场 >

下面哪个语句无法通过编译?

[单选题]
下面哪个语句无法通过编译?
  • if (x>y);
  • if (x=y) && (x!=0) x+= y;
  • if (x!=y) scanf("%d",&x); else scanf("%d",&y);
  • if (x<y) {x++; y++;}
感觉应该写成这样: if(((x=y)) && (x != 0)) x +=y;第一个双重括号,先把y赋给x,然后判断x是否非0。后边重复判断x是否非0。 或: if((x==y) && (x != 0)) x +=y;前边判断x,y是否相等,后边判断x是否非0。
发表于 2016-11-05 21:52:08 回复(1)
if (x=y) 这是有问题的,x=y是赋值语句,应改为x==y
o(╯□╰)o是该好好刷题了。在VS2008里面编译了一下,确实会提示括号的错误。
编辑于 2016-09-07 21:32:58 回复(8)
B选项 if的判断条件没加括号(),或者说如果编程语言是python ,没加‘:’
发表于 2016-08-19 09:59:57 回复(2)
欺负我眼瞎的题目
发表于 2016-09-24 19:55:07 回复(0)
B少括号。其他语言写多了,还真不觉得有问题。。。
发表于 2019-08-02 12:47:16 回复(0)
选项B,赋值语句充当if的条件,编译器是不会报错的。
此题无法通过编译的原因是:缺少最外面的两个括号。

另外 赋值语句的true/false跟赋的值有关:值等于0为假,其它为真
简单来说就是:bool = 值; 这样一条语句

发表于 2019-02-24 21:50:49 回复(0)
变量不赋值就可以用?
发表于 2018-03-29 09:41:30 回复(0)
if (x=y) && (x!=0) x+= y;//第二个,error
应该改为if ((x=y) && (x!=0)) x+= y;
发表于 2017-08-25 09:42:12 回复(0)
a中的条件后面不需要加分号。可以把分号放到下一行,即函数体什么都不执行。
发表于 2017-06-12 10:14:10 回复(0)
╮头像
B选项中X=Y是赋值语句,这是有问题的,还有一个就是括号问题


发表于 2017-04-14 20:32:39 回复(1)
Ruby写多了 总是忘记在if后面加括号。。。
发表于 2017-03-09 18:01:05 回复(0)
ACD第一个if里面都是判断语句,只有第二个if里面不是判断语句而是赋值语句,况且int类型不能转化为boolean类型·
发表于 2016-12-08 15:55:37 回复(0)
应该再加一个括号使if有判断条件,即加一个括号将两个小括号括起来,而且=为赋值,应该为==
发表于 2016-09-20 23:50:08 回复(0)
B 没加括号
发表于 2016-09-02 23:59:58 回复(0)
=是赋值,==才是判断是否相等
发表于 2016-08-29 15:13:19 回复(0)
b
发表于 2016-08-28 12:07:23 回复(0)
B
发表于 2016-08-28 00:59:18 回复(0)
A不是if后怎么是;号
发表于 2016-08-25 21:43:30 回复(1)
B,一眼就看出来少了括号,单独放一个&&  肯定报错了
发表于 2016-08-23 23:24:02 回复(0)
是的,我是看到判断条件给判错的
发表于 2016-08-23 20:26:15 回复(0)