问题
填空题
下列程序的输出结果是______。
#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(x, x)子函数,此时n=3, x=s[n]=s[3]=8,n--变为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。