首页 > 试题广场 >

下列main()函数执行后的结果为()

[单选题]
下列main()函数执行后的结果为()
int func(){ 
	int i, j, k = 0;
	for(i = 0, j =- 1;j = 0;i++, j++){
		k++;
	}
	return k;
}
int main(){
 	cout << (func());
 	return 0;
}


  • -1
  • 0
  • 1
  • 2
对于for(;;)循环体,中间的表达式一般是个判定条件,返回布尔型,表达式j=0,对于int,除了0以外的所有都是true,如if(1)之类的,
所以这里返回false,循环体一次都不执行
发表于 2015-11-22 21:23:10 回复(8)

for(a;b;c)
//1、 当执行到for循环时,a部分语句会且只会执行一次 ,相当于进行一次初始化。

//2、b部分为 循环判定条件 ,true则执行,在执行循环体内之前进行的条件判断。

// 3、C部分:执行一次循环后,再进行下一次条件判断也就是b部分的时候会执行c部分。 本题关键在考察逗号表达式以及for循环执行条件,仔细一点可以看清本质的。 备注:逗号表达式相关知识以及for循环其他相关知识不太清楚的同学请百度,Google。

编辑于 2017-03-29 16:38:43 回复(1)
表达式是有返回值的,对于:j=0,返回值就是0;所以不会执行循环
发表于 2015-11-20 22:53:57 回复(1)
题目中间的判定条件,是判断j的值,因为j=0,所以一次循环都没有进入。
发表于 2015-11-25 17:39:52 回复(1)
c++中赋值语句的返回值是所赋的值,于是在C/C++中,就可以有如下的连续赋值语句:
a=b=10;
发表于 2017-09-20 20:05:23 回复(0)
j=0, 循环体一次也不运行,所以k=0
发表于 2015-11-19 20:59:05 回复(0)
草=不是==
发表于 2020-01-06 20:41:09 回复(0)
j=0与初始长条件相比,是假,故循环体不会执行。
发表于 2016-05-18 22:16:20 回复(1)
<p>判断的语句是j=0;这是赋值语句,赋值语句返回左值引用,也就是j的值,j的值为0,所以直接跳出循环,不执行。</p><p><br></p>
发表于 2020-08-27 14:28:11 回复(0)
j = 0 先赋值,再返回表达式的左值,也就是0, 而0即false
发表于 2018-02-25 19:54:25 回复(0)
题目是错的,如果是C 中间判定 j=0 永远为true,无限执行
如果是java, j=0 直接编译不通过
发表于 2015-11-25 11:11:01 回复(3)
不会执行循环
发表于 2023-12-12 20:04:26 回复(0)
j赋值为0,所以条件不成立,不执行for循环
发表于 2023-01-30 12:29:28 回复(0)
发表于 2022-03-14 11:01:20 回复(0)
for(;;)分号间是条件体;j=0相当于条件false,所以不会进入循环,如果是j=1的情况,相当于true,则就成了死循环了
发表于 2021-04-01 19:57:06 回复(0)
炫头像
for循环体的执行条件不满足,for循环中的K++一次都没执行
关于for循环的执行顺序可以参考:http://blog.csdn.net/zengxiangxuan123456/article/details/51064174
编辑于 2016-04-05 14:01:31 回复(0)
应该大部分人都是少看了一个🟰吧
发表于 2023-11-15 08:56:13 回复(0)
j=0返回值为0所以for不运行
发表于 2023-08-15 19:50:13 回复(0)
j=0,恒为假,循环不会进去

发表于 2023-03-16 19:37:35 回复(0)
赋值语句在c/c++中的返回值即赋给的值,如j=0返回的就是0,j=1返回的就是1
发表于 2023-03-15 15:28:53 回复(0)