有以下程序: int a=4; int f(int n) {int t=0;static int a=5; if(n%2) {int a=6;t+=a++;} else{int a;7;t+=a++;} return

admin2010-12-10  31

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

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

答案B

解析  在主函数main()中定义了两个变量s和i,同时给s赋初值a=4,i赋初值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=4+12=16。当i=1时,执行“s+=f(i);”语句,调用f()并将i的初值1传递给形参n。首先执行if语句中的条件:n%2,条件为真,执行if
转载请注明原文地址:https://kaotiyun.com/show/9BPp777K
0

最新回复(0)