请补充函数fun(),该函数的功能是把数组aa中的偶数元素按原来的先后顺序放在原数组后面。例如,输入“33,67,42,58,25,76,85,16,41,56”,输出结果“33,67,25,85,41,42,58,76,16,56”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:define N 10void fun (int aa [] ){int i, j=0,k=0;int bb [N];for (i=0;

题目

请补充函数fun(),该函数的功能是把数组aa中的偶数元素按原来的先后顺序放在原数组后面。

例如,输入“33,67,42,58,25,76,85,16,41,56”,输出结果“33,67,25,85,41,42,58,76,16,56”。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

define N 10

void fun (int aa [] )

{

int i, j=0,k=0;

int bb [N];

for (i=0;i<N; i++)

{

if (【 】)

bb [k++] =aa [i];

else

aa [ j ++ ] =aa [i];

}

for(i=0;【 】;i++,j++)

aa[j] =bb [i];

}

main ( )

{

int i;

int aa[N]={33, 67,42,58,25, 76, 85, 16,

41,56};

clrscr ();

printf("\n*** original list ***\n");

for (i=0;i<N; i++)

printf ("%4d", aa [i] );

fun (aa);

printf("\n*** new list ***\n ");

for (i=0; i<N; i++)

printf ("%4d", aa [i] );

}


相似考题
更多“请补充函数fun(),该函数的功能是把数组aa中的偶数元素按原来的先后顺序放在原数组后面。 例如,输 ”相关问题
  • 第1题:

    请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。

    例如,输入如下整数:876 675 896 10l 30l 401 980 431451 777则输出结果为:6,980

    注意:部分源程序在文件PROGl.C文件中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:(1)该程序功能是求最大元素在数组中的下标。它的解题思路是,用最大值变量max标记第一个待找数据,逐个把所有待找数据和max进行比较,并用pos标记其当前最大值所在位置,从而找出最大值。(2)从已给部分源程序的main主函数开始入手,核心函数“fun(a,10,&k);”中的参数a存放着给出的整数,fun函数实现查找最大元素的下标。

  • 第2题:

    请编写函数fun,函数的功能是:移动一维数组中的内容:若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。

    例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10:p的值为3。移动后,一维数组中的内容应为:5, 6, 7, 8, 9, 10, 1, 2, 3,4。

    注意:部分源程序在文件PROGl.C中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:该程序功能是移动一维数组中的内容。解题思路首先将字符串拷贝到一个临时的数组,然后将字符串进行前移操作,最后将由于前移覆盖掉的字符,由临时数组中拷贝到指定字符串。

  • 第3题:

    程序定义了NxN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。

    例如:a数组中的值为:

    则返回主程序后s的值应为:3.375。

    注意:部分源程序存在文件PROGl.C文件中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:该程序功能是求出数组周边元素的平均值。其中周边元素是指第一行的元素的行下标为0,或者第n行的元素行下标为n-1,或者第一列元素的元素列下标为0,或者第n列的元素的列下标为n-1。

  • 第4题:

    请补充函数fun(),该函数的功能是:把数组aa中元素下标为偶数的元素按从小到大重新保存在原数组中,其它元素位置不变。

    例如,输入“33,67,42,58,25,76,85,16,41, 56”,则输出“25,67,33,58,41,76,42,16,85,56”。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<s tdio. h>

    define N 10

    void fun(int aa[])

    {

    int i, j, t;

    for (i=0; i<N;i=i+2)

    {

    for(【 】; j<N; j=j+2)

    if (【 】)

    {

    t=aa [j];

    aa [j] =aa [i];

    aa [i] =t;

    }

    }

    }

    main ()

    {

    int i;

    int aa[N]={33, 67,42, 58, 25, 76, 85, 16,

    41, 56};

    clrscr ();

    printf("\n*** original list ***\n");

    for(i=0; i<N; i++)

    printf ("%4d", aa [i] );

    fun (aa);

    printf("\n*** new list ***\n");

    for(i=0; i<N; i++)

    printf ("%4d", aa [i] );

    }


    正确答案:j=i或j=i+2 aa[i]>aa[j]
    j=i或j=i+2 aa[i]>aa[j] 解析:第一空:本题采用选择法进行排序。选择法的算法思路是:如果有n个数则从头到倒数的第2个数一个一个往后走动,每走动一个数总是将这个数与其后的所有数进行两两比较,在比较时按题目要求的顺序将进行比较的这两个数排序 (即交换)。所以此空填j=i,而填j=i+2也可以,因为如果第一次执行循环体时j=i,则aa[i]和aa[j]是同一个元素,不会引起任何改变,所以可以从它的下一次循环刀:始,即j=i=2。第二空:两两比较时,如果后面的元素比前面的元素小,则将两数交换,实现从小到大排列。

  • 第5题:

    程序定义了NxN的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m。

    例如:若m的值为2,a数组中的值为:

    注意:部分源程序存在文件PROGl.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:该程序功能是使数组右上半三角元素中的值乘以m。本题中首先要确定右上角半角元素的特点,然后对元素逐个进行乘以m的操作。其中,右上角的元素是行下标小于等于列下标的元素。