6下面的程序的运行结果是
main()
{int i=0,x=0,y=0;
do
{
++i;
if(i%2!=0){x=x+i;i++}
y=y+i++;
}whilie(i<+7);
printf("x=%d,y=5d\n“,x,y);
}
运行结果是x=1,y=20,可以给解释下怎么得出来的吗?
參考答案:首先,要分清楚++i,和i++的区别.
i++是先执行当前命令,再执行递增.
++i是先递增,再执行命令
开始,到if语句前,i值是1
执行完if语句后,x=1,i=2
然后因为执行y=y+i++,++i后,所以每次到if语句前,i都会加2.即i永远是2的倍数.所以if语句只执行了一次.x=1.
(%是取模)
因为i>7就退出循环,那么这个循环执行了4次.
第一次,y=2 i=3;第二次y=6 i=5;第三次y=12 i=7;第四次y=20 i=9