📜  门| GATE CS 2012 |问题3

📅  最后修改于: 2021-06-29 10:59:24             🧑  作者: Mango

以下C程序段的输出是什么?

char inchar = 'A';
switch (inchar)
{
case 'A' :
    printf ("choice A \n") ;
case 'B' :
    printf ("choice B ") ;
case 'C' :
case 'D' :
case 'E' :
default:
    printf ("No Choice") ;
}

(一种)

No choice

(B)

Choice A

(C)

Choice A
Choice B No choice

(D)

Program gives no output as it is erroneous

答案: (C)
说明:在情况’A’中没有break语句。如果执行了一个案例且其中不包含break,则将执行所有后续案例,直到找到break语句为止。这就是为什么打印交换机内部所有内容的原因。
尝试遵循以下程序作为练习。

int main()
{
    char inchar = 'A';
    switch (inchar)
    {
    case 'A' :
        printf ("choice A \n") ;
    case 'B' :
    {
        printf ("choice B") ;
        break;
    }
    case 'C' :
    case 'D' :
    case 'E' :
    default:
        printf ("No Choice") ;
    }
}

这个问题的测验