27.以下程序的输出结果是( )。
main()
{ int a, b;
for(a=1, b=1; a<=100; a++)
{ if(b>=10) break;
if (b%3= =1)
{ b+=3; continue; }
}
printf("%d\n",a);}
(A) 101 (B) 6 (C) 5 (D) 4
答案选D,即输出 4。
这题重点在【if(b>=10)】和【if (b%3==1)】。
当 b >= 10 时,执行 break,此时就会中断循环。
b % 3 == 1,表示如果 b 除以 3 的余数等于 1,那么该条件为真,执行语句 b += 3 和 continue,不过 continue 的后面没有语句,再中断当次循环就没有意义了。
当 b = 1、4、7 时,b % 3 == 1 就为真。
a = 1,b = 1,b % 3 == 1 为真,执行 b += 3,此时 b = 4。
a = 2,b = 4,b % 3 == 1 为真,执行 b += 3,此时 b = 7。
a = 3,b = 7,b % 3 == 1 为真,执行 b += 3,此时 b = 10。
a = 4,b = 10,b >= 10 为真,执行 break,退出循环。
输出 a 的值,此时 a = 4,所以最终输出 4。