选择题   若有以下程序:
    #include  <stdio.h>
    int  a=2;
    int f(int m)
    {  static  int  n;
    n=0;  n++;  a++;
    return  n+m+a;
    }
    main()
    {  int k;
    for(k=0;k<4;k++)  printf('%d,',f(k));
    }
    则程序的输出结果是______。
 
【正确答案】 C
【答案解析】主函数中变量k作为for语句的循环变量,取值0、1、2、3,同时也作为实参通过调用函数f传递给形参变量m。由于变量a是全局变量,变量n是static静态变量,因此k=0时,f函数中,语句return n+m+a;,即返回1+0+3=4;k=1时,f函数中,语句return n+m+a;,即返回2+1+3=6;k=2时,f函数中,语句return n+m+a;,即返回3+2+3=8;k=3时,f函数中,语句return n+m+a;,即返回4+3+3=10。因此选项C正确。