全国计算机等级考试三级C语言上机100题一.排序类:1.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件prog1.c中。程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#includestdio.h#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsVal(){inti,j,t;for(i=0;iMAX;i++){t=a[i];if(t%2+t/10%2+t/100%2+t/1000%2==0)b[cnt++]=t;}for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(b[i]b[j]){t=b[i];b[i]=b[j];b[j]=t;}}voidreadDat(){inti;FILE*fp;fp=fopen(in.dat,r);for(i=0;iMAX;i++)fscanf(fp,%d,&a[i]);fclose(fp);}voidmain(){inti;readDat();jsVal();printf(满足条件的数=%d\n,cnt);for(i=0;icnt;i++)printf(%d,b[i]);printf(\n);writeDat();}writeDat(){FILE*fp;inti;fp=fopen(out.dat,w);fprintf(fp,%d\n,cnt);for(i=0;icnt;i++)fprintf(fp,%d\n,b[i]);fclose(fp);}2.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件prog1.c中。程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#includestdio.h#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsVal(){inti,j,t;for(i=0;iMAX;i++){t=a[i];if(t%2+t/10%2+t/100%2+t/1000%2==4)b[cnt++]=t;}for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(b[i]b[j]){t=b[i];b[i]=b[j];b[j]=t;}}voidreadDat(){inti;FILE*fp;fp=fopen(in.dat,r);for(i=0;iMAX;i++)fscanf(fp,%d,&a[i]);fclose(fp);}voidmain(){inti;readDat();jsVal();printf(满足条件的数=%d\n,cnt);for(i=0;icnt;i++)printf(%d,b[i]);printf(\n);writeDat();}writeDat(){FILE*fp;inti;fp=fopen(out.dat,w);fprintf(fp,%d\n,cnt);for(i=0;icnt;i++)fprintf(fp,%d\n,b[i]);fclose(fp);}3.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续小于该四位数以后的五个数且该数是偶数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件prog1.c中。程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#includestdio.h#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsVal(){inti,j,t;for(i=0;i200-5;i++)if(a[i]a[i+1]&&a[i]a[i+2]&&a[i]a[i+3]&&a[i]a[i+4]&&a[i]a[i+5]&&a[i]%2==0)b[cnt++]=a[i];for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(b[i]b[j]){t=b[i];b[i]=b[j];b[j]=t;}}4.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以前的五个数且该数是偶数(该四位数以前不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件prog1.c中。程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#includestdio.h#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsVal(){inti,j,t;for(i=5;i200;i++)if(a[i]a[i-1]&&a[i]a[i-2]&&a[i]a[i-3]&&a[i]a[i-4]&&a[i]a[i-5]&&a[i]%2==0)b[cnt++]=a[i];for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(b[i]b[j]){t=b[i];b[i]=b[j];b[j]=t;}}5.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以后的五个数且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件prog1.c中。程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#includestdio.h#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsVal(){inti,j,t;for(i=0;i200-5;i++)if(a[i]a[i+1]&&a[i]a[i+2]&&a[i]a[i+3]&&a[i]a[i+4]&&a[i]a[i+5]&&a[i]%2==1)b[cnt++]=a[i];for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(b[i]b[j]){t=b[i];b[i]=b[j];b[j]=t;}}6.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以前的五个数且该数是奇数,且该数必须能被7整除(该四位数以前不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件prog1.c中。程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#includestdio.h#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsVal(){inti,j,t;for(i=5;i200;i++)if(a[i]a[i-1]&&a[i]a[i-2]&&a[i]a[i-3]&&a[i]a[i-4]&&a[i]a[i-5]&&a[i]%2==1&&a[i]%7==0)b[cnt++]=a[i];for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(b[i]b[j]){t=b[i];b[i]=b[j];b[j]=t;}}7.已知数据文件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()的内容。#includestdio.h#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsVal(){inti,j,t,ab,cd;for(i=0;iMAX;i++){ab=a[i]/1000*10+a[i]/10%10;cd=a[i]%10*10+a[i]/100%10;if(ab-cd=0&&ab-cd=10&&ab%2&&cd%2&&ab[i]/10!=0&&cd/10!=0)b[cnt++]=a[i];}for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(b[i]b[j]){t=b[i];b[i]=b[j];b[j]=t;}}8.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生