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

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

因为 while(k=1) 不是while(k==1),while 里面的 k=1 变成了 赋值语句,而不是实际目的与1去比较是否相等。这些程序 就会执行 k=1,然后再执行 k++;此时k=2然后又执行 while(k=1),让K=1然后又再执行 k++;此时k=2,又再 while(k=1),让K=1,又再执行 k++;此时k=2,如此循环,不会停止;此题我猜想是 想考 while语句 的语法 以及 赋值语句 与 比较语句的写法;while(k=1) 与 while(k==1) 意思完全不同,同时 if(k=1) 与 if(k==1) 意思也完全不同。

4

while 后面是分号,表示循环语句为空,k=3时跳出循环,然后执行k++,最终k=4。

while(k++<=2)printf("last=%d\n",k)注意括号后面的那个分号,那才是while的循环体,只有一个分号即一个空的语句。所以这个是等while循环完毕后再输出的。

为什么是4:循环的条件情况如下(k++返bai的是k的原值,然后再加1)

第1次:k++<=2 真,执行之后k == 1

第2次:k++<=2 真,执行之后k == 2

第3次:k++<=2 真,执行之后k == 3

第4次:k++<=2 假(退出循环),执行之后k == 4

所以输出的是4

扩展资料:

for表达式

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

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

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

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

判别表达式2是否满足给定条件,若其值非0,满足循环条件,则执行循环体内语句,然后执行表达式3,进入第二次循环,再判别表达式2……;否则判断表达式2的值为0,不满足条件,就终止for循环,执行循环体后语句。

参考资料来源:百度百科-循环语句

int

k=0

while(k=1)

//这里k=1的运算结果(赋值运算)恒为真,永远是1,所以是死循环。

k++的改变到这里就被1给覆盖了。

k++


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11852617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存