问题
单项选择题
下面程序的输出是______。 mare() {int x=3 y=6,a=0;while(x++!=(y=1)){ a+=1; if(y<x)break;}printf("x=%d,y=%d,a=%d\n",x,y,a); }
A.x=4,y=4,a=1
B.x=5,y=5,a=1
C.x=5,y=4,a=3
D.x=5,y=4,a=1
答案
参考答案:D
解析:[评析] 注意的是x++中x值的引用时,这里应当是先引用,后自加,具体执行过程如下:第一次while循环:条件为真,执行a=a+1=1此时,x的值已为4,判断y<x不成立,继续抽行循环;第二次while循环:条件为假,此时x的值已为5,退出while循环,执行printf。