2006年9月二级C笔试第23题:
有以下程序
main()
{int i;
for(i=1;i<=40;i++)
{if(i++%5==0)
if(++i%8==0) printf("%d",i);
}
printf("\n");
}
执行后的输出结果是
A)5 B)24 C)32 D)40
我觉得是40。
參考答案:答案是C,32
i=30时,if(i++%5==0)判断完了后自加了1,i=31,在接下去的if(++i%8==0)的判断时,i先自加了1,再进行了判断,i=32满足条件因此打印输出32
i=40时,作了i++%5==0后i的值 变成了41,不满足后面的++i%8==0,所以不可能输出 40