📜  门|门CS 2012 |问题 3

📅  最后修改于: 2021-09-27 05:52:28             🧑  作者: 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

(乙)

Choice A

(C)

Choice A
Choice B No choice

(四)

Program gives no output as it is erroneous

答案: (C)
说明:在 case ‘A’ 中没有 break 语句。如果一个 case 被执行并且它不包含 break,那么所有后续的 case 都会被执行,直到找到 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") ;
    }
}

这个问题的测验