下面程序的输出结果是
#include <stdio.h>
main()
{char *s="121" ;
int k=0,a=0,b=0;
do { k++;
if(k%2==0){a=a+s[k]-'0'; countinue;}
b=b+s[k]-'0';a=a+s[k]-'0';
}
while(s[k+1]);
printf("k=%d a=%d b=%d\n",k,a,b);
}
书上答案是:k=2 a=3 b=2
我调试时,编译没通过,我觉得这题好象有问题,而且跳不出循环???
char *s="121" ;可以得到 s[0]=1,s[1]=2,s[2]=1 是这样吗???
第一次,k=0,自增后k=1,if 条件不满足,b=2 a=2 while(1)条件满足
第二次,k=1,自增后k=2, if条件满足,a=3 遇countinue结束本次循环,然后是怎样的啊???
接着是执行第三次?,k=2,自增后k=3,if条件不满足,b=2+s[3],可是不知道s[3]的值啊???
[此贴子已经被作者于2006-7-19 0:34:22编辑过]