C语言题解答

来源:百度知道 编辑:UC知道 时间:2024/06/20 10:01:34
main()
{
int i=0, s=0;
do
{
if(i%2)
{
i = i+2;
}
i++;
s=s+i;
}while(i<3);
printf(“%d\n”,s);
}。执行后输出的结果是( c ).(选择一项)
a) 1
b) 4
c) 5
d) 10
告诉我结果,可以告诉我怎么执行的吗?

do //do..while语句,先执行一次,然后判断执行
{
if(i%2)//奇数则执行,偶数则不执行
{
i = i+2;
}
i++;
s=s+i;//统计i的值
}while(i<3);//i<3则继续执行,否则退出循环

执行do语句时,i=0,if不执行,i++;i=1,s=s+i;s=1,第二次循环,i=1,if执行,i=i+2;i=3,再执行i++;i=4,s=s+i;上个循环中s=1,加上这次i的值s=5,判断i>3,退出循环,输出s=5

第一编循环 执行 i++
所以i=1,s=0+1=1;
第2编循环 执行 i=i+2,i++
所以i=4 ,s=1+4=5
结束

当 i=0 进入循环时,if(i%2)为假 因为i%2 = 0
i++ 后 i=1
s=s+i s=1
(i=1)< 3
再次循环
因为 i =1
if(i%2)为真 因为 i%2 = 1
i=i+2 i=3
i++ i=4
s=s+i s=5

s=5
选C