【正确答案】
C
【答案解析】首先注意for循环的控制条件,当b>=20或者a>100时则跳出for循环,也即b<20且a<=100时执行for循环;第一次进入循环时a=1,b=1均满足循环条件,但b%3==1条件不满足,故执行b=b+3,得到b=4,注意有continue,所以后面语句不执行,直接跳转到a++这个语句,所以第一次循环完之后a=2,b=4;进入第二轮循环,b%3==1也是不满足的,故再次执行b=b+3,此轮循环执行之后a=3,b=7,进入下一轮。此后和前面循环同理,都是b%3==1不满足,因为每次都是加3,而之后又去模3,且都跳过for后面语句直接执行a++,所以一直循环到b=22跳出for循环,此时a为8。综合起来就是,每次循环b增加3,a增加1,且当b>22时跳出循环,结束程序。所以b从1增加到22,有(22-1)/3=7,所以a=1+7=8。因此选项C正确。