函数fun的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。
例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、8、9、5、1、2、3、4。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
1()
参考答案:A
解析:
本题中函数fun的功能是将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换,分两种情况,a的长度是奇数和偶数:a的长度是奇数时,最中间的元素不移动,将前半部分和后半部分对换;a的长度为偶数时,直接将前半部分和后半部分对换。
第一空:“p=(n%2==0)n/2:n/2+______;”和“a[i]=a[p+______];”“n%2==0”判断是否是偶数,a[i]和a[p+______]交换,如果n是偶数,a[0]和a[n/2]交换,如果n是奇数,那么a[0]和a[n/2+1]交换,依此类推,故n为偶数时a[i]和a[i+n/2]交换,n为奇数时a[i]和a[i+n/2+1]交换。因此如果n是奇数的话,p应该等于n/2+1,故第一空处应为“1”。
第二空:由上分析可知,a[i]和a[i+p]交换,故第二空应为“i”。
第三空:“t=a[i];a[i]=a[p+i];”,故第三处应该是把a[i]赋值给a[p+i],a[i]保存在t中,故第三空应为“a[p+i]”。