A-A+

下列程序的输出结果是______。 include<stdio.h> sb(int s[]

2022-08-12 18:21:11 问答库 阅读 197 次

问题详情

下列程序的输出结果是______。 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=O,调用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=O,返回x=s[n]=s[0]=1。此程序实际上是将数组s逆序输出。

考点:程序