从北京到英国多少公里:这个C语言选择题弄不懂来着

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/03 02:31:20
执行下面的程序后,a的值为( )
main()
{ inta,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20)break;if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
}

A.7 B. 8 C. 9 D. 10
请问选多少啊?为什么呢?我看不懂这个程序啊

B.8你顺着它去试试就可以了,b>20时跳出来了

答案应该是C,首先要搞清楚,continue是结束本次循环,而break是结束循环。设a=1,b=1
第一趟:a=1小于100,进入循环体,b小于20且除3的余数为1,执行b+=3,此时b为4,continue结束本次循环且执行a++;
第二趟:a=2小于100,进入循环体,b小于20且除3的余数为1,执行b+=3,此时b为7,continue结束本次循环且执行a++;
第三趟:a=3小于100,进入循环体,b小于20且除3的余数为1,执行b+=3,此时b为10,continue结束本次循环且执行a++;
第四趟:a=4小于100,进入循环体,b小于20且除3的余数为1,执行b+=3,此时b为13,continue结束本次循环且执行a++;
第五趟:a=5小于100,进入循环体,b小于20且除3的余数为1,执行b+=3,此时b为16,continue结束本次循环且执行a++;
第六趟:a=6小于100,进入循环体,b小于20且除3的余数为1,执行b+=3,此时b为19,continue结束本次循环且执行a++;
第七趟:a=7小于100,进入循环体,b小于20且除3的余数为1,执行b+=3,此时b为22,continue结束本次循环且执行a++;
第八趟:a=8小于100,进入循环体,b已大于20执行break,退出循环。

答案是22了。上面没得选。
for是循环,循环一次a的值加1
b%3就是b除以3的余数。
一开始b是1,除以3余数就是1,所以b+=3,b的值加3。
continue就是终止本次循环进入下次循环。
break就是终止所有循环。