一、程序填空 共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; } main() { int xx[N]; int yy[N]; int num=0,n=0,i=0; printf(\ do { scanf(\ }while(xx[num++]!=0); n=fun(xx,yy,num); printf(\ for(i=0;i printf(\} 答案: 1). xx[i] 2). bb[n++]=xx[i] 第5题 (30.0分) 题号:633 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:对只包含'-'和字母字符的字符串str进行如下处理: 删除str中前导和尾部连续的'-'字符,保留串中字母字符以 及字母间的'-'字符。 例如,str中初始字符串为\。 处理后,str中的字符串为\。 程序中isalpha函数功能是判断参数是否是字母,是字母, 函数值为真,否则函数值为假。 --------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。 -------------------------------------------------------*/ #include char str[]={\ int i,start,end; i=0; while(str[i++]=='-') ;