一、程序填空题
在此程序中,函数fun的作用是:统计整型变量m中各数字出现的次数,并存放到数组a中,其中:a[0]存放0出现的次数,a[1]存放1出现的次数,……a[9]存放9出现的次数。
例如,若m=14579233,则输出结果应为:0,1,1,2,1,1,0,1,0,1。
#include <stdio.h>
void fun( int m, int a[10])
{ int i;
for (i=0; i<10; i++)
/**********found**********/
__1__ = 0;
while (m > 0)
{
/**********found**********/
i = ___2___;
a[i]++;
/**********found**********/
m = ___3___;
}
}
void main()
{ int m, a[10],i;
printf("请输入一个整数 : "); scanf("%d", &m);
fun(m, a);
for (i=0; i<10; i++) printf("%d,",a[i]); printf("\n");
}
答案:(1) a[i] (2) m%10 (3) m/10
二、程序修改题
在此程序中,函数fun的功能是求矩阵(二维数组)a[N][N]中每行的最小值,结果存放到数组b中。
假如:若a=
则结果应为1,5,9,13。
#include <stdio.h>
#define N 4
void fun(int a[][N], int b[])
{ int i, j;
for (i=0; i<N; i++)
{
/**********found**********/
b[i] = a[0][0];
/**********found**********/
for (j=1; j<N-1; j++)
/**********found**********/
if ( b[i] < a[i][j] )
b[i] = a[i][j];
}
}
void main()
{ int a[N][N]={{1,4,3,2},{8,6,5,7},{11,10,12,9},{13,16,14,15}},b[N]; int i;
fun(a,b);
for (i=0; i<N; i++) printf("%d,", b[i]);
printf("\n");
}
答案:(1) b[i] = a[i][0]; (2) for (j=1; j<N; j++) (3) if ( b[i] > a[i][j] )
三、程序设计题
在此程序中,编写函数fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a所指存放得分的数组,形参n中存放得分个数(n>2)。
例如,若输入9.9 8.5 7.6 8.5 9.3 9.5 8.9 7.8 8.6 8.4十个得分,则输出结果为:8.687500。
#include <stdio.h>
void NONO();
double fun(double a[ ] , int n)
{
}
void main()
{ double b[10], r; int i;
printf("输入10个分数放入b数组中 : ");
for (i=0; i<10; i++) scanf("%lf",&b[i]);
printf("输入的10个分数是 : ");
for (i=0; i<10; i++) printf("%4.1lf ",b[i]); printf("\n");
r = fun(b, 10);
printf("去掉最高分和最低分后的平均分 : %f\n", r );
NONO();
}
void NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i, j ;
double b[10], r ;
fp = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
for(j = 0 ; j < 10 ; j++) {
fscanf(fp, "%lf ", &b[j]) ;
}
r = fun(b, 10) ;
fprintf(wf, "%f\n", r) ;
}
fclose(fp) ;
fclose(wf) ;
}
答案:
double sum=0,max,min;int i;
max=min=a[0];
for(i=0;i<n;i++)
{
sum=sum+a[i];
if(max<a[i])max=a[i];
if(min>a[i])min=a[i];
}
sum=sum-max-min;
return(sum/(n-2));