精通C语言的网友们请进

来源:百度知道 编辑:UC知道 时间:2024/07/07 01:34:52
当执行以下程序段后,i的值是( )、j的值是( )、k的值是( )。
int a,b,c,i,j,k;
a=10;b=c=d=5;i=j=k=0;
for(;a>b;++b)i++;
while(a>++c)j++;
do k++;while(a>d++);

我有一点不懂,就是不知道运算顺序,是先把每个循环运算完毕后再算下一个循环呢还是统一运算?
例如是先把这个循环for(;a>b;++b)i++;运算完毕后再算while(a>++c)j++;
然后再算这个循环do k++;while(a>d++);呢?还是每个循环一步一步的来算?

下面我加了注释了
先做for循环,完了做while循环,最后do while 循环~
do是先做后判断,所以比第一个for循环多一
然后就是 i++ 和++i 的问题,这个一个是先调用i 一个是i+1后再调用
有问题,hi我~
#include "stdio.h"
void main()
{
int a,b,c,i,j,k,d;
a=10;b=c=d=5;i=j=k=0;
for(;a>b;++b)
i++;//10>5,b=6,7,8,9,10 i=5
while(a>++c)
j++;//10>6,c=7,8,9,10 j=4
do
k++;//k=1
while(a>d++);//10>5,6,7,8,9,10,k=6

printf("%d\t%d\t%d\t",i,j,k);
}

三个循环之间是独立的,依次进行。如果是
for(;a>b;++b)
{
i++;
while(a>++c)
{
j++;
do k++;while(a>d++);
}
}

就会是你说的后一种情况了

先执行for(;a>b;++b)i++;一直到a>b条件不满足,再执行while(a>++c)j++;同样,直到当()条件不满足时,才开始执行do k++;while(a>d++);这3个循环之间是相互独立的,所以我们就一个语句一个语句的执行下来。。。。
如果是嵌套执行就该有{}将被嵌套的包装起来,比如:
for(;a>b;++b)
{
i++;
while(a>++c)
{
j++;
{
do k++;while(a