若i和k都是int类型变量,有以下for语句

若i和k都是int类型变量,有以下for语句
  for(i=0,k=-1;k=1;k++) printf("*****\n");
下面关于语句执行情况的叙述中正确的是
  A)循环体执行两次   B)循环体执行一次
  C)循环体一次也不执行   D)构成无限循环

为什么不是C

1、因为for(i=0,k=-1;k=1;k++) 中,第二个条件如果是k==1,则运行两次,
2、但k=1;是赋值语句而非判断语句;因此在初始化i,k后。运行循环体一次,然后判断;判断语句(k=1)恒为真值。
3、所以,跳出循环,循环体只执行一次。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-11
循环条件k=1这个循环条件是一个为值1的赋值表达式,因此永真,为死循环,答案D本回答被提问者和网友采纳
第2个回答  2011-09-16
判断条件是k=1,注意不是k==1,所以相当于true,故为D
第3个回答  2012-09-21
#include<stdio.h>
void main()
{
int i,k;
for(i=0,k=-1;k=1;k++)
printf("***\n");
}
执行是无限循环的,所以选D
相似回答