下列给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]…中,把奇数从数组中删除,偶数的个数通过函数值返回。
例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后,a所指数组中的数据为:4、2、6、8,返回值为4。
请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:
不得增行或删行,也不得更改程序的结构!
【试题源程序】
#include
#define N 9
int fun(int a[],int n)
{ int i,j;
j=0;
for(i=0;i< n;i++)
/**********found**********/
if(【1】==0){
/**********found**********/
【2】=a[i];j++;
}
/**********found**********/
return 【3】
}
main()
{ int b[N]={9,1,4,2,3,6,5,8,7},i,n;
printf("\nThe original data:\n");
for(i=0,i< N,i++)
printf("%4d",b[i]);
printf("\n");
n=fun(b,N);
printf("\nThe number of even:%d\n",n);
printf("\nThen even:\n");
for(i=0;i< n;i++)
printf("%4d",b[i]);
printf("\n");
}
【正确答案】【1】a[i]%2
【2】a[j]
【3】j
【答案解析】填空【1】:if语句条件表达式,判断数组元素是否为偶数,对2求余,结果为0,则为偶数;结果为1则为奇数。
填空【2】:如果该数组元素是偶数,则将其值保存。
填空【3】:最后按要求将偶数个数通过return语句返回给main函数。