下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]…中,把偶数从数组中删除,奇数个数通过函数值返回。 例如,若a所指数组中的数据最初排列为:9,1, 4,2,3,6,5,8,7,删除偶数后,a

admin2017-09-23  41

问题 下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]…中,把偶数从数组中删除,奇数个数通过函数值返回。
    例如,若a所指数组中的数据最初排列为:9,1, 4,2,3,6,5,8,7,删除偶数后,a所指数组中的数据为:9,1,3,5,7,返回值为5。
    请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#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%2==【1】)
  {
/*********found*********/
    a[j]=a【2】
    }
/*********found*********/
  return【3】
}
main()
{int b[N]={9,1,4,2,3,6,5,8,7},i,n;
  print f("\nThe original data:\n");
    for(i=0;i < N;i++)
    printf("%4 d",b);
    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("%4 d",b);
  printf("\n");
}

选项

答案(1)1 (2)j++ (3)j

解析 本题考查:if语句条件表达式;自增、自减运算符;函数返回值。
填空1:根据题目要求,需进行奇偶数的判定,可以通过if条件语句来判断数组元素是否为奇数,如果元素不能被2整除,则为奇数,所以填入if (a %2==1)。
填空2:将为奇数的元素重新存放到数组的前面,同时下标增1。
填空3:函数返回值需要返回数组中奇数的个数,因此返回变量j。
奇数和偶数的判定方法,对2求余运算,结果为0是偶数,结果为1是奇数。
自增1、自减1运算符:自增1运算符记为“++”,其功能是使变量的值自增1;自减1运算符记为“一一”,其功能是使变量值自减1。自增l、自减1运算符均为单目运算符,具有右结合性,有以下几种形式:
++i:i自增1后再参与其他运算。
一 一i:i自减1后再参与其他运算。
i++:i参与运算后,i的值再自增1。
i一一:i参与运算后,i的值再自减1。
转载请注明原文地址:https://jikaoti.com/ti/FFi0FFFM
0

最新回复(0)