若有以下程序: #iinclude im a=2; int f(int m) { static int n; n=0;n++;a++ return n+m+a: } main( ) { int k; f

admin2021-07-09  38

问题 若有以下程序:
  #iinclude
  im 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、l、2、3,同时也作为实参通过调用函数f传递给形参变量m。由于变量a是全局变量,变量n是静态变量,因此k=0时,f函数中,语句retum  n+m+a;即l+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/8zkp777K
0

最新回复(0)