下列程序的输出结果不知道是为什么

fkwcowboy 2010-09-29 05:29:58
运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为______?(2分)
main( )
{
int v1=0,v2=0;
char ch = ‘\0’;
do {
switch (ch )
{
case 'a':
case 'h':
default: v1++;
case 'n':v2++;
}
} while ((ch=getchar())!='#') ;
printf("%d,%d\n",v1,v2);
}
A ) 5, 6 B) 5, 0
C) 5, 5 D) 2, 5

为什么是A啊 我觉得应该是6,6啊
但是调试确实是A
...全文
91 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenchenman 2010-09-29
  • 打赏
  • 举报
回复
到n就下来了
乐CC 2010-09-29
  • 打赏
  • 举报
回复
貌似在ch 为 n 的时候,直接跳到了case 'n'
fkwcowboy 2010-09-29
  • 打赏
  • 举报
回复
谢谢楼上了 可惜没分了
luciferisnotsatan 2010-09-29
  • 打赏
  • 举报
回复
都没跟break。没有的字符就从defaul开始执行,然后再运行case 'n'的代码。而遇到china中的n时,直接从n开始,所以v2比v1多一

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧