下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]…中,把偶数从数组中删除,奇数个数通过函数值返回。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 9
int fun(int a[], int n)
int i, j;
j=0;
for(i=0; i<n; i++)
/******************found*******************/
if(a[i]%2== (1) )
/******************found*******************/
a[j]=a[i]; (2) ;
/******************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 odd: %d\n", n);
printf("\nThe odd number:\n");
for(i=0; i<n; i++)
printf("%4d",b[i]);
printf("\n");
参考答案:j
解析: 填空1:根据题意要保留奇数删除偶数,if语句用来判断数组元素是否为奇数,奇数不能被2整除,所以填入if(a[j]%2==1)。
填空2:将奇数赋值给数组元素,数组下标递增。
填空3:数组中奇数的个数通过函数返回值返回,所以填入j。