下面这个C语言题目答案为什么是这样的?
题目如下:#include"stdio.h"main(){charc;intv1=0,v2=0;do{switch(c=getchar()){case'a':v1+=1;...
题目如下:
#include "stdio.h"
main()
{
char c;
int v1=0,v2=0;
do
{ switch(c=getchar())
{ case 'a':v1+=1;
case 't':case 'T':v2+=1;
default:v1+=1;v2+=1;
}
} while(c!='\n');
printf("v1=%d,v2=%d\n",v1,v2);
}
答案:v1=7,v2=9。(编程证明此答案是正确的)
疑问:1.那个default是属于哪个的?整体的还是case 't'的呢?2.答案怎么得出来的呢?
各位,不好意思,输入Total。 展开
#include "stdio.h"
main()
{
char c;
int v1=0,v2=0;
do
{ switch(c=getchar())
{ case 'a':v1+=1;
case 't':case 'T':v2+=1;
default:v1+=1;v2+=1;
}
} while(c!='\n');
printf("v1=%d,v2=%d\n",v1,v2);
}
答案:v1=7,v2=9。(编程证明此答案是正确的)
疑问:1.那个default是属于哪个的?整体的还是case 't'的呢?2.答案怎么得出来的呢?
各位,不好意思,输入Total。 展开
4个回答
展开全部
default就是switch()表达式不满足上面的所有case,就执行default。不过你上面每个case后面都没有break,符合上面case也会接着执行default的。
答案要看你输入的是什么啊,程序的作用是输入一个字符如果是a那么v1加一,然后执行case 't',让v2加一,然后执行default,v1和v2都加一。然后接着获得字符进行下一次判断。不想这样的话每个case要执行的语句完了之后加上一句break;
Total先得到T,从case 'T'执行,之后v2=1,然后执行default,之后v1=1,v2=2;然后是o,同样之后v1=2,v2=3;然后是t,先执行case 't',之后v2=4,再default,之后v1=3,v2=5;然后是a,先case 'a',v1=4,再case 't',v2=6,再default,v1=5,v2=7;然后得到l,执行default,v1=6,v2=8,再得到'\n',执行default,v1=7,v2=9,因为遇到'\n'了,循环结束
答案要看你输入的是什么啊,程序的作用是输入一个字符如果是a那么v1加一,然后执行case 't',让v2加一,然后执行default,v1和v2都加一。然后接着获得字符进行下一次判断。不想这样的话每个case要执行的语句完了之后加上一句break;
Total先得到T,从case 'T'执行,之后v2=1,然后执行default,之后v1=1,v2=2;然后是o,同样之后v1=2,v2=3;然后是t,先执行case 't',之后v2=4,再default,之后v1=3,v2=5;然后是a,先case 'a',v1=4,再case 't',v2=6,再default,v1=5,v2=7;然后得到l,执行default,v1=6,v2=8,再得到'\n',执行default,v1=7,v2=9,因为遇到'\n'了,循环结束
展开全部
当没有case子句匹配时,就执行default子句。default子句
是任选的(可有可无)。若无default子句,此时switch语句
就什么动作也没有做。
是任选的(可有可无)。若无default子句,此时switch语句
就什么动作也没有做。
参考资料: 我的读书笔记
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2008-06-03
展开全部
default就是switch()表达式不满足上面的所有case,就执行default。
不过你上面每个case后面都没有break,符合上面case也会接着执行default的。
不过你上面每个case后面都没有break,符合上面case也会接着执行default的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
default 是不满足上面两个情况执行default 程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询