C语言,求过程,选什么?

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。

测试结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-12

相似回答