C语言初学者,这个题怎么做的,求大佬们给个解析。 若定义int i; 则以下for语句的执行结果是(

C语言初学者,这个题怎么做的,求大佬们给个解析。 若定义int i; 则以下for语句的执行结果是(    )。  for(i=1;i<10;i++)  {       if(i%3) i++;      ++i;      printf("%d",i);  }

3,6,9

i初始值为1,第一次循环if(i%3),求余,就是i除以3的余数,只要不为0则为真,所以判断为真,执行i++,++i,输出3,执行for结尾i++;

此时i为4,求余为真,i++,++i,输出6,i++

此时i为7,求余为真,i++,++i,输出9,i++

此时i为10,退出循环

2,5,8,11

i初始值为1,第一次循环的if判断为false只执行++i,输出i=2,之后结束循环执行循环中的表达式3,i++,此时i=3;

第二次循环判断结果为true,执行if语句i=4,执行++i,输出i=5,结束循环执行循环中的表达式3,i++,此时i=6;

第三次循环判断结果为true,执行if语句i=7,执行++i,输出i=8,结束循环执行循环中的表达式3,i++,此时i=9;

第四次循环判断结果为true,执行if语句i=10,执行++i,输出i=11,结束循环执行循环中的表达式3,i++,此时i=12;

执行循环中表达式2,判断为false,退出循环