一、程序填空题
在此程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回,并将大于平均值的数放在形参y所指数组中,在主函数输出。
例如,有10个数46、30、32、40、6、17、45、15、48、26,其平均值为30.500000。
主函数中输出:46 32 40 45 48。
#include <stdlib.h>
#include <stdio.h>
#define N 10
double fun(double x[],double *y)
{ int i,j; double av;
/**********found**********/
av=__1__;
/**********found**********/
for(i=0; i<N; i++)
av=av+__2__;
for(i=j=0; i<N; i++)
/**********found**********/
if(x[i]>av) y[__3__]= x[i];
y[j]=-1;
return av;
}
void main()
{ int i; double x[N],y[N];
for(i=0; i<N; i++){ x[i]=rand()%50; printf("%4.0f ",x[i]);}
printf("\n");
printf("\nThe average is: %f\n",fun(x,y));
for(i=0; y[i]>=0; i++) printf("%5.1f ",y[i]);
printf("\n");
}
答案:(1) 0.0 (2) x[i]/N (3) j++
二、程序修改题
在此程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。
例如,若m=2000,则应输出0.000160。
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
/*************found**************/
fun (int m)
{ double y=0, d;
int i;
/*************found**************/
for(i=100,i<=m,i+=100)
{d=(double)i*(double)i;
y+=1.0/d;
}
return(y);
}
void main()
{ int n=2000;
system("CLS");
printf("\nThe result is %1f\n",fun(n));
}
答案:(1) double fun (int m) (2) for(i=100;i<=m;i+=100)
三、程序设计题
在此程序中,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#define N 10
typedef struct ss
{ char num[10];
int s;
} STU;
void fun(STU a[], STU *s)
{
}
void main()
{
FILE *wf;
STU a[N]={{ "A01",81},{ "A02",89},{ "A03",66},{ "A04",87},{ "A05",77},
{ "A06",90},{ "A07",79},{ "A08",61},{ "A09",80},{ "A10",71}},m;
int i;
system("CLS");
printf("*****The original data*****\n");
for(i=0;i<N;i++)
printf("No=%s Mark=%d\n", a[i].num,a[i].s);
fun(a,&m);
printf("*****THE RESULT*****\n");
printf("The lowest :%s, %d\n",m.num,m.s);
/******************************/
wf=fopen("out.dat","w");
fprintf(wf,"%s, %d",m.num,m.s);
fclose(wf);
/*****************************/
}
答案:
int i;
*s=a[0]; /*先认为第1个值最小*/
for(i=0;i<N;i++) /*如果在循环的过程中再发现比第1个值更小的则赋给*s*/
if(s->s>a[i].s)
*s=a[i];