填空题
下列给定程序中,函数fun()的功能是:将形参a所指数组中的前半部分元素中的值与后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。
例如,若a所指数组中的数据为1、2、3、4、5、6、7、8、9,则调换后为6、7、8、9、5、1、2、3、4。
请在标号处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构。
试题程序
#include <stdio.h>
#define N 9
void fun(int a[], int n)
{
int i, t, p;
p=(n% 2==0)? n/2:n/2+______;
for(i=0; i<n/2; i++)
{ t=a[i];
a[i]=a[p+______];
______=t;
}
}
main()
{ int b[N]={1, 2, 3, 4, 5, 6, 7, 8,
9}, i;
printf("/nThe original data:/n");
for(i=0; i<N; i++)
printf("% 4d", b[1]);
printf("/n");
fun(b, N);
printf("/nThe data
after moving:/n");
for(i=0; i<N; i++)
printf("% 4d", b[i]);
printf("/n");
}
【正确答案】
1、1
i
a[p+i]或*(a+p+i)
【答案解析】