请高手帮我解决一下这道题,谢谢!

有以下程序main(){intx=0,y=0,i;for(i=1;;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;bresk;... 有以下程序
main( )
{
int x=0,y=0,i;
for(i=1;;++i)
{
if(i%2==0) {x++;continue;}
if(i%5==0) {y++;bresk;} }
printf("%d,%d",x,y);}
程序的输出结果为( )
A 2,1 B 2,2 C 2,5 D 5,2

请简略的说一下过程,谢谢!!
展开
 我来答
jiang1987217
2010-07-29 · TA获得超过183个赞
知道答主
回答量:60
采纳率:0%
帮助的人:0
展开全部
首先,main是程序入口,C语言一般的编译器都是找main来开始程序的,你的for()种第3项是++i,也就是说在走到if的时候,i的值比传进去的时候大1,这个程序解释起来的话,就是循环的i++,当i能被2整除的时候,x就加1,当i能被5整除的时候,y就加1,然后跳出循环了,所以说,当i=5的时候,for跳出来,程序结束。这个时候,y=1,x=2,因为i曾经等于过2和4,x++过两次。
最后的printf就是把当前的x,y值打出来。

最后的答案是A,说了这么多,这下明白了吧?

采纳我的答案吧......顺便做个任务,呵呵...
chen_huiwei
2010-07-29 · TA获得超过152个赞
知道小有建树答主
回答量:276
采纳率:77%
帮助的人:67.1万
展开全部
a
%是模运算。即是余数。i%2就是i除以2的余数。如此你该会自己算了吧。同时break你写错了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-07-29
展开全部
B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tuopokun
2010-07-29 · TA获得超过1395个赞
知道小有建树答主
回答量:862
采纳率:0%
帮助的人:576万
展开全部
A
当i=1时,x不变,y不变
当i=2时,x+1,循环从头再来
当i=3时,x不变,y不变
当i=4时,x+1,循环从头再来
当i=5时,x不变,y+1,循环跳出
x=2,y=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式