若有以下程序 #include <stdio.h> int a=2; int f(int m) { static int n; n=0; n++; a++; retur

admin2021-07-09  29

问题 若有以下程序
     #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));
     }
则程序的输出结果是

选项 A、4,5,6,7,
B、4,7,10,13,
C、4,6,8,10,
D、3,5,7,9,

答案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选项正确。
转载请注明原文地址:https://kaotiyun.com/show/8vtp777K
0

最新回复(0)