首页 > 试题广场 >

运行以下程序后,如果从键盘上输入 china#,则输出结果为

[填空题]
运行以下程序后,如果从键盘上输入 china#<回车>,则输出结果为1
#include <stdio.h>
int main(void)
{
int c1 = 0, c2 = 0; char ch;
while((ch = getchar( )) !=’#’)
switch(ch)
{ case ‘a’:
case ‘h’: c1++;
default: c2++;
}
printf(“c1=%d,c2=%d\n”, c1, c2);
return 0;
}

china#
c1=0,c2=1
c1=1,c2=1
c1=1,c2=2
c1=1,c2=3
c1=1,c2=4
c1=2,c2=4
c1=2,c2=5


c1=2,c2=5

--------------------------------
以上是每一次运行结果
产生原因是每个case语句后面没加break;
发表于 2018-11-30 17:30:49 回复(2)
switch语句在执行break语句或者遇到switch语句的“ } ” 时结束。
ch=c,进入default,c1=0;c2=1
ch=h,进入case'h',执行c1++后,继续向下执行c2++,得到c1=1;c2=2
ch=i,进入default,c1=1;c2=3
ch=n,进入default,c1=1;c2=4
ch=a,进入case'a',向下走依次执行c1++,c2++,得到c1=2;c2=5
ch=#结束循环
发表于 2023-09-20 17:14:57 回复(0)
case'o'什么意思

发表于 2023-08-24 11:06:22 回复(0)
发表于 2022-11-14 12:09:36 回复(0)
#include <stdio.h>
int main(void)
{
int c1 = 0, c2 = 0; char ch;
while((ch = getchar( )) !='#')
switch(ch)
{ case 'a':
case 'h': c1++;
default: c2++;
}
printf("c1=%d,c2=%d\n", c1, c2);
return 0;
}
//运行结果c1=2,c2=5

编辑于 2021-05-16 23:10:53 回复(0)
c1=2,c2=5
发表于 2018-12-01 20:01:08 回复(0)
c1=2,c2=5
发表于 2018-11-30 09:46:04 回复(0)