for循环的语句执行顺序

在一个技术QQ群中,试着做了一道C的题,感觉是考察for循环的执行流程.

原题: 在C语言中,下列代码的输出结果是 ( ) (选择一项)

void  main( )
{
  
int  i  =   0 , j  =   10 ;
    
for (i = 0 ;i < j;i ++ ,j -- )
    {
        
if (j == 10 )
        {
            printf(
" %d,%d  " ,i,j);
            j
-- ;
        }
        j
++ ;
    }
    printf(
" %d,%d  " ,i,j);
}

  a) 
0 , 10
    
9 , 9

  b) 
0 , 10
    
10 , 10

  c) 
10 , 10

  d) 
9 , 11

群里居然有不少人都选了B,那个提问者还一直在问正确的结果。

最终的正确结果是:A.

哈哈,好基本的知识。

后来偶就顺手写了一个代码,大家做了它可以对for循环的运算顺序就比较清楚啦。


int  print1( int  i, int  j)
{        
    printf(
"  执行判断条件,i=%d,j=%d  " ,i,j);
    
return   1 ;
}

void  main( )
{
    
int  i  =   0 , j  =   10 ;
    
    
for (i = 0 ;((print1(i,j))  &&  (i < j));
        i
++ ,j -- ,printf( " 执行for()中的第三个语句,i=%d,j=%d  " ,i,j))
    {
        
if (j == 10 )
        {
            printf(
" %d,%d  " ,i,j);
            j
-- ;
        }
        j
++ ;
        printf(
" 执行for循环体中的最后一句,i=%d,j=%d  " ,i,j);
    }
    printf(
"  %d,%d  " ,i,j);
}

 运行结果是:


执行判断条件,i=0,j=10
0,10

执行for循环体中的最后一句,i=0,j=10
执行for()中的第三个语句,i=1,j=9

执行判断条件,i=1,j=9
执行for循环体中的最后一句,i=1,j=10
执行for()中的第三个语句,i=2,j=9

执行判断条件,i=2,j=9
执行for循环体中的最后一句,i=2,j=10
执行for()中的第三个语句,i=3,j=9

执行判断条件,i=3,j=9
执行for循环体中的最后一句,i=3,j=10
执行for()中的第三个语句,i=4,j=9

执行判断条件,i=4,j=9
执行for循环体中的最后一句,i=4,j=10
执行for()中的第三个语句,i=5,j=9

执行判断条件,i=5,j=9
执行for循环体中的最后一句,i=5,j=10
执行for()中的第三个语句,i=6,j=9

执行判断条件,i=6,j=9
执行for循环体中的最后一句,i=6,j=10
执行for()中的第三个语句,i=7,j=9

执行判断条件,i=7,j=9
执行for循环体中的最后一句,i=7,j=10
执行for()中的第三个语句,i=8,j=9

执行判断条件,i=8,j=9
执行for循环体中的最后一句,i=8,j=10
执行for()中的第三个语句,i=9,j=9

执行判断条件,i=9,j=9

9,9
--------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值