当前位置:文档之家› 3月计算机三级上机题库及答案

3月计算机三级上机题库及答案

3月计算机三级上机题库及答案1.已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字), 以及把个位数字和百位数字组成另一个新的十位数cd (新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字), 如果新组成的两个十位数ab-cd=10且ab-cd=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个数cnt。

最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意: 部分源程序存在文件PROG1.C文件中。

程序中已定义数组: a[200], b[200], 已定义变量: cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

-------------------------PROG1.C#include#define MAX 200int a[MAX], b[MAX], cnt = 0;{int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I200;I++){thou=a[I]/1000; hun=a[I]%1000/100;ten=a[I]%100/10; data=a[I]%10;ab=10*thou+ten; cd=10*data+hun;if ((ab-cd)=0(ab-cd)=10ab%2==1cd%2==1ab!=0cd!=0) {b[cnt]=a[I];cnt++;}}for(I=0;Ifor(j=I+1;jif(b[I]{data=b[I]; b[I]=b[j];b[j]=data;}}void readDat(){ int i ;FILE *fp ;fp = fopen(in.dat, r) ;for(i = 0 ; i MAX ; i++) fscanf(fp, %d, a[i]) ;fclose(fp) ;}{ int i ;readDat() ;jsVal() ;printf(满足条件的数=%d\n, cnt) ;for(i = 0 ; i cnt ; i++) printf(%d , b[i]) ;printf(\n) ;writeDat() ;system(pause);}writeDat(){ FILE *fp ;int i ;fp = fopen(out.dat, w) ;fprintf(fp, %d\n, cnt) ;for(i = 0 ; i cnt ; i++) fprintf(fp, %d\n, b[i]) ;fclose(fp) ;}IN.DAT7153 8129 5795 2896 3019 7747 7607 8145 7090 4140 8626 7905 3735 9620 8714 9496 3640 5249 7671 5925 4687 2982 9387 6478 2638 2793 8298 8246 5892 98619110 2269 6951 9800 2439 5339 1064 9994 6762 5752 1001 1030 7989 2845 2958 3820 3010 9486 9798 4014 2783 1604 1628 6466 4101 4128 7127 3262 6332 2076 1860 5834 4580 9057 2614 7852 3789 2897 9194 6317 6276 4285 5610 6945 9137 8348 5434 9162 4303 6779 5025 5137 4630 3535 4048 2697 2438 9791 3903 3650 4899 1557 4745 2573 6288 5421 1563 9385 6545 5061 3905 1074 7840 4596 7537 5961 8327 2104 1055 8317 1282 5368 6571 5440 8274 1919 6789 4542 3570 1500 7044 9288 5302 7577 4018 4619 4922 2076 3297 5898 1699 9276 4439 2729 8725 7507 2729 6736 2566 3227 7901 2973 2353 4805 2546 3406 4824 2060 8645 5886 7549 9279 3310 5429 6344 4100 9604 1146 9234 6202 3477 1492 4800 2194 9937 1304 3454 5477 9230 5382 4064 8472 8262 6724 7219 9968 3398 4952 4130 6953 1791 4229 5432 8147 5409 4275 5091 2278 6192 4898 6808 8866 3705 3025 2929 1503 5298 2233 5483 3635 OUT.DAT492888866862632622.已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字), 以及把个位数字和百位数字组成另一个新的十位数cd (新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字), 如果新组成的两个十位数ab-cd=0且ab-cd=10且两个数均是奇数, 同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个数cnt。

最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意: 部分源程序存在文件PROG1.C文件中。

程序中已定义数组: a[200], b[200], 已定义变量: cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

-------------------------PROG1.C#include#define MAX 200int a[MAX], b[MAX], cnt = 0;{int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I200;I++){thou=a[I]/1000; hun=a[I]%1000/100;ten=a[I]%100/10; data=a[I]%10;ab=10*thou+ten; cd=10*data+hun;if ((ab-cd)=0(ab-cd)=10ab%2==1cd%2==1ab!=0cd!=0) {b[cnt]=a[I];cnt++;}}for(I=0;Ifor(j=I+1;jif(b[I]{data=b[I]; b[I]=b[j];b[j]=data;}}void readDat(){ int i ;FILE *fp ;fp = fopen(in.dat, r) ;for(i = 0 ; i MAX ; i++) fscanf(fp, %d, a[i]) ;fclose(fp) ;}{ int i ;readDat() ;jsVal() ;printf(满足条件的数=%d\n, cnt) ;for(i = 0 ; i cnt ; i++) printf(%d , b[i]) ;printf(\n) ;writeDat() ;system(pause);}writeDat(){ FILE *fp ;int i ;fp = fopen(out.dat, w) ;fprintf(fp, %d\n, cnt) ;for(i = 0 ; i cnt ; i++) fprintf(fp, %d\n, b[i]) ;fclose(fp) ;}IN.DAT7153 8129 5795 2896 3019 7747 7607 8145 7090 4140 8626 7905 3735 9620 8714 9496 3640 5249 7671 5925 4687 2982 9387 6478 2638 2793 8298 8246 5892 98619110 2269 6951 9800 2439 5339 1064 9994 6762 5752 1001 1030 7989 2845 2958 3820 3010 9486 9798 4014 2783 1604 1628 6466 4101 4128 7127 3262 6332 2076 1860 5834 4580 9057 2614 7852 3789 2897 9194 6317 6276 4285 5610 6945 9137 8348 5434 9162 4303 6779 5025 5137 4630 3535 4048 2697 2438 9791 3903 3650 4899 1557 4745 2573 6288 5421 1563 9385 6545 5061 3905 1074 7840 4596 7537 5961 8327 2104 1055 8317 1282 5368 6571 5440 8274 1919 6789 4542 3570 1500 7044 9288 5302 7577 4018 4619 4922 2076 3297 5898 1699 9276 4439 2729 8725 7507 2729 6736 2566 3227 7901 2973 2353 4805 2546 3406 4824 2060 8645 5886 7549 9279 3310 5429 6344 4100 9604 1146 9234 6202 3477 1492 4800 2194 9937 1304 3454 5477 9230 5382 4064 8472 8262 6724 7219 9968 3398 4952 4130 6953 1791 4229 5432 8147 5409 4275 5091 2278 6192 4898 6808 8866 3705 3025 2929 1503 5298 2233 5483 3635 OUT.DAT48317757757951791。

相关主题