鹿晗付费歌曲百度云:后天考c语言,可是复习时候碰到一些困难,请问大家帮忙解答!急4

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 22:04:55
4)有以下程序
?? void f(int *x,int *y)
??{
??int t;
??t=*x;*x=*y;*y=t;
??}
??main()
??{
??int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
??p=a;q=&a[7];
??while(p<Q)
??{f(p,q);p++;q--;}
??for(i=0;i<8;i++)printf("%d,",a[i]);
??}
??程序运行后的输出结果是__D____。
??A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4,
??C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1,

void f(int *x,int *y) //交换x和y的数据。
??{
??int t;
??t=*x;*x=*y;*y=t;
??}
p=a;q=&a[7]; p取得a[0]的地址,q取得a[7]的地址。
while(p<Q) //依次交换a[0]&a[7],a[1]&a[6],a[2]&a[5],a[3]&a[4]的数据。
??{f(p,q);p++;q--;}

所以答案选D。

f的作用是用来交换两个储存空间的值。
主函数的循环是用比较法案从大到小排序。