#include<stdio.h> main( ) { int a=1,b=2; for(;a<8;a++){b+=a;a+=2;} printf("%d,%d尀n",a,b); }

2024-11-28 00:49:11
推荐回答(3个)
回答1:

第一:看程序执行:
初值a=1,b=2
1<8 所以 b=b+a=2+1=3
a=a+2=1+2=3
①然后执行for语句中a++,a=4
4<8 所以 b=b+a=3+4=7
a=a+2=4+2=6
②然后执行for语句中a++,a=7
7<8 所以 b=b+a=7+7=14
a=a+2=7+2=9
③然后执行for语句中a++,a=10
判断10不小于8,for语句执行完。结果 10,14

第二:将for语句中a++改为++a,与上面输出结果一样。因为①②③处执行a++和执行++a
是一样的,不影响后面的判断及结果输出。

第三:个人愚见,你认为输出结果是9,14是没有理解清for语句的执行吧?而不是误区在
a++与++a。

回答2:

理解一点:a++先用后加; ++a先加后用。

回答3:

我觉得换成++a后,b的值有了变化,a还是不变的