2012年9月计算机等级考试三级网络技术上机题库

  • 格式:doc
  • 大小:346.00 KB
  • 文档页数:42

41\在文件in.dat中有200个正整数,且每个数均在1000至9999之间。

函数ReadDat()读取这200个数存放到数组aa中。

请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。

最后调用函数WriteDat()把结果bb输出到文件out.dat中。

例:处理前6012 5099 9012 7025 8088处理后9012 6012 7025 8088 5099void jsSort(){int i,j,data;for(i=0;i<199;i++)for(j=i+1;j<200;j++)if(aa[i]%1000>aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]<aa[j]){data=aa[i];aa[i]=aa[j];aa[j]=data;}for(i=0;i<10;i++)bb[i]=aa[i];}******************************************************************************40\在文件in.dat中有200个正整数,且每个数均在1000至9999之间。

函数ReadDat()读取这200个数存放到数组aa中。

请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行升序排列。

最后调用函数WriteDat()把结果bb输出到文件out.dat中。

例:处理前9012 5099 6012 7025 8088处理后5099 8088 7025 6012 9012void jsSort(){int i,j,data;for(i=0;i<199;i++)for(j=i+1;j<200;j++)if(aa[i]%1000<aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]>aa[j]){data=aa[i];aa[i]=aa[j];aa[j]=data;}for(i=0;i<10;i++)bb[i]=aa[i];}***************************************************************************39\已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以后的五个数且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DA T文件中。

void jsVal(){int i,j,flag;for(i=0;i<MAX-5;i++){for(j=i+1;j<=i+5;j++)if(a[i]>a[j]&&a[i]%2) flag=1;else {flag=0;break;}if(flag==1) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]) {flag=b[i];b[i]=b[j];b[j]=flag;}}*********************************************************************36已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续小于该四位数以后的五个数且该数是偶数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DA T文件中。

void jsVal(){int i,j,flag;for(i=0;i<MAX-5;i++){for(j=i+1;j<=i+5;j++)if(a[i]<a[j]&&a[i]%2==0) flag=1;else { flag=0; break;}if(flag==1) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]) {flag=b[i];b[i]=b[j];b[j]=flag;}}****************************************************************************42\在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。

函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数的之和,其中满足条件的组数作为函数jsSort() 的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数WriteDat()把结果bb输出到文件out.dat 中。

int jsSort()int jsSort(){ int i,j;int cnt=0;Data temp;for(i=0;i<200;i++)if(aa[i].x2>aa[i].x1+aa[i].x3){ bb[cnt]=aa[i];cnt++;}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(bb[i].x2+bb[i].x3<bb[j].x2+bb[j].x3){ temp=bb[i];bb[i]=bb[j];bb[j]=temp;}return cnt;}************************************************************************20\已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值大于等于百位数字上的值,百位数字上的值大于等于十位数字上的值,以及十位数字上的值大于等于个位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的数输出到OUT.DAT文件中。

void jsVal(){int i,j,thou,hun,ten,data;for(i=0;i<MAX;i++){thou=a[i]/1000; hun=a[i]/100%10;ten=a[i]%100/10; data=a[i]%10;if(thou>=hun&&hun>=ten&&ten>=data&&a[i]%2) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]) {thou=b[i];b[i]=b[j];b[j]=thou;}}***********************************************************************21\已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

void jsVal(){int i,j,gw,sw,bw,qw;for(i=0;i<MAX;i++){gw=a[i]%10; sw=a[i]/10%10;bw=a[i]/100%10; qw=a[i]/1000;if((qw+gw)==(sw+bw)&&a[i]%2) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]) { qw=b[i]; b[i]=b[j]; b[j]=qw;}}*************************************************************************100\下列程序的功能是:将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。

新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。

要求编写函数jsV alue()实现此功能,最后调用writeDat()函数将新序列输出到文件out.dat中。

说明:在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。

例:序列{6,8,9,1,2,5,4,7,3}经重排后成为{3,4,5,2,1,6,8,9,7}jsValue(int a[10][9]){ int i,j,k,val,num;for(i=0;i<10;i++){ val=a[i][0];for(j=0;j<9;j++)if(a[i][j]<val){ num=a[i][j];for(k=j;k>0;k--)a[i][k]=a[i][k-1];a[i][0]=num;}}}*******************************************************************************31例如:a:12 31 24 15 21 15b:32 45 17 27 18 15c:3451 1275 1155排序后c:1155 1275 3451void jsVal(){int i,j;int temp;for (i = 0;i <= MAX - 1;i++)if ((a[i]%2!=0) && (b[i]%2!=0)){c[i] = (a[i]/10)*1000 + (b[i]/10)*100 + (b[i]%10)*10 + (a[i]%10);cnt++;}for (i=0;i<MAX-1;i++)for (j=0;j<MAX-i-1; j++)if (c[j]>c[j+1]){temp = c[j];c[j] = c[j+1];c[j+1] = temp;}}***************************************************************************13\已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。