市民卡医保要开通吗:C语言方面的问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/02 20:32:46
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

if(i%2!=0){x=x+i;i++}
后头少了个分号。

非常建议你好好看看C语法.

如果你正应付考试. 我就不说什么了.