机试过后很多热心的网友在考试吧论坛贴出了自己抽到的上级试题,考试吧经过筛选提供以下比较完整的机试题目,仅供参考。更多网友试题请到论坛参与讨论
机试一:
考试时间:9月23日 15:30
抽到题目:已知数据文件IN.DAT中存有200个两位数且相邻的两个数之间均不相等,并已调用函数readDat()把这些数存入数组b中,请考生编制一个函数jsVal(),实现的功能是对经常上下波动的数据可采用只记录峰值的数据压缩方法,即每次将采样到的当前值和前一次值比较,如数据变化方向改变(原递增现递减或原递减现递增),说明已过峰值,这时就将当前值记录下来,接着将结果依次存入数据b中(从0开始存放),注意数组b中的第一个数据a[0]原样存入b[0]单元中。最后调用输出函数writeDat()把结果c输出到文件OUT.DAT中。
例如:原数据: 35,69,87,73,62,54,60,70,......
压缩后: 35,73,60,......
注意:部分源程序存在文件PROG1.C文件中。
程序中已定义:a[200]、b[200]。
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat的内容。
补充函数:
void jsVal()
{ int i;
b[0]=a[0];cnt=1;
for(i=1;i<MAX-1;i++)
if((a>a[i-1]&&a>a[i+1])||(a<a[i-1]&&a<a[i+1])) b[cnt++]=a[i+1];
}
机试二:
考试时间:9月23日 15:00 (供大家参考一下,祝大家上机成功!)
已知在文件IN.DAT中存有N个实数(N<200), 函数ReadDat( )是读取这N个实数并存入数组xx中。请编制函数CalValue( ), 其功能要求: 1.求出这N个实数的平均值aver; 2.分别求出这N个实数中大于平均值aver的实数的整数部分值之和sumint以及该实数的小数部分值之和sumdec, 最后调用函数WriteDat()把所求的结果输出到文件OUT2.DAT中。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
void CalValue(void)
{
int i ;
long val ;
for(i = 0 ; i < N ; i++)
aver += xx ;
aver /= (double) N ;
for(i = 0 ; i < N ; i++) {
if(xx > aver) {
val = (long) xx ;
sumint += val ;
sumdec += (xx - val) ;
}
}
}
机试三:
考试时间:9月23日 14:00
抽到题目:已知在文件IN.DAT中存有10x20个实数, 并已通过函数ReadDat( )数组aa[10][20]中。请编制函数jsVal(), 其功能要求: 1.分别剔除每行的第一个和最后一个数,求出剩余18个数的平均值存入数组bb[10]中; 2.将bb[10]中的数按从达到小顺序排列,结果仍存入bb[10]中。 最后调用函数WriteDat()把所求的结果输出到文件OUT.DAT中。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
int aa[10][20];
float bb[10];
void jsVal()
{
int i,j;
float a;
for(i=1;i<=10;i++)
{
bb=0;
for(j=1;j<=19,j++)
bb+=aa[j];
bb/=18;
}
for(i=1;i<10;i++)
for(j=1;j<=10-i;j++)
if(bb<bb[i-1])
{
a=bb[j];
bb[j]=bb[j-1];
bb[j-1]=a;
};
}
机试四:
1.已知数据文件IN.DAT中存有10组每组20个四位数的数据, 每个数据间用空格分隔,并已调用读函数readDat()把这10组数据存入数组aa中(其中,aa定义为int aa[10][20]),请考生编制一函数jsVal(), 其功能是: 首先计算每组中的数属于奇数的算术平均值,然后取每组小于其算术平均值的最大一个四位数依次存入数组bb?其中,数组bb定义为int bb[10],其中bb[0]为第一组中符合条件的数,bb[1]为第二组中符合条件的数,其它依此类推),最后调用输出函数writeDat()把结果bb输出到文件OUT.DAT中。
注意: 部分源程序存在文件PROG1.C文件中。
程序中已定义全局变量: aa[10][20]、bb[10]
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
void jsVal()
{ int i,j,max,cnt;
double aver;
for(i=0;i<10;i++)
{ aver=0.0; cnt=0; max=0;
for(j=0;j<20;j++)
if(aa[j]%2) { cnt++; aver+=aa[j];}
if(cnt==0) aver=0.0;
else aver/=(double)cnt;
for(j=0;j<20;j++)
if(aa[j]<aver&&aa[j]>max) max=aa[j];
bb=max;
}
}
机试五:
已知数据文件IN.DAT中存有10组每组20个四位数的数据, 每个数据间用空格分隔,并已调用读函数readDat()把这10组数据存入数组aa中(其中,aa定义为int aa[10][20]),请考生编制一函数jsVal(), 其功能是: 首先计算每组中的数中十位数位置上的数字是3、6、9的数的算术平均值,然后取每组小于其算术平均值的最大一个四位数依次存入数组bb中(其中,数组bb定义为int bb[10],其中bb[0]为第一组中符合条件的数,bb[1]为第二组中符合条件的数,其它依此类推),最后调用输出函数writeDat()把结果bb输出到文件OUT.DAT中。
注意: 部分源程序存在文件PROG1.C文件中。
程序中已定义全局变量: aa[10][20]、bb[10]
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
void jsVal()
{ int i,j,max,cnt,sw;
double aver;
for(i=0;i<10;i++)
{ aver=0.0; cnt=0; max=0;
for(j=0;j<20;j++)
{ sw=aa[j]%100/10;
if(sw==3||sw==6||sw==9) { cnt++; aver+=aa[j];}
}
if(cnt==0) aver=0.0;
else aver/=(double)cnt;
for(j=0;j<20;j++)
if(aa[j]<aver&&aa[j]>max) max=aa[j];
bb=max;
}
}
机试六:
已知在文件IN.DAT中存有N个实数(N<200), 函数ReadDat( )读取这N个实数并存入数组xx中。
请编制函数CalValue( ), 其功能要求是:
1.求出这N个实数的平均值aver;
2.分别求出这N个实数的整数部分值的平均值averint 以及其小数部分值的平均值averdec。
最后调用函数WriteDat( )把所求的结果输出到文件OUT10.DAT中。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
void CalValue(void)
{
int i ;
for(i=0; i<N; i++) {
aver += xx ;
averint += (int) xx ;
}
averdec = aver - averint ;
aver /= (double) N ;
averint /= (double) N ;
averdec /= (double) N ;
}
机试七:
已知数据文件IN.DAT中存有10组每组20个四位数的数据, 每个数据间用空格分隔,并已调用读函数readDat()把这10组数据存入数组aa中(其中,aa定义为int aa[10][20]),请考生编制一函数jsVal(), 其功能是: 首先计算每组中的数的最大值和最小值的算术平均值,然后取每组小于其算术平均值的最大一个四位数依次存入数组bb中(其中,数组bb定义为int bb[10],其中bb[0]为第一组中符合条件的数,bb[1]为第二组中符合条件的数,其它依此类推),最后调用输出函数writeDat()把结果bb输出到文件OUT.DAT中。
注意: 部分源程序存在文件PROG1.C文件中。
程序中已定义全局变量: aa[10][20]、bb[10]
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
void jsVal()
{ int i,j,max1,max2,min,cnt;
double aver;
for(i=0;i<10;i++)
{ aver=0.0; cnt=0; min=9999; max1=max2=0;
for(j=0;j<20;j++)
{ if(aa[j]>max1) max1=aa[j];
if(aa[j]<min) min=aa[j];
}
aver=(double)(max1+min)/2.0;
for(j=0;j<20;j++)
if(aa[j]<aver&&aa[j]>max2) max2=aa[j];
bb=max2;
}
}
机试九:
已知在文件IN.DAT中存有N个实数(N<200), 函数ReadDat( )是读取这N个实数并存入数组xx中。请编制函数CalValue( ), 其功能要求:1.求出这N个实数的小数部分值的平均值aver; 2.分别求出这N 个实数中其小数部分值大于平均值aver的该数的整数部分值之和sumint以及该数的小数部分之和sumdec, 最后调用函数WriteDat()把所求的结果输出OUT5.DAT文件中。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
void CalValue(void)
{
int i ;
long val ;
float dec ;
for(i = 0 ; i < N ; i++) {
val = (long) xx ;
aver += xx - val ;
}
aver /= (double) N ;
for(i = 0 ; i < N ; i++) {
val = (long) xx ;
dec = xx - val ;
if(dec > aver) {
sumint += val ;
sumdec += (xx - val) ;
}
}
}
机试十:
已知在文件IN.DAT中存有N个实数(N<200), 函数ReadDat( )是读取这N个实数并存入数组xx中。请编制函数CalValue( ), 其功能要求: 1.求出这N个实数的平均值aver; 2.分别求出这N个实数中大于平均值aver的实数的整数部分值之和sumint以及该实数的小数部分值之和sumdec, 最后调用函数WriteDat()把所求的结果输出到文件OUT2.DAT中。
void CalValue(void)
{ int i ;
long val ;
for(i = 0 ; i < N-1 ; i++)
aver += xx ;
aver /= (double) N ;
for(i = 0 ; i < N-1 ; i++)
{ if(xx > aver)
{ val = (long) xx ;
sumint += val ;
sumdec += (xx - val) ; }
}}
机时十一:
抽到题目:已知数据文件IN.DAT中存有200个两位数且相邻的两个数之间均不相等,并已调用函数readDat()把这些数存入数组b中,请考生编制一个函数jsVal(),实现的功能是对经常上下波动的数据可采用只记录峰值的数据压缩方法,即每次将采样到的当前值和前一次值比较,如数据变化方向改变(原递增现递减或原递减现递增),说明已过峰值,这时就将当前值记录下来,接着将结果依次存入数据b中(从0开始存放),注意数组b中的第一个数据a[0]原样存入b[0]单元中。最后调用输出函数writeDat()把结果c输出到文件OUT.DAT中。例如:原数据: 35,69,87,73,62,54,60,70, 压缩后: 35,73,60, 注意:部分源程序存在文件PROG1.C文件中。 程序中已定义:a[200]、b[200]。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat的内容。
{ int i;
b[0]=a[0];
cnt=1;
for(i=1;i<MAX-1;i++)
if((a>a[i-1]&&a>a[i+1])||(a<a[i-1]&&a<a[i+1]))
b[cnt++]=a;}
机时十二:
本人是昨天晚上考的,前面也有人抽到,但我觉得答案有问题现将我的答案归纳如下,尽请指教!!
抽到题目:已知在文件IN.DAT中存有10x20个实数, 并已通过函数ReadDat( )数组aa[10][20]中。请编制函数jsVal(), 其功能要求: 1.分别剔除每行的第一个和最后一个数,求出剩余18个数的平均值存入数组bb[10]中; 2.将bb[10]中的数按从达到小顺序排列,结果仍存入bb[10]中。 最后调用函数WriteDat()把所求的结果输出到文件OUT.DAT中。
int aa[10][20];
float bb[10];
void jsVal()
{int i,j;
float a;
for(i=0;i<10;i++)
{ bb=0;
for(j=1;j<19,j++)
bb+=aa[j];
bb/=18; }
for(i=0;i<10;i++)
for(j=i;j<10;j++)
if(bb<bb[j])
{ a=bb;
bb=bb[j]
bb[j]=a;
}}