C填空题50题 下载本文

一、程序填空 共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 void main(void) {

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 #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 #define N 1000

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; }