itgle.com

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

题目

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

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

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

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

试题程序:

include <stdio.h>

define N 10

void fun(int aa[])

{

int i, j=0,k 0;

int bb IN];

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

{

if (【 】)

bb[k++] aa[i];

else

aa [j++] =aa Ii];

for(i=0; i<k;【 】)

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]);

}


相似考题
参考答案和解析
正确答案:aa[i]%2!=0或 aa[i]%2==1 i++j++
aa[i]%2!=0或 aa[i]%2==1 i++,j++ 解析:第一空:如果一个数对2求余,结果不为0,也就是等于1,则这个数为奇数,就把这个数先暂时存在数组bb中。否则这个数为偶数,就存在数组aa中。第二空:最后,将数组bb中的奇数都拷贝到数组aa中偶数的后面。每执行一次循环休,数组aa的下标j和数组bb的下标i都要加1。
更多“请补充函数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题:

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

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

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


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

  • 第3题:

    从键盘输入一组小写字母,保存在字符数组str中。请补充函数proc(),该函数的功能是:把字符数组str中字符下标为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入abcdefg,输出aBcDeFg。

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

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

    试题程序:


    正确答案:


    【解析】要将字符串中所有下标为奇数的小写字母转化为大写字母,应该检查字符串str中从第一个到最后一个字符,判断其下标是否为奇数,因此【l】填“str[i]!=ˊ\0ˊ”。每找到一个下标为奇数的小写字母。就将其转换为大写字母,大写字母的ASCⅡ码值比与其对应的小写字母小32,因此【2】填“32”。每判断完一个字符,要为检查下一个字符做准备,因此【3】填“i++”。

  • 第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,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。

    例如:a数组中的值为:

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

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

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


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