简单C题目: #include<stdio.h> void main() { int k=0; char c='A'; do { switch(c++) { case 'A':k+

完整题目:
#include<stdio.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;break;
case 'E':k=k*10;break;
default:k/3;
}k++;
}while(c<'G');
printf("k=%d\n",k);
}
明确告诉你:运行结果还有答案都是k=8,但是我自个计算的时候是下面的结果,还请大侠们指点,谢谢!!!
第一次循环结束:c='B' ;k=2;
第二次循环结束:c='C' ;k=5;
第三次循环结束:c='D' ;k=2;
第四次循环结束:c='E' ;k=21;
第五次循环结束:c='F' ;k=8;
第六次循环结束:c='G' ;k=3;

k/3这句应该写成k=k/3
第1次循环:进入switch时,c=A
跳出switch时,k=1,c=B
k自增后:k=2
第2次循环:进入switch时,c=B
跳出switch时,k=3,c=C
k自增后:k=4
第3次循环:进入switch时,c=C
跳出switch时,k=6,c=D
k自增后:k=7
第4次循环:进入switch时,c=D
跳出switch时,k=1,c=E
k自增后:k=2
第5次循环:进入switch时,c=E
跳出switch时,k=20,c=F
k自增后:k=21
第6次循环:进入switch时,c=F
跳出switch时,k=7,c=G
k自增后:k=8
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-06-19
/*
k=1,c='A';k=1; k=2;
k=2,c='B';k=1; k=2;
k=2,c='C';k=4; k=5;
k=5,c='D';k=1; k=2;
k=2,c='E';k=20; k=21;
k=21,c='F';k=7; k=8;
*/
第2个回答  2012-11-06
你这运行结果应该是:22
第一次结束:c='B' K=2
第二次结束; C='C',K=2
第三次结束 C='D' K=5
第四次结束 c='E' K=2
第五次结束 C='F' K=21
第六次结束 C='G' K=22
重点是记住do-while 语句是先执行在判断的 ,那个default语句是不执行的,因为条件内c都小于G,G时已经结束
第3个回答  2012-11-06
第一次循环结束:c='B' ;k=2;
第二次循环结束:c='C' ;k=2;
第三次循环结束:c='D' ;k=5;
第四次循环结束:c='E' ;k=2;
第五次循环结束:c='F' ;k=21;
第六次循环结束:c='G' ;k=8;本回答被提问者和网友采纳
相似回答