请补充函数fun(),该函数的功能是:从键盘输入一个下标n,把数组aa中比元素aa[n]小的元素放在它的左边,比它大的元素放在它的右边,排列成的新数组仍然保存在原数组中。
例如,数组aa={33,67,42,58,25,76,85,16,41, 56},输入3。
结果输出“33,42,25,16,41,56,58,67,76,85”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仪在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
define N 10
void fun(int aa[],int n)
{
int i,j=0,k=0,t;
int bb[N];
t=aa[n];
for(i=0;i<N;i++)
{
if(aa[i]>t)
bb[j++]=aa[i];
if(aa[i]<t)
aa[k++]=aa[i];
}
【 】;
for(i=0;【 】;i++, k++)
aa[k]=bb[i];
}
main()
{
int i,n;
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]);
printf("\n suffix n\n");
scanf("%d",&n);
fun(aa,n);
printf("\n*** new list ***\n");
for (i=0;i<N; i++)
printf("%4d", aa[i]);
}
第1题:
请补充函数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]);
}
第2题:
请编写一个函数fun(),它的功能是:找出一维数组元素中最大的值和它所在的下标,最大值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<stdlib.h>
include<stdio.h>
void fun(int a[],int n, int *max,int *d)
{
}
main()
{
int i, x[20], max, index, n=10;
randomize();
for(i=0; i<=n; i++)
{
x[i]=rand()%50;
printf("%4d",x[i]);
/*输出一个随机数组*/
}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);
}
第3题:
(11)己知a所指的数组中有N个元素。函数fun的功能是,将下标k(k>0)开始的后续元素全部向前移动一个位置。请填空。
void fun(int a[N],int k)
{ int i;
for(i=k;i<N;i++) a[ 【11】 ]=a[i];
}
第4题:
请补充main函数,该函数的功能是:如果数组aa的前一个元素比后一个元素小,则把它保存在数组比中并输出。
例如,输入“40,51,62,33,35,52,48,95,66, 73”,则结果输出“40,51,33,35,48,66”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
include <stdio. h>
define N 10
main ( )
{
int i, n=0;
int aa [N]={40, 51, 62,33, 35, 52, 48, 95,
66,73};
int bb[N];
clrscr ();
for (i=0; i<【 】; i++)
if (aa [i] <aa [i+l] )
【 】;
printf("\n*** display bb ***In");
for (i=0; i<n; i++)
printf("bb[%d]=%2d ",【 】);
}
第5题:
请补充函数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] );
}