C语言循环结构,为什么第8题是A。 第9题却不是3??求大神

2025-04-27 04:18:27
推荐回答(4个)
回答1:

对于8, 执行的顺序是 先判断 k<=2 无论是否成功,接下来都会执行k++, 然后如果判断成功,执行printf, 否则退出循环。
也就是执行打印时,k已经自加过了。所以是1 2 3 而不是 0 1 2

对于9, 在while后面有个分号,所以循环体什么都不执行。 当k=2的时候,判断成功,执行k++
当k为3时,判断失败,退出循环。但是k++无论循环是否执行,这个自加都会做的
于是当k=3的时候退出循环后,还会做一次自加。
于是打印出的k就是4了。

回答2:

第八题 判断条件k++<=2 这里可以把它分成两部分 先判断k<=2 再k++
刚开始k = 0;符合判断条件;然后k++ = 1所以打印1
同理打出2,3

第9题你要注意到while(); 后面有个分号 所以printf没有包含在循环里
前面循环条件和上面一样。当k = 3时 虽然k<=2不成立 但是k++还是要做的。
此时k=4 然后退出循环

回答3:

第9题的 printf输出语句在while 循环体外部,
当 k = 3的时候 进行while循环判断, 不满足条件, 此时 k++, 所以k就等于 4了.
在循环体外部 输出 k就是4.

但是第8题呢, printf语句全部都是在循环体内部, 这是最大的区别.

回答4:

没错啊,k最终是等于4,进了3次循环
当k==3的时候进入while此时,k++还是3,但已经大于2了,所以不进入while循环体
而下一刻,k就是4了