第一次执行if语句输出8,然后x自减变成7,然后执行continue;
第二次x自减变成6;不执行if语句,执行printf("%d",--x);先x自减变为5,然后输出;
第三次执行for循环里面X--;x变为4,执行if里面语句,输出4,再自减变为x=3;
第四次执行for循环中的x自减,变为x=2;执行if语句中的输出2,x自减变为1;
第五次执行for循环x自减,x变为0;循环结束。
总的来说,if函数里面输出执行了第一,三,四次,分别输出的8,4,2,for循环里的输出只有第二次执行了,输出为5。
所以选D
#include
main()
{ int x=8;
for( ; x>0; x--)
{
if(x%3)
{
printf("%d, ",x--); cont
}}}
输出8 5 2
输出6 3 循环5次
D)8,5,4,2
本题思路:先判断x=8>0成立,再判断8%3=2!=0成立,又因为x--先取x的值,所以第一个输出8,接着x=8-1=7,执行contiune回到for循环语句, x=7-1=6判断x=6>0,又6%3=0,不执行if语句,又--x为先减1再取x,所以输出6-1=5,又回到for循环语句,x=5-1=4,判断4>0,4%3=1执行if语句,输出4,x=4-1=3执行contiune语句回到for循环语句,x=3-1=2>0成立,2%3=2执行if语句,输出2,x=2-1=1回到for循环语句,x=1-1=0.此时for循环语句判断条件不成立,程序结束。