单选题

读下面程序,回答问题

#include"stdio.h"

int fun(int *a,int n)

{

     if(n>1)  return *a+fun(a+1,n-1);

else  

     return *a;

}

void main()

{

    int a[10]={1,2,3,4,5,6,7,8,9,10},s;

s=fun(a+3,3);

printf("%d\n",s);

}

数fun与下面非递归程序等价的是(    )

A

int fun(int *a,int n)

      {

     int i,s=0;

for(i=0;i<n;i++)

s=s+a[i];

return s;

  }

B

int fun(int *a,int n)

      {

     int i,s=0;

for(i=0;i<n;i++)

s=s+*a;

return s;

  }

C

int fun(int *a,int n)

      {

     int i,s=0;

for(i=0;i<n;i++)

s=a[i];

return s;

  }

D

int fun(int *a,int n)

      {

     int i,s=0;

for(i=0;i<n;i++)

s=s+a[n-i];

return s;

  }

赣ICP备20007335号-2