一、程序填空 共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; }