C语言问题,求大神解答
1)以下程序运行结果:________。
#include<stdio.h>
intfunc(intn)
{if(n==1)return 1;
elsereturn(n*func(n-1));
}
main()
{
intx,y=5;
x=func(y);
printf("%d!=%d\n",y,x);
}
}
2)下面程序的运行结果是:__zhao_______。
#include"stdio.h"
structsst
{intnum;
charname[10];
intage;
};
voidfun(struct sst *p)
{
printf("%s",(*p).name);
}
intmain()14
{struct sststudents[3]={{2001,"zhang",20},{2002,"wang",19},{2003,"zhao",18}};
fun(students+2);
}}
3)下面程序的运行结果是:_________。
#include"stdio.h"
#defineN 20
voidrr(int *p)
{int *s=p+N-1,m;
while(p<s)\*将数组前、后元素值交换,即a[0]与a[39]交换,a[1]与a[38]交换….. ,交换后数组a的值:38 36 34 32 ……2 0 *\
{m=*p;
*p++=*s;
*s--=m; }
return;
}
voidmain(void)
{inti,a[N];
for(i=0;i<N;i++)\*初始化数组a后:0 2 4 6 8……38,循环结束,i=21 *\
a[i]=i*2;
rr(a);\*用数组名a作为实参,调用函数rr*\
while(i>0)
{printf("%3d",a[i-1]);\*输出a[19],a[14],a[9],a[4]的值0 10 20 30*\
i=i-5;
}
}
4)下面程序的运行结果是:_________。
#include<stdio.h>
voidfun(int *s)
{staticintj=2;
do
{s[j]+=s[j+1];
}while(--j>3);
}
main()
{intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)
fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
5)下面程序的运行结果是:_________。15
!......!3!2132nxxxxn
#include"stdio.h"
intfuna(inta)
{int b=0;
staticintc=1;
a=c++,b++;
return (a);
}
int main()
{inta=3,i,k;
for(i=0;i<2;i++)
k=funa(a++);
printf("%d\n",k);
}