欢迎广大考生登录大学公共计算机资源共享网站!
   
计算机四级考试试题
 

全国计算机等级考试四级考试上机题 1

                                                                            

1 、 已知数据文件 IN.DAT 中存有 200 个四位数 , 并已调用读函数 readDat() 把这些数存入数组 a 中 , 请考生编制一函数 jsVal(), 其功能是 : 将第 1 个数与第 200 个数进行比较 , 若两数不等 , 则取较大者作为下列统计用的符合条件数 , 若两数相等 , 则不作为符合条件数 ; 将第 2 个数与第 199 个数进行比较 , 若两数不等 , 则同样取较大者 , 若两数相等 , 则同样不作为符合条件数 ; 直至第 100 个数与第 101 个数比较为止 , 接着计算出这些符合条件数中的最小值 min 、最大值 max 以及这些符合条件数的平均值 aver 。最后 main() 函数调用写函数 writeDat() 把结果输出到 OUT.DAT 文件中。
 注意 : 部分源程序存在文件 PROG1.C 文件中。
 程序中已定义 : a[200] 、 min 、 max 、 aver

 请勿改动数据文件 IN.DAT 中的任何数据、主函数 main() 、
 读函数 readDat() 和写函数 writeDat() 的内容。

*/#include
#define MAX 200int a[MAX], min, max;double aver ;
void jsVal()
{
 int b[MAX/2], i, n=0;
 for(i = 0; i < MAX/2; i++)
 if(a[i]!=a[MAX-i-1])
 b[n++] = a[i] > a[MAX-i-1] ? a[i] : a[MAX-i-1];
 max=min=b[0]; aver=b[0];
 for(i = 1; i < n; i++)
 { aver+=b[i];
 if(b[i] > max) max=b[i]; else if(b[i] < min) min=b[i];
 }
 aver=aver/n;/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 readDat() ;
 jsVal() ;
 printf(" 结果 min=%d,max=%d,aver=%6.2lf\n", min, max, aver) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 fp = fopen("out.dat", "w") ;
 fprintf(fp, "%d\n%d\n%6.2lf\n", min, max, aver) ;
 fclose(fp) ;}
 2 、已知数据文件 IN.DAT 中存有 200 个四位数 , 并已调用读函数 readDat() 把这些数存入数组 a 中 , 请考生编制一函数 jsVal(), 其功能是 : 从数组 a 的头开始 , 依次取每 20 个数中的最小值组成一个数 , 这样可以获得 10 个新数并存入数组 b 中 , 接着把数组 b 中的数按从大到小的顺序重新存入数组 b 中。最后 main() 函数调用写函数 writeDat() 把结果 b 输出到 OUT.DAT 文件中。
 注意 : 部分源程序存在文件 PROG1.C 文件中。
 程序中已定义 : a[200] 、 b[10]
 请勿改动数据文件 IN.DAT 中的任何数据、主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。 */#include #define MAX 200int a[MAX], b[10];void jsVal(){/**/
 int i,j,k=0,t;
 for(i=0; i < 10; i++)
 { b[i]=a[k++];
 for(j=1; j < 20; j++,k++)
 if(b[i] > a[k]) b[i]=a[k];
 }
 for(i=0; i < 9; i++)
 { k=i;
 for(j=i+1; j < 10; j++)
 if(b[j] > b[k]) k=j;
 if(k!=i){t=b[i]; b[i]=b[k]; b[k]=t;}
 }/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 int i ;
 readDat() ;
 jsVal() ;
 for(i = 0 ; i < 10 ; i++)
 printf("b[%d]=%d\n", i, b[i]) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 int i ;
 fp = fopen("out.dat", "w") ;
 for(i = 0 ; i < 10 ; i++) fprintf(fp, "%d\n", b[i]) ;
 fclose(fp) ;}

3 、已知数据文件 IN.DAT 中存有 200 个四位数 , 并已调用读函数 readDat() 把这些数存入数组 a 中 , 请考生编制一函数 jsVal(), 其功能是 : 将第 1 个数减第 200 个数 , 若差值大于零 , 则取差值作为下列统计用的符合条件数 , 若差值小于等于零 , 则差值不作为符合条件数 ; 将第 2 个数减第 199 个数 , 若差值大于零 , 则同样取差值 , 若差值小于等于零 , 则差值同样不作为符合条件数 ; 直至第 100 个数减第 101 个数为止 , 接着统计出这些符合条件数中的最大 5 个不重复的数按从大到小顺序存入数组 b 中。最后 main( ) 函数调用写函数 writeDat() 把结果 b 输出到 OUT.DAT 文件中。
 注意 : 部分源程序存在文件 PROG1.C 文件中。
 程序中已定义 : a[200] 、 b[5]
 请勿改动数据文件 IN.DAT 中的任何数据、主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。 */#include #define MAX 200int a[MAX], b[5];void jsVal(){/**/
 int t[MAX/2],i,j,k=0,tt;
 for(i=0; i < MAX/2; i++)
 { tt=a[i]-a[MAX-i-1];
 if(tt>0) t[k++]=tt;
 }
 for(i=0; i < 5; i++) b[i]=0;
 for(i=0; i < k; i++)
 if(b[0] < t[i]) b[0]=t[i];
 for(j=1; j < 5; j++)
 for(i=0; i < k; i++)
 if(t[i]>b[j] && t[i] < b[j-1]) b[j]=t[i];/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 int i ;
 readDat() ;
 jsVal() ;
 for(i = 0 ; i < 5 ; i++)
 printf("b[%d]=%d\n", i, b[i]) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 int i ;
 fp = fopen("out.dat", "w") ;
 for(i = 0 ; i < 5 ; i++) fprintf(fp, "%d\n", b[i]) ;
 fclose(fp) ;}

4 、 已知数据文件 IN.DAT 中存有 200 个四位数 , 并已调用读函数 readDat() 把这些数存入数组 a 中 , 请考生编制一函数 jsVal(), 其功能是 : 从数组 a 的头开始 , 依次每 20 个数的平均值组成一个新数 , 这样可以获得 10 个新数并存入数组 b 中 , 接着把数组 b 中的数按从小到大的顺序重新存入数组 b 中。最后 main( ) 函数调用写函数 writeDat() 把结果 b 输出到 OUT.DAT 文件中。
 注意 : 部分源程序存在文件 PROG1.C 文件中。
 程序中已定义 : a[200] 、 b[10]
 请勿改动数据文件 IN.DAT 中的任何数据、主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。 */#include #define MAX 200int a[MAX];double b[10] ;void jsVal(){/**/
 int i,j,k=0;
 double t;
 for(i=0; i<10; i++)
 { b[i]=a[k++];
 for(j=1; j<20; j++)
 b[i]+=a[k++];
 b[i]/=20;
 }
 for(i=0; i < 9; i++)
 { k=i;
 for(j=i+1; j<10; j++)
 if(b[k] > b[j]) k=j;
 if(k!=i)
 { t=b[k]; b[k]=b[i]; b[i]=t;}
 }/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 int i ;
 readDat() ;
 jsVal() ;
 for(i = 0 ; i < 10 ; i++)
 printf("b[%d]=%7.2lf\n", i, b[i]) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 int i ;
 fp = fopen("out.dat", "w") ;
 for(i = 0 ; i < 10 ; i++) fprintf(fp, "%7.2lf\n", b[i]) ;
 fclose(fp) ;}

 5 、已知数据文件 IN.DAT 中存有 200 个四位数 , 并已调用读函数 readDat() 把这些数存入数组 a 中 , 请考生编制一函数 jsVal(), 其功能是 : 将第 1 个数减第 200 个数 , 若差值小于零 , 则取差值的绝对值作为下列统计用的符合条件数 , 若差值大于等于零 , 则差值不作为符合条件数 ; 将第 2 个数减第 199 个数 , 若差值小于零 , 则同样取差值的绝对值 , 若差值大于等于零 , 则差值同样不作为符合条件数 ; 直至第 100 个数减第 101 个数为止 , 接着计算出这些符合条件数中的最小值 min 、最大值 max 以及这些符合条件数的平均值 aver 。最后 main() 函数调用写函数 writeDat() 把结果输出到文件 OUT.DAT 中。
 注意 : 部分源程序存在文件 PROG1.C 文件中。
 程序中已定义 : a[200] 、 min 、 max 、 aver
 请勿改动数据文件 IN.DAT 中的任何数据、主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。 */#include #define MAX 200int a[MAX], min, max;double aver ;void jsVal(){/**/
 int b[MAX/2],t,i,k=0;
 for(i=0; i < MAX/2; i++)
 { t=a[i]-a[MAX-i-1];
 if(t < 0) b[k++]=-t;
 }
 max=min=b[0]; aver=b[0];
 for(i=1; i < k; i++)
 { aver+=b[i];
 if(max < b[i]) max=b[i]; else if(min > b[i]) min=b[i];
 }
 aver/=k;/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 readDat() ;
 jsVal() ;
 printf(" 结果 min=%d,max=%d,aver=%6.2lf\n", min, max, aver) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 fp = fopen("out.dat", "w") ;
 fprintf(fp, "%d\n%d\n%6.2lf\n", min, max, aver) ;
 fclose(fp) ;}
 6 、 已知数据文件 IN.DAT 中存有 200 个四位数 , 并已调用读函数 readDat() 把这些数存入数组 a 中 , 请考生编制一函数 jsVal(), 其功能是 : 从数组 a 的头开始 , 依次取每 20 个数中的最小值组成一个数 , 这样可以获得 10 个新数并存入数组 b 中 , 接着把数组 b 中的数按从大到小的顺序重新存入数组 b 中。最后 main() 函数调用写函数 writeDat() 把结果 b 输出到 OUT.DAT 文件中。
 注意 : 部分源程序存在文件 PROG1.C 文件中。
 程序中已定义 : a[200] 、 b[10]
 请勿改动数据文件 IN.DAT 中的任何数据、主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。 */#include #define MAX 200int a[MAX], b[10];void jsVal(){/**/
 int i,j,k=0;
 for(i=0; i < 10; i++)
 { b[i]=a[k++];
 for(j=1; j < MAX/10; j++,k++)
 if(b[i]>a[k]) b[i]=a[k];
 }

 for(i=0; i < 9; i++)
 for(j=i+1; j < 10; j++)
 if(b[i] < b[j])
 { k=b[i]; b[i]=b[j]; b[j]=k;}/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 int i ;
 readDat() ;
 jsVal() ;
 for(i = 0 ; i < 10 ; i++)
 printf("b[%d]=%d\n", i, b[i]) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 int i ;
 fp = fopen("out.dat", "w") ;
 for(i = 0 ; i < 10 ; i++) fprintf(fp, "%d\n", b[i]) ;
 fclose(fp) ;}

7 、 已知数据文件 IN.DAT 中存有 200 个四位数 , 并已调用读函数 readDat() 把这些数存入数组 a 中 , 请考生编制一函数 jsVal(), 其功能是 : 从数组 a 的头开始 , 依次每 20 个数的平均值组成一个新数 , 这样可以获得 10 个新数并存入数组 b 中 , 接着把数组 b 中的数按从大到小的顺序重新存入数组 b 中。最后 main( ) 函数调用写函数 writeDat() 把结果 b 输出到 OUT.DAT 文件中。
 注意 : 部分源程序存在文件 PROG1.C 文件中。
 程序中已定义 : a[200] 、 b[10]
 请勿改动数据文件 IN.DAT 中的任何数据、主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。 */#include #define MAX 200int a[MAX];double b[10] ; void jsVal(){/**/
 int i,j,k=0; double t;
 for(i=0; i < 10; i++)
 { b[i]=a[k++];
 for(j=1; j < MAX/10; j++)
 b[i]+=a[k++];
 b[i]/=MAX/10;
 }
 for(i=0; i < 9; i++)
 { k=i;
 for(j=i+1; j < 10; j++)
 if(b[k] < b[j]) k=j;
 if(k!=i)
 { t=b[i]; b[i]=b[k]; b[k]=t;}
 }/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 int i ;
 readDat() ;
 jsVal() ;
 for(i = 0 ; i < 10 ; i++)
 printf("b[%d]=%7.2lf\n", i, b[i]) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 int i ;
 fp = fopen("out.dat", "w") ;
 for(i = 0 ; i < 10 ; i++) fprintf(fp, "%7.2lf\n", b[i]) ;
 fclose(fp) ;}
8 、 已知数据文件 IN.DAT 中存有 200 个四位数 , 并已调用读函数 readDat() 把这些数存入数组 a 中 , 请考生编制一函数 jsVal(), 其功能是 : 将第 1 个数与第 200 个数进行比较 , 若两数不等 , 则取较小者作为下列统计用的符合条件数 , 若两数相等 , 则不作为符合条件数 ; 将第 2 个数与第 199 个数进行比较 , 若两数不等 , 则同样取较小者 , 若两数相等 , 则同样不作为符合条件数 ; 直至第 100 个数与第 101 个数比较为止 , 接着计算出这些符合条件数中的最小值 min 、最大值 max 以及这些符合条件数的平均值 aver 。最后 main() 函数调用写函数 writeDat() 把结果输出到 OUT.DAT 文件中。
 注意 : 部分源程序存在文件 PROG1.C 文件中。
 程序中已定义 : a[200] 、 min 、 max 、 aver
 请勿改动数据文件 IN.DAT 中的任何数据、主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。 */#include #define MAX 200int a[MAX], min, max;double aver ;void jsVal(){/**/
 int i,j,m,k=0;
 min=9999; max=0; aver=0.0;
 for(i=0; i < MAX/2; i++)
 if(a[i]!=a[MAX-i-1])
 { k++; m=a[i]>a[MAX-i-1]?a[MAX-i-1]:a[i];
 aver+=m;
 if(max < m)max=m; else if(min>m) min=m;
 }
 aver/=k;/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 readDat() ;
 jsVal() ;
 printf(" 结果 min=%d,max=%d,aver=%6.2lf\n", min, max, aver) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 fp = fopen("out.dat", "w") ;
 fprintf(fp, "%d\n%d\n%6.2lf\n", min, max, aver) ;
 fclose(fp) ;}

9 、 已知数据文件 IN.DAT 中存有 200 个四位数 , 并已调用读函数 readDat() 把这些数存入数组 a 中 , 请考生编制一函数 jsVal(), 其功能是 : 从数组 a 的头开始 , 依次每 20 个数的平均值组成一个新数 , 这样可以获得 10 个新数并存入数组 b 中 , 接着把数组 b 中的数按从大到小的顺序重新存入数组 b 中。最后 main( ) 函数调用写函数 writeDat() 把结果 b 输出到 OUT.DAT 文件中。
 注意 : 部分源程序存在文件 PROG1.C 文件中。
 程序中已定义 : a[200] 、 b[10]
 请勿改动数据文件 IN.DAT 中的任何数据、主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。 */#include #define MAX 200int a[MAX];double b[10] ;void jsVal(){/**/
 int i,j,k=0; double t;
 for(i=0; i < 10; i++)
 { b[i]=a[k++];
 for(j=1; j < MAX/10; j++)
 b[i]+=a[k++];
 b[i]/=MAX/10;
 }
 for(i=0; i < 9; i++)
 { k=i;
 for(j=i+1; j < 10; j++)
 if(b[k] < b[j]) k=j;
 if(k!=i)
 { t=b[i]; b[i]=b[k]; b[k]=t;}
 }/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 int i ;
 readDat() ;
 jsVal() ;
 for(i = 0 ; i < 10 ; i++)
 printf("b[%d]=%7.2lf\n", i, b[i]) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 int i ;
 fp = fopen("out.dat", "w") ;
 for(i = 0 ; i < 10 ; i++) fprintf(fp, "%7.2lf\n", b[i]) ;
 fclose(fp) ;}

10 、已知数据文件 IN.DAT 中存有 200 个四位数 , 并已调用读函数 readDat() 把这些数存入数组 a 中 , 请考生编制一函数 jsVal(), 其功能是 : 将第 1 个数减第 200 个数 , 若差值小于零 , 则取差值的绝对值作为下列统计用的符合条件数 , 若差值大于等于零 , 则差值不作为符合条件数 ; 将第 2 个数减第 199 个数 , 若差值小于零 , 则同样取差值的绝对值 , 若差值大于等于零 , 则差值同样不作为符合条件数 ; 直至第 100 个数减第 101 个数为止 , 接着计算出这些符合条件数中的最小值 min 、最大值 max 以及这些符合条件数的平均值 aver 。最后 main() 函数调用写函数 writeDat() 把结果输出到文件 OUT.DAT 中。
 注意 : 部分源程序存在文件 PROG1.C 文件中。
 程序中已定义 : a[200] 、 min 、 max 、 aver
 请勿改动数据文件 IN.DAT 中的任何数据、主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。 */#include #define MAX 200int a[MAX], min, max;double aver ;void jsVal(){/**/
 int i,t,k=0;
 max=0; min=10000;
 aver=0.0;
 for(i=0; i < MAX/2; i++)
 { t=a[i]-a[MAX-i-1];
 if(t < 0)
 { t=-t; k++; aver+=t;
 if(max < t) max=t; else if(min>t) min=t;
 }
 }
 aver/=k;/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 readDat() ;
 jsVal() ;
 printf(" 结果 min=%d,max=%d,aver=%6.2lf\n", min, max, aver) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 fp = fopen("out.dat", "w") ;
 fprintf(fp, "%d\n%d\n%6.2lf\n", min, max, aver) ;
 fclose(fp) ;}


 试题的 in.dat 内容如下:
 4452 1759 8634 9976 7503 2101 5246 6780 1518 6955
 3466 8383 1778 4777 4443 3364 2262 3649 3366 5528
 6840 7227 8590 9496 3512 5638 2412 5909 2975 8025
 2359 5368 3539 3559 2322 5307 1757 8645 8872 6227
 4357 8379 5715 9782 8205 1063 3211 2201 4307 2357
 9703 1076 5551 7158 4462 5589 1137 4051 3485 9751
 8662 2134 1190 8025 1065 4059 9698 8098 6927 8155
 9476 5088 6359 5573 5993 5606 9624 3380 2122 5129
 9554 7098 3070 8601 7205 9551 9218 2082 1284 4013
 8447 1275 6488 5778 9290 7853 3538 6167 5442 2097
 1720 8296 3250 7649 8223 2250 4367 8818 7696 4567
 2856 9316 8359 6136 5012 6032 6291 1827 7026 8704
 4189 7396 4088 2106 3918 4019 8802 6084 5890 1426
 4261 1041 2554 1599 4124 4615 1566 2010 2881 5854
 9694 6913 4927 5571 2121 8576 5074 7410 9248 3526
 7614 7273 8044 2410 5872 9607 9017 7871 1835 6878
 6307 5718 3949 1697 8033 6158 6838 9178 6320 5899
 1363 5611 4709 1560 8051 6204 6920 4488 6106 7848
 1638 5460 5160 7848 3035 2668 1975 4539 1697 1452
 9266 5644 9203 8847 5953 6143 3889 6280 8335 7988

 
 
   
版权所有:西北师范大学数学与信息科学学院