有以下程序: #include im f(int n) {int t=0, a=5; if(n/2){int a=6;t+=a++; } else {int a:7;t+=a++; } retur

admin2021-04-28  17

问题 有以下程序:
    #include
    im f(int n)
    {int t=0,  a=5;
    if(n/2){int a=6;t+=a++;  }
    else    {int a:7;t+=a++;  }
    return t+a++;
    }
    main( )
    {int s=0,i=0;
    for(;i<2;i++)  s+= f(i);
    printf("%d\n",s);
  }
  程序运行后的输出结果是(    )。

选项 A、28
B、24
C、32
D、36

答案B

解析 在主函数main()中定义了两个变量s和i,同时给s和j赋初值0。当i=0时,执行“s+=f(i);”语句,凋用f()并将i的初值0传递给形参n。首先执行if语句中的条件:n/,2,条件为假,则执行else下的语句,a=7.t=7+0=7.使用return返回t,t=7+(a++)=7+5=12,此时a运算完后自增1,变为6;返回主函数中,s=0+12=12。当i=1时,执行“s+=f(i);”语句,调用f()并将i的初值1传递给形参n。首先执行if语句中的条件:n/2,条件为真,执行if下面的语句,t=0,a=6 t=0+6:6,使用return返回t,t=6+6=12,返回主函数中。s=12+12=24。最后输出的结果为24。因此B选项正确。
转载请注明原文地址:https://jikaoti.com/ti/pGz0FFFM
0

最新回复(0)