下列程序的输出结果是______。 #include<stdio.h> sb(int s[],int b) {static int n=3; b=s[n]; n--; return(b); }

admin2010-05-22  6

问题 下列程序的输出结果是______。
   #include<stdio.h>
   sb(int s[],int b)
   {static int n=3;
      b=s[n];
      n--;
      return(b);
   }
   main()
   {  int s[]={1,5,6,8};
      int i,x=0;
      for(i=0;i<4;i++)
      {x=sb(s,x);
      printf("%d",x);
      }
      printf("\n");
   }

选项

答案8651

解析 主程序中,第一次循环时,i=0,调用sb(s,x)子函数,此时n=3,x=s[n]=s[3]=8,然后将n减1变为2;第二次循环时,i=1,调用sb(s,x)子函数,因为将n定义为了静态变量,所以此时n=2,返回x=s[n]=s[2]=6;第三次循环时,i=2,调用sb(s,x)子函数,此时 n=1,返回x=s[n]=s[1]=5;第四次循环时,i=3,调用sb(s,x)子函数,此时n=0,返回x=s[n]=s[0]=1。此程序实际上是将数组s逆序输出。
转载请注明原文地址:https://jikaoti.com/ti/DWI0FFFM
0

最新回复(0)