问题
单项选择题
下列程序的运行结果是( )。main() { int x=1,y=3,a=0; while(x++!=(y-=1)){ a+=1; if(y<x)break; } printf("%d,%d,%d\n",x,y,a);}
A.2,3,2
B.2,3,1
C.1,3,3
D.3,1,2
答案
参考答案:D
解析: 本题考查while循环。第一次循环,先拿x的值和(y-1)比较,此时x=1,y-1-2,循环条件成立,比较完将x的值加1,此时x=2,进入循环,a-a+1=1,判断if语句的控制条件是否成立,y<x不成立,接着执行下一次循环。第二欲循环,先拿x的值和(y-1)比较,此时x-2,y-1=1,循环条件成立,比较完将x的值加1,此时x=3,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<x成立,执行break语句退出循环。