选择题 29.  有下列程序:
    int fun(int n)
    {  if(n==1)}return 1;
    else
    return(n+fun(n-1));
    }
    main()
    {  int x;
    scanf("%d",&x);x=fun(x);printf("%d<n",x);
    }
    运行程序时,给变量x输入10,程序的运行结果是______。
【正确答案】 A
【答案解析】 本题在函数int fun(int n)的定义中又出现了对函数fun()的调用,所以函数fun()是递归函数。因而在主函数中调用x=fun(x)时,当输入10赋给变量x时,递归调用的过程为:
   fun(10)=10+fun(9)=10+9+fun(8)=10+9+8+fun(7)
   =10+9++8+7+fun(6)=10+9++8+7+6+fun(5)
   =10+9++8+7+6+5+fun(4)
   =10+9++8+7+6+5+4+fun(3)
   =10+9++8+7+6+5+4+3+fun(2)
   =10+9++8+7+6+5+4+3+2+fun(1)
   =10+9++8+7+6+5+4+3+2+1+fun(0)
   =10+9++8+7+6+5+4+3+2+1=55