选择题
32.
有以下程序:
#include<stdio.h>
int f(int k)
{ static int n=0;
int m=0:
n++;m++;k++;
return n+m+k;
}
main()
{ int k;
for(k=0;k<2;k++)printf("%d,",f(k));
printf("\n");
程序运行后的输出结果是______。
A、
3,5,
B、
3,6,
C、
3,7,
D、
0,3,
【正确答案】
A
【答案解析】
static静态变量只在声明时初始化一次。因此,第一次调用函数f(k=0),此时n=m=k=0,经过自增操作后,n=1,m=1,k=1,返回值为3;第二次调用函数f(k=1),此时n=1,k=1,m=0,经过自增操作后,n=2,k=2,m=1,返回值为5。故最终结果为3,5,故答案为选项A。
提交答案
关闭