二、填空题
11.5 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入
PROG ABCD EFGH IJKL
则输出结果为_____。
main(int argc, char *argv[])
{ while(--argc>0) printf("%s",argv[argc]);
printf("\\n");
}
答案:IJKLEFGHABCD
11.6 以下程序的输出结果是_____。
fun(int x)
{ int p;
if(x==0||x==1) return (3);
p=x-fun(x-2);
return p;
}
main()
{ printf("%d\\n",fun(9)); }
答案:7
11.7 以下程序的输出结果是_____。
fun(int n,int *s)
{ int f1,f2;
if(n==1||n==2) *s=1;
else
{ fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
}
main()
{ int x;
fun(6,&x);
printf("%d\\n",x);
}
答案:8
11.8 以下程序调用invert函数按逆序重新放置a数组中元素的值,a数组中的值在main函数中读入。请填空。
#define N 10
void invert(int *s,int i, int j)
{ int t;
if(i
{ t=*(s+i); *(s+i)=_____; *(s+j)=t;
invert(s,_____,j-1);
}
}
main()
{ int a[N],i;
for(i=0; i<n; p="" scanf(?%d?,a+____);
invert(a,0,N-1);
for(i=0; i<n; p="" i++)="" printf(?%d?,a[i]);
printf("\\n");
}
答案:*(s+j) i+1 i