下面程序的运行结果是:[ ]。 fun(int t[],int n) { int i,m; if(n=1) return t[0]; else if(n>=2) {m=fun(t,n-1);return m;}

admin2009-03-05  37

问题 下面程序的运行结果是:[  ]。
   fun(int t[],int n)
   { int i,m;
    if(n=1) return t[0];
    else
      if(n>=2) {m=fun(t,n-1);return m;}
   }
   main()
   { int a[]={11,4,6,3,8,2,3,5,9,2};
    printf("%d\n",fun(a,10));
   }

选项

答案11

解析 此题主要考核的知识点是数组名作为函数参数及函数调用牙口参数的传递。调用实参可知n=10,形参数组t指向实参a的首地址t[0]=11。执行fun()函数的if-else语句,因为n=10所以执行else语句,在满足if(n>=2)的条件下:m=fun(t[0],9), m=fun(t[0],8), m=fun(t[0],7),......m=fun(t[0],2), .m=fun(t[0],1),当n=1时满足if(n=1)的条件,所以执行此处的return语句,返回数组首地址指向的值t[0],所以答案为11。
转载请注明原文地址:https://kaotiyun.com/show/2lXp777K
0

最新回复(0)