函数fun的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。 例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、8、9、5、

admin2020-01-10  32

问题 函数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  #include<stdio.h>
2  #define N 9
3   void fun(int a[],int n)
4  { int i,t,p;
5   /**********found**********/
6   p=(n%2==0)?n/2:n/2+__1__;
7    for(i=0;i<n/2;i++)
8    {
9   t=a
10   /**********found**********/
11   a=a[p+__2__];
12   /**********found**********/
13   __3__=t;
14     }
15  }
16  main()
17   {int b[N]={1,2,3,4,5,6,7,8,9},i;
18   printf(’’\nThe original data:\n’’);
19  for  (i=0;i<N;i++) printf(’’%4d’’,b);
20   printf(’’\n’’);
21    fun(b,N);
22   printf(’’\nThe data after moving:\n’’);
23  for  (i=0;i<N;i++)printf(’’%4d’’,b);
24   printf(’’\n’’);
25   }

选项

答案(1)1 (2)i (3)a[p+i]

解析 函数fun的功能是将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。
    第一空:“p=(n%2==0)?n/2:n/2+__1__;”和“a=a[p+__2__];”  “n%2==0”判断是否是偶数,a和a[p+__2__]交换,如果n是偶数,a[0]和a[n/2]交换,如果n是奇数,那么a[0]和a[n/2+1]交换,依此类推,故n为偶数时a和a[i+n/2]交换,n为奇数时a和a[i+n/2+1]交换。因此如果n是奇数的话,p应该等于n/2+1,故第一空处应为“1”。
    第二空:由上分析可知,a和a[i+p]交换,故第二空应为“i”。
    第三空:“t=a;a=a[p+i];”,故第三处应该是把a赋值给a[p+i],a保存在t中,故第三空应为“a[p+i]”。
转载请注明原文地址:https://kaotiyun.com/show/kXCp777K
0

相关试题推荐
最新回复(0)