三部曲式结构图:C语言编程高手请进

来源:百度文库 编辑:高校问答 时间:2024/05/10 13:10:15
main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d", x);
else printf("%d", x++);
}
程序运行后,如果从键盘上输人5,则输出结果是____________

输出结果为:4
在if语句后,x被自减为4,在执行else后的printf时,x仍然为4,在这句之后才加为5。这是x++和++x的区别。

这道题这样改就清楚了:

main()
{
int x;
scanf("%d",&x);

x--;//独立的拿出来,所以先进行x--,然后x为4。

if(x<5) printf("%d", x);
else printf("%d", x++);
}

输出结果为4
因为x--是先调用后自减.调用的时候x只不变,也就是说x--<5为假,所以不执行printf("%d", x); 而是执行else printf("%d", x++);但是前一次调用后x自减一次变为4,在第二次调用的时候x值仍为4,所以输出的x值为4,但是执行了else printf("%d", x++);之后x 的值就变为5了

输出结果为:4
在if语句后,x被自减为4,在执行else后的printf时,x仍然为4,在这句之后才加为5。这是x++和++x的区别。

4
第3行 将5赋给x
第4行 由于x=5,所以不成立,但此行之后,由于x--,x=4
第5行 输出x,x为4,但此行之后,由于x++,x=5
输出结果为4

4,x--是先算再自减