分类：电脑/网络-程序设计-C/C++
问题：提问c++的问题#include"iostream.h"void 
#include"tream.h"void main(){int k=0;char c='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;continue;case'E':k=k*10;break; /3;}k++;}while(c<'G');cout<<"k="<<k<<endl;}最后结果是k＝4，请详细解释一下
回答：第一次执行循环：c++ == 'A'，swch语句执行：k++; break; 退出switch之后执行k++; 执行完本次循环后，c == 'B'，k == 2。第二次：c++ == 'B'，switch语句执行：k--; 由于case 'B'块不含break语句，程序继续执行'C'块：k += 2; break; 退出switch后执行k++; 执行完本次循环后，c == 'C'，k == 4。第三次：进入'C'块，执行k += 2; break; 退出switch后执行k++; 执行完此次循环后，c == 'D'，k == 7。第四次：进入'D'块，执行k = k % 2，遇到continue语句，回到循环开头。此时c == 'E'，k == 1。第五次：进入'E'块，执行k = k * 10; break; 退出switch后执行k++; 执行完此次循环后，c == 'F'，k == 11。第六次：进入default块，执行k = k / 3; 退出switch后执行k++; 执行完此次循环后，c == 'G'，k == 4。当c == 'G'时，不再满足循环条件c < 'G'，程序退出do循环，输出k值为4。