|
2008-02-25, 01:38 下午
|
yanchunyu01
 等级: 士兵
注册: 2007年9月14日
积分: 12
精华: 0
发贴: 12
|
|
|
|
这道题是问代码执行完以后x的值,对于循环来说,代吗执行完之后也就是当不再循环的时候,换句话说,就是循环条件不满足的时候(本题中为i<15不再满足)的时候
代码执行完之后i<15不再成立,也就是说i>=15。
所以这道题目考察的就是,何时i的值会大于等于15,而当i的值大于等于15时,x的值为多少?
在这个循环中,有两个地方可以改变i的值: 第一是for循环中i+=5,也就是每次循环后i值加5 第二个地方是if(!b)语句下的i+=5,也就是说,每当!b为true(即b为false)时i值加5
对于第一次循环: 循环前 i=0, x=10 y=3
符合循环条件,执行循环语句 x=x+y=10+3=13 x%y=13%3=1,所以b为假,!b为真,所以继续执行if下的语句 y++ i+=5 所以此时 y=4 i=0+5=5 此时第一次循环执行完毕,i值根据for循环中的迭代条件,执行i+=5 i=10
第二次循环: 循环前 x=13 y=4 i=10
符合循环条件执行循环 x=x+y=13+4=17 x%y=1,同样执行if语句下的代码 y=4+1=5 i=10+5=15 循环执行完之后,i值根据for循环中的迭代条件,执行i+=5 i=15+5=20
此时i>15,不在满足循环条件,程序终止(或者说执行完毕) 此时 x=17 y=5 i=20
所以答案为c
|
|
|
IP 地址: 已登录
来自: 已登录
|
|
|
|
|
|
|
|