#include <stdio.h>

int main(void)
{
char c[] = "*";

switch(*c){
case '*':
printf("*だな\n");
case '"':
printf("*でないわ\n");
case '\\':
printf("\\だわ\n");
}
return 0;
}

をbccまたはlsiでコンパイルして実行すると

*だな
*でないわ
\だわ

と出ます。
漏れの予想では

*だな

と表示されるはずなのですが、何がおかしいのでしょうか?