万能百科  > 所属分类  > 

下列程序执行输出的结果是()。 #include f(int a) {int b=0; static c=3; a=C++;b++; re

下列程序执行输出的结果是( )。

#include<stdio.h>

f(int a)

{ int b=0;

static c=3;

a=C++;b++;

return(a);

}

main()

{ int a=2,i,k;

for(i=0;i<2;i++)

k=f(a++);

printf("%d\n",k);

}

A.3

B.4

C.5

D.6

正确答案:

B解析:本题考查函数调用时的参数传递。在函数调用时,static变量在函数调用结束后所做的所有变化均保持(即上次调用结束时的值)。 在主函数中,第一次循环,i=0,调用k-f(a++)=f(2),调用完之后才将a加1,a变为3,在f(2)中,先将c=3赋值给a返回,然后将c加1,得到k=a=3,c=4。 第二次循环,i=1,调用k=f(a++)=f(3),调用完之后才将a加1,a变为4,在f(3)中,先将c=4赋值给a返回,然后将c加1,得到k=a=4,c=5。

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签