首页 > 试题广场 >

如输入1,最后输出什么?( )

[单选题]
如输入1,最后输出什么()
void main()
{
    char c;
    scanf("%c", &c);
    switch(c)
    {
        case '1':
            printf("1");
        case '2':
            printf("2")
        case '3':
            printf("3")
        default:
            printf("error");
    }
}
  • 1
  • 2
  • 3
  • 123error
switch语句原理是跳转到caseX位置执行剩下所有的语句(包括其他case里面的),直到最后或者遇见break为止。因此在每一条语句最后+break即可。
发表于 2017-08-29 15:15:42 回复(0)
中间的printf没有分号还能继续执行???
发表于 2017-09-09 11:31:42 回复(10)
并没有写break,所以从第一个开始依次执行
发表于 2017-08-10 20:13:03 回复(0)
这里说一个很容易理解错误的点:
本题输入1,用%c接收,说明字符变量c存储的是字符'1',而不是1。
如果用%d接收,则字符变量c存储的是1对应的ASCII码值。
发表于 2023-05-12 23:05:46 回复(0)
如果没有break,则会把满足条件后所有的内容都输出。比如输入2,那么输出应该是:
2
3
error
发表于 2019-03-31 12:00:02 回复(0)

void main可还行

谭浩强在天有灵,看到这么多猴子猴孙怕不是得开心的活过来

发表于 2018-04-21 22:07:41 回复(2)
要是输入2  是23error吧

发表于 2017-08-23 15:32:12 回复(1)
缺少break,选D
发表于 2017-08-10 21:48:40 回复(0)
因为每个case的后面都没有break,所以按顺序依次输出,答案为D

发表于 2017-08-10 21:35:08 回复(1)
因为每个case和最后的default都没有写break语句,所以switch-case语句会从上到下依次全部执行,最终得到答案D

发表于 2017-08-10 20:45:46 回复(0)
没有break正常执行
发表于 2022-01-22 15:34:04 回复(0)
如果case后面没有break;程序会继续执行下一个语句段,一直执行下去,直到有break为止;如果还没有就会执行到default语句,结束switch语句。
很明显:
    switch(c)
    {
        case'1':
            printf("1");
        case'2':
            printf("2")
        case'3':
            printf("3")
        default:
            printf("error");
    }

首先会执行字符‘1’后面的语句     printf("1");   
但是这个时候没有break返回值,循环不会跳出去,还在Switch循环内,
但是不会再判断Switch的变量‘c’,而是会像正常执行语句一般接着往下执行,只不过 case'2':  case'3':  default:  没什么意义可以忽略跳过。


发表于 2021-12-03 10:13:14 回复(0)
switch 函数中没有break,一个接一个地执行
发表于 2023-11-15 16:09:11 回复(0)
没有分号不影响么
发表于 2023-01-29 20:17:41 回复(0)
直落行为
发表于 2022-03-29 21:01:58 回复(0)
没有break会一直执行
发表于 2022-03-04 10:49:23 回复(0)
Case 后面对应的就是输入的情况 因为没有break,所以后面也会被迫进行,直到最后
发表于 2021-11-10 23:59:29 回复(0)
没有break ,我淦
发表于 2021-06-08 01:01:55 回复(0)
没有break语句跳出,因此会一直执行
发表于 2021-04-29 10:20:02 回复(0)
无break结束语句
发表于 2020-11-08 12:18:18 回复(0)