有以下程序段 int k=0; while(k=1) k++; 则while循环执行的次数是

A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行1次
2024-12-22 00:16:12
推荐回答(5个)
回答1:

程序段 int k=0; while(k=1) k++; while循环体执行的次数为无限次。

理由:在执行while(k=1)时,会先执行赋值语句,令 k 的值等于 1,然后再判断while的循环条件,此时 while(k=1)相当于 while(1),循环条件始终为真,无限循环执行。

再举一个与上面条件差不多的例子:

#include

int main(int argc, char *argv[])

{

int k=0;

while(k=1)

{

++k;

printf("%d\n",k);

};

return 0;

}

控制台会不断输出2,如下图:

扩展资料:

do-while循环语句

一般形式如下:do  语句; while(表达式);

for循环语句

一般形式如下:for ( [表达式 1]; [表达式 2 ]; [表达式3] )

其中:

表达式1:一般为赋值表达式,给控制变量赋初值;

表达式2:关系表达式或逻辑表达式,循环控制条件;

表达式3:一般为赋值表达式,给控制变量增量或减量;

语句:循环体,当有多条语句时,必须使用复合语句。

参考资料:百度百科-C语言循环控制语句

回答2:

A.无限次

#include
int main(int argc, char *argv[])
{
int k=0;
while(k=1)
{
k++;
printf("%d\n",k);
};
return 0;
}

你会发现一直输出:2

原因:
k=1 是一条赋值语句,令 k 的值等于 1。语句 k = 1 的结果是 永远是 1 , while(k=1) = while(1) ,是死循环,执行无限次

k == 1 才是一条逻辑语句,判断 k 的值是否等于1 。如果 k 的值等于 1 , k==1 的结果是1,否则是0。

回答3:

试题解析循环条件是" k=1",该表达式恒为真,所以程序构成死循环 答案选 A。

回答4:

A
因为循环条件 k=1 一直为真。
赋值语句的值为其等号右侧的值,也就是说 k=1 的值为1,也就是为真。

回答5:

一样的如果k=2呢循环了几次