C语言 百科园上的 请帮帮忙,好急的,明天就考试了#(惊哭)基本上都有答案,但不懂为什么,求解释

2025-06-23 21:16:31
推荐回答(1个)
回答1:

  1. 因为if语句后只能接一条语句,如果有多条语句要用大括号括起来,D的if语句只做了c=a;一条语句。

  2. 第二题也是类似第一题,while后面没用大括号把两条语句括起来,所以while实际只执行了前一条语句,i没有变化所以是死循环。

  3. 第一次循环,x=1,输出1;条件为!(--x),也就是!0,0代表假,!0也就是为真,所以执行第二循环,此时x=-2,输出-2;回到while条件,此时为!(-2),非0即为真,所以!(-2)为假,结束循环。