填空题 1.  函数fun()的功能是:逆置数组元素中的值,形参m给出数组中数据的个数。
    例如,若x所指数组中的数据依次为9、8、7、6、5,则逆置后依次为5、6、7、8、9。
    注意:部分源程序如下。
    请勿改动函数main()与其他函数中的任何内容,仅在fun()函数的横线上填写所编写的若干表达式或语句。
    试题程序:
    #include<stdio.h>
    void fun(int a[],int m)
    {
    int i,temp;
    for(i=0;i<______;i++)
    {
    temp=a[i];
    a[i]=a[m-1-______];
    ______=temp;
    }
    }
    void main()
    {
    int x[9]={9,8,7,6,5},i;
    printf("\nThe original data:\n");
    for(i=0;i<5;i++)
    printf("%4d",x[i]);
    printf("\n");
    fun(x,5);
    printf("\nThe data after invert:\n");
    for(i=0;i<5;i++)
    printf("%4d",x[i]);
    printf("\n");
    }
  • 1、
【正确答案】 1、m/2
   i
   a[m-1-i]    
【答案解析】 该题中函数的功能是逆置数组元素的值。此类题的解题思路,是在简单的两个数值交换的基础上,增加对数值定位的功能,也就是确定要交换的数值在数组中的位置。
   第一个空:对数组中的元素进行逆置,根据上面的分析,整个数组中元素交换的循环次数,应该是只需要交换整个数组长度的一半的次数,所以,第一个空应填“m/2”。
   第二个空:元素逆置,就是第一个和最后一个交换,依此类推。个数为m的数组中,与第i个元素相对应需要交换的元素是第(m-1-i)个元素,所以第二个空应填“i”。
   第三个空:根据两个元素交换的算法以及第i个和第(m-i-1)个元素交换的过程,第三个空应填“a[m-1-i]”。