2003年全国计算机等级考试四级上机题
1.去掉每组最后两个数,求剩下18个数的平均值,存入b[10]中,请5个升序,后5个降序排列
void js()
{ int i,j;
double t,aver;
for(i=0;i<10;i++)
{ aver=0.0;
for(j=0;j<18;j++) aver+=aa[i][j];
b[i]=aver/18; }
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
if(b[i]>b[j])
{ t=b[i];
b[i]=b[j];
b[j]=t; }
for(i=5;i<9;i++)
for(j=i+1;j<10;j++)
if(b[i]
{ t=b[i];
b[i]=b[j];
b[j]=t; }
}
2、先对每组数升序排列,去掉中间两数,求剩下18个数平均值,存如b[10]中。
void js()
{ int i,j,k,t;
double aver;
for(i=0;i<10;i++)
{ for(j=0;j<20;j++)
for(k=j+1;k<20;k++)
if(aa[i][j]>aa[i][k])
{ t=aa[i][j];
aa[i][j]=aa[i][k];
aa[i][k]=t; } }
for(i=0;i<10;i++)
{ aver=0.0;
for(j=0;j<20;j++) aver+=aa[i][j];
aver=aver-aa[i][9]-aa[i][10];
b[i]=aver/18; }
}
3.去掉每组的首尾两数,求剩下18个数平均值,存入b[10]中,并由大到小排列
void js()
{ int i,j;
double t,aver;
for(i=0;i<10;i++)
{ aver=0.0;
for(j=1;j<19;j++) aver+=aa[i][j];
b[i]=aver/18; }
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if(b[i]
{ t=b[i];
b[i]=b[j];
b[j]=t; }
}
4.每组升序排列,去掉中间4个数,求剩下数的平均值,存入b[10]中。
void js()
{ int i,j,k,t;
double aver;
for(i=0;i<10;i++)
{ for(j=0;j<20;j++)
for(k=j+1;k<20;k++)
if(aa[i][j]>aa[i][k])
{ t=aa[i][j];
aa[i][j]=aa[i][k];
aa[i][k]=t; } }
for(i=0;i<10;i++)
{ aver=0.0;
for(j=0;j<20;j++) aver+=aa[i][j];
aver=aver-aa[i][8]-aa[i][9]-aa[i][10]-aa[i][11];
b[i]=aver/16; }
}
5.每组数由小到大排列,在去掉中间两位数和最小的两位数,在计算平均值,存入b[10]中
void js()
{ int i,j,k,t;
double aver;
for(i=0;i<10;i++)
{ for(j=0;j<20;j++)
for(k=j+1;k<20;k++)
if(aa[i][j]>aa[i][k])
{ t=aa[i][j];
aa[i][j]=aa[i][k];
aa[i][k]=t; } }
for(i=0;i<10;i++)
{ aver=0.0;
for(j=0;j<20;j++) aver+=aa[i][j];
aver=aver-aa[i][0]-aa[i][1]-aa[i][9]-aa[i][10];
b[i]=aver/16; }
}
6.去掉每组数的最大值和最小值,求其于18个数平均值,存入b[10]中。
void js()
{ int i,j,k,t;
double aver;
for(i=0;i<10;i++)
{ for(j=0;j<20;j++)
for(k=j+1;k<20;k++)
if(aa[i][j]>aa[i][k])
{ t=aa[i][j];
aa[i][j]=aa[i][k];
aa[i][k]=t; } }
for(i=0;i<10;i++)
{ aver=0.0;
for(j=0;j<20;j++) aver+=aa[i][j];
aver=aver-aa[i][0]-aa[i][19];
b[i]=aver/18; }
}
7.在数组aa[10][20]中存有200个数(从in.dat文件里可以看到都是四位整数),用空格隔开, 首先把每组的20个数从小到大排序,再去掉每一行的中间的两个以及最大的两个数,再求出剩余的16个数的算术平均数依次存入bb[10]中。
void js()
{ int i,j,k,t;
double aver;
for(i=0;i<10;i++)
{ for(j=0;j<20;j++)
for(k=j+1;k<20;k++)
if(aa[i][j]>aa[i][k])
{ t=aa[i][j];
aa[i][j]=aa[i][k];
aa[i][k]=t; } }
for(i=0;i<10;i++)
{ aver=0.0;
for(j=0;j<20;j++) aver+=aa[i][j];
aver=aver-aa[i][9]-aa[i][10]-aa[i][18]-aa[i][19];
b[i]=aver/16; }
}
8.是aa[10][20] ,去掉中间2个后求平均值,结果存入bb[10]中 ,对bb[10]按从小到大顺序排序.
void js()
{ int i,j;
double t,aver;
for(i=0;i<10;i++)
{ aver=0.0;
for(j=0;j<20;j++) aver+=aa[i][j];
aver=aver-aa[i][9]-aa[i][10];
b[i]=aver/18; }
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if(b[i]>b[j])
{ t=b[i];
b[i]=b[j];
b[j]=t; }
}
9.由200个四位数存在数组aa[10][20]中,在去掉每行的最大两个数 求剩下的18个数的算术平均值依次存在b[10]中。
void js()
{ int i,j,k,t;
double aver;
for(i=0;i<10;i++)
{ for(j=0;j<20;j++)
for(k=j+1;k<20;k++)
if(aa[i][j]>aa[i][k])
{ t=aa[i][j];
aa[i][j]=aa[i][k];
aa[i][k]=t; }
for(i=0;i<10;i++)
{ aver=0.0;
for(j=0;j<18;j++) aver+=aa[i][j];
b[i]=aver/18; }
}
}
10.每一组不计最小的两个数的平均值。然后存入b[]数组
void js()
{ int i,j,k,t;
double aver;
for(i=0;i<10;i++)
{ for(j=0;j<20;j++)
for(k=j+1;k<20;k++)
if(aa[i][j]>aa[i][k])
{ t=aa[i][j];
aa[i][j]=aa[i][k];
aa[i][k]=t; } }
for(i=0;i<10;i++)
{ aver=0.0;
for(j=2;j<20;j++) aver+=aa[i][j];
b[i]=aver/18; }
}