楼主你好。
运行结果如黑框中所示:
你只要写:
first\nthird\n
就可以了,绝对没问题。(注:\n代表换行)
这是运行结果,你自己看着怎么写吧。不过还是建议你这样写:
first
third
———— 因为这是读程序填空题,又不是问答题。
尊敬的金山用户您好:
输出为如下:
first
third
Press any key to continue
因为在
switch(y)
{
case 0:printf("first\n");break;
case 1:printf("second\n");break;
}
后面少了一个break,break是只跳出本次的switch语句。
而如果“在C源程序中将语句“if(x==5) y++;”误写作“if(x=5) y++;”,将导致编译错误”,这个是肯定的了,因为=号是赋值运算符,不是关系运算符,语句的作用是将5赋值给X,却不是将x和5进行比较。
补充:原因就是你没有在前面加一个break,应该
switch(y)
{
case 0:printf("first\n");break;
case 1:printf("second\n");break;
};break; /*在这个位置加一个“;break;”*/
case 2:printf("third\n");
道理同其它的break作用一样
感谢您的支持,祝您生活愉快!
运行如下,因为case1后面没有break,所以接着运行,就打印出third。
路过,看见这么高悬赏的问题却始终却没有满意的答案。兴趣使然,参与一下。
这程序看起来很简单,一组嵌套的开关语句,开关值 x=1,y=0 明确给出,其运行结果表面一看必然就是
first
third
了。可 hjkbzw 所给的程序中隐藏着一个极易被初学者忽略的问题,那就是开关值的书写格式问题。
hjkbzw 可能是无心,但也可能是有意,将 case 1:写成了 case1:,只少一个空格,竟的我们开了这样大的一个玩笑,使许多答题者纷纷落入陷阱。可见缺乏细致求精的精神。
好了,我来说正确的运行结果吧,就是无任何输出,只是做了一次空操作。
原因就在于将 case 1:错写成 case1:。前者表示是当情况等于 1 时,执行后续语句。而后者只是一个写错了的标识符。它隐瞒了编译,欺骗了众答题者。
经验呼,教训呼......