菜鸟关于C语言中的数据调用问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 21:48:09
有如下两题
1.#include <stdio.h>
void main()
{
int x=23;
do
{
printf(“%d”, x--);
} while (!x);
}
该程序的执行结果是( B )
321 B. 23 C. 不输出任何内容 D. 陷入死循环
执行循环 输出x(x--是先调用x值在减一) 输出23 然后x=22 !x显然为假,跳出循环

2.有如下程序:
#include <stdio.h>
void main()
{
int n=9;
while (n>6)
{
n--;
printf(“%d”,n);
}
}
该程序段的输出结果是( B )
A. 987 B. 876 C. 8765 D. 9876

疑问在于关于i++(i--)和++i(--i)的调用先后。为什么第一题输出的时候要先输出原来的数据再自减,第二题却是输出自减以后的数据呢?
平时调用这种数据饿的时候有什么规则呢?
谢谢

楼主,你理解错了,n++,n--只在同一句中才会分先后顺序的。
例如第一段程序是printf(“%d”, x--); 那么就需要考虑先后;
第二段程序是 n--; printf(“%d”,n); 本来就已经分为两句了,就肯定是先执行n--了。
记住,只在同一句中考虑n++,n--的先后顺序。不同句子就按照句子顺序进行。