选择题
有以下程序:
#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,。
提交答案
关闭