首页 > 试题广场 >

语句 “if(i=1) i++;” 编译时不能通过。(

[单选题]
c语言中,语句 “if(i=1) i++;” 编译时不能通过。(    )
  • 正确
  • 错误
选B ,这个题是正确的,因为要注意看if中的判断条件是一个赋值语句,并不是一个条件判断语句,赋值语句是只要执行就认为它是成功的,也就是说这个if括号中的语句是一定成立的,也会执行到后面的i++,所以就会编译成功。而且这个要注意他说的是编译不能通过,所以选B错误。
编辑于 2019-12-19 19:16:09 回复(1)

B。有过很多这样的经历。

发表于 2020-02-02 16:40:33 回复(0)
选B,是可以编译通过的。答案错了
发表于 2020-01-01 22:46:47 回复(0)
本题差评;答案应该是B,不过,有些编译器会对此报错,认为我们写的不对,但是从语法本身来看,确实选B
发表于 2020-04-28 21:57:08 回复(0)
选B
发表于 2020-03-26 20:21:54 回复(0)
我对题目的答案保持怀疑,编译是能通过的
发表于 2020-03-18 10:16:29 回复(0)
垃圾题目
发表于 2020-03-15 22:09:33 回复(0)
这条语句编译时能通过,那题目说不能通过,不是选择B 错误吗???为什么答案是A
发表于 2019-12-31 19:56:39 回复(0)
选A
表达式i=1本身是有值的,这个值等于左值,即值是1不为零,就是真的,还会执行i++。

编辑于 2020-06-21 14:02:15 回复(3)
A 执行顺序应该这样吧 i = 1; if(1) i++;//i = 2
发表于 2019-12-19 14:35:39 回复(0)
A
i=1,将1赋给i,因此if(...),括号中判断为true,会继续执行i++操作。
因此可以编译通过。
发表于 2019-12-19 18:26:44 回复(0)
变量i没有声明  也没有定义 直接用了 行不通
发表于 2020-06-06 17:10:00 回复(0)
解:
 因为:这道题我做错了
所以: 这道题是错的
QED
发表于 2020-06-06 10:04:23 回复(0)
A
这段语句虽然有误,但是这与能不能编译没啥关系
发表于 2020-04-26 22:48:16 回复(0)
我觉着吧是i没有说明类型 加上int i或许吧
发表于 2020-01-16 12:53:35 回复(1)

为什么编译通过选A 不是选B吗?

发表于 2019-12-27 12:08:47 回复(0)
很常见的写法
发表于 2019-12-19 15:37:47 回复(0)
A i被赋值为1,再进行if判断
发表于 2019-12-19 14:31:20 回复(0)