一、程序填空 共50题 (共计1500分) 第1题 (30.0分) 题号:625
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:有一整数数组x(正序排列),判断是否有数组元素x[i]=i 的情况发生。
-------------------------------------------------------*/
int index_search(int x[], int n) {
int first = 0; int last = n-1; int middle, index; index = -1;
while (first <= last) {
middle = (first + last) / 2; /***********SPACE***********/ if (【?】)
{ index = middle; break; }
/***********SPACE***********/
else if (【?】) last = middle - 1; else
first = middle + 1; }
return index; }
#include  
int x[] = { -1, 0, 1, 3, 5, 7, 9, 10}; int n = sizeof(x)/sizeof(int); int answer, i;
printf(\ printf(\ printf(\
for (i = 0; i < n; i++) printf(\
/***********SPACE***********/ 【?】; if (answer >= 0)
printf(\ else
printf(\} 答案:
1). x[middle] == middle
   2). x[middle] > middle 或 middle 第2题 (30.0分)  题号:627  /*------------------------------------------------------- 【程序填空】  ---------------------------------------------------------   功能:调用函数fun计算m=1-2+3-4+??+9-10,并输出结果。   -------------------------------------------------------*/   int fun( int n) {    int m=0,f=1,i;    /***********SPACE***********/   for(i=1;【?】;i++)   {      m+=i*f;      /***********SPACE***********/     【?】;   }    /***********SPACE***********/   return 【?】; }  main() {    printf(\} 答案:    1). i<=n     2). f= -f    3). m    第3题 (30.0分)  题号:628 /*  ------------------------------------------------------------------------------ 【程序填空】  ------------------------------------------------------------------------------  题目:请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行        四舍五入(保留两位小数)         例如:当x[10]={15.6, 19.9, 16.7, 15.2, 18.3, 12.1, 15.5, 11.0, 10.0, 16.0},        结果为:avg=15.030000。  ------------------------------------------------------------------------------  注意:仅能用表达式或语句替换填空标记,填勿改动主函数main和其他函数中的任何内容。  ------------------------------------------------------------------------------ */   #include double fun(double x[10]) {      int i;     long t;      double avg=0.0;     double sum=0.0;     for(i=0;i<10;i++)         sum += x[i];     avg=sum/10;  /***********SPACE***********/     avg=【?】;  /***********SPACE***********/     t=【?】;      avg=(double)t/100;     return avg; }  main() {      double avg,x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0};     int i;      printf(\    for(i=0;i<10;i++)          printf(\    printf(\    avg=fun(x);      printf(\}  答案:     1). avg * 1000 或 avg * 1000+5    2). ( avg + 5 )/10 或 avg/10    第4题 (30.0分)  题号:629 /*  ------------------------------------------------------------------------------ 【程序填空】  ------------------------------------------------------------------------------  题目:从键盘输入一组无符号整数并保存在数组xx[N]中,以整数0结束输入,要求这些        数的最大位数不超过4位,其元素的个数通过变量num传入函数fun()。请补充函        数fun(),该函数的功能是:从数组xx中找出个位和十位的数字之和大于5的所        有无符号整数,结果保存在数组yy中,其个数由函数fun()返回。         例如:当xx[8]={123,11,25,222,42,333,14,5451}时,bb[4]={25,42,333,5451}。 ------------------------------------------------------------------------------  注意:仅能用表达式或语句替换填空标记。填勿改动主函数main和其他函数中的任何内容。  ------------------------------------------------------------------------------ */   #include  int fun(int xx[],int bb[],int num) {      int i, n=0;     int g, s;      for(i=0;i /***********SPACE***********/         g=【?】;         s=xx[i]/10;         if((g+s)>5)  /***********SPACE***********/             【?】;     }      return n; }