求助一c语言题,求解释谢谢
1个回答
展开全部
while(a++&&++b);循环语句最后有分号,从循环开始直到不满足循环条件,退出循环,才执行后面的printf语句。
a=-2≠0,b+1=1≠0,执行a++,a=-1,继续循环,此时a=-1,b=1
a=-1≠0,b+1=2≠0,执行a++,a=0,继续循环,此时a=0,b=2
a=0,不满足循环条件,退出循环,执行a++,a=1,此时a=1,b=2
输出a、b的值,输出1,2
选D。
选A的错误在于未注意每次a执行判断语句后自增1。
a=-2≠0,b+1=1≠0,执行a++,a=-1,继续循环,此时a=-1,b=1
a=-1≠0,b+1=2≠0,执行a++,a=0,继续循环,此时a=0,b=2
a=0,不满足循环条件,退出循环,执行a++,a=1,此时a=1,b=2
输出a、b的值,输出1,2
选D。
选A的错误在于未注意每次a执行判断语句后自增1。
追问
a=0,不满足循环条件了,为什么执行a++不执行++b
追答
a++,是执行语句后,a自增1,与是否满足循环条件无关,执行完判断语句,就自增1。
++b,是先自增1,再判断循环条件,在执行判断语句前,b已经自增1了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询