#include <stdio.h> main() { int c=0,k; for (k=1;k<3;k++) switch (k) { default: c+=k; case 2: c++;br

详细解析!
#include <stdio.h>
main()
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{ default: c+=k;
case 2: c++;break;
case 4: c+=2;break;
}
printf("%d\n",c);
}

k=1时default在最前面所以default c=c+k c=1因为没有break所以接着c++ c=2 break跳出switch 然后k=2进行循环c++ 所以c=3 跳出switch然后跳出循环 所以c=3
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-21
首先k=1,开始第一次循环执行switch,但此k=1于是执行default c+=k,执行完后c=1;接着k加一执行第二次循环,由于k=2,所以执行c++;之后跳出循环;输出c,c=3.
第2个回答  2011-03-20
#include <stdio.h>
main()
{ int c=0,k;
for (k=1;k<3;k++) //循环2次,分别是当k=1和k=2
switch (k) 对k进行判断
{ case 2: c++;break; 当k=2的时候,c=c+1,然后跳出直接输出c
case 4: c+=2;break; 当k=4的时候,c=c+1,然后跳出直接输出c(当然c不会等于4)
default: c+=k; default就是说,看既不是2也不是4 的时候,c=c+k;

}
printf("%d\n",c);
}追问

结果是多少呢?是2吗?

相似回答