C语言问题,急急急...

2024-12-28 09:42:55
推荐回答(5个)
回答1:

楼主你好。

运行结果如黑框中所示:


你只要写:

first\nthird\n

就可以了,绝对没问题。(注:\n代表换行)

回答2:

这是运行结果,你自己看着怎么写吧。不过还是建议你这样写:

first

third

————        因为这是读程序填空题,又不是问答题。

回答3:

尊敬的金山用户您好:
输出为如下:
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作用一样
感谢您的支持,祝您生活愉快!

回答4:

运行如下,因为case1后面没有break,所以接着运行,就打印出third。

回答5:

路过,看见这么高悬赏的问题却始终却没有满意的答案。兴趣使然,参与一下。
这程序看起来很简单,一组嵌套的开关语句,开关值 x=1,y=0 明确给出,其运行结果表面一看必然就是
first
third
了。可 hjkbzw 所给的程序中隐藏着一个极易被初学者忽略的问题,那就是开关值的书写格式问题。
hjkbzw 可能是无心,但也可能是有意,将 case 1:写成了 case1:,只少一个空格,竟的我们开了这样大的一个玩笑,使许多答题者纷纷落入陷阱。可见缺乏细致求精的精神。
好了,我来说正确的运行结果吧,就是无任何输出,只是做了一次空操作。
原因就在于将 case 1:错写成 case1:。前者表示是当情况等于 1 时,执行后续语句。而后者只是一个写错了的标识符。它隐瞒了编译,欺骗了众答题者。
经验呼,教训呼......