c语言,这题的运行结果是什么?

[复制链接]
查看11 | 回复2 | 2008-5-4 09:44:55 | 显示全部楼层 |阅读模式
第一次;do { ++i;
//i=1if(i%2!=0){x=x+i;i++;} //i%2=1满足 x=1,之后i=2y=y+i++;
//y=2 ,i=3}while(i<=7); 第二次:do { ++i;
//i=4if(i%2!=0){x=x+i;i++;}
//i%2=0不满足 不进行运算y=y+i++;
//y=2+4=6之后i=5}while(i<=7);
//继续第三次:do { ++i;
//i=6if(i%2!=0){x=x+i;i++;} //i%2=0不满足 不进行运算y=y+i++;
//y=6+6=12 之后i=7}while(i<=7);
//继续第四次:do { ++i;
//i=8if(i%2!=0){x=x+i;i++;}
//i%2=0 不满足y=y+i++;
//y=12+8=20 之后i=9}while(i<=7);
//跳出循环printf("x=%d,y=%d\n",x,y);//打印 x=1,y=20
回复

使用道具 举报

千问 | 2008-5-4 09:44:55 | 显示全部楼层
在程序中,在进行完第一次循环的时候,i=3,x=1,y=2.因为i=3 <=7,所以进入到第二次循环,首先i又自加一次,因而i=4,对2求余等于0,所以不进行 if 语句,接着y=2+4=6,然后i又自加等于5.因为i=5 <=7,所以进入到第三次循环,同第二次相似,进行完第三次的时候x还是没变过等于1,y=6+6=12,i=7.因为i还是满足<=7,所以还是要进行最后一次循环。最后跳出循环时,各变量的值为:y=12+8=20,i=9,x=1.所以最后输出“x=1,y=20”。
回复

使用道具 举报

千问 | 2008-5-4 09:44:55 | 显示全部楼层
huaying079---------- 讲的很清楚 很详细 看的好爽 替LZ谢谢了哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行