1、全国计算机等级考试(三级网络技术)第一类 按结构体成员筛选排序题目12(结构体运算题题) 1套已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.D
2、AT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j0|strcmp(selli.mc,sellj.mc)=0&selli.jesellj.je) xy=selli;selli=sellj;sellj=xy;*题目42 结构体运算题 2已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整
3、型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=
4、i+1;j100;j+) if(strcmp(selli.mc,sellj.mc)0|strcmp(selli.mc,sellj.mc)=0&selli.jesellj.je) xy=selli;selli=sellj;sellj=xy;*题目38(结构体运算题) 3已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能
5、要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j0|strcmp(selli.dm,sellj.dm)=0&selli.jesellj.je) xy=selli;selli=sellj;sellj=xy;*题目31
6、(结构体运算题) 4已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列, 最终排列结果仍存入结构数组sell中,最后调用函数WriteDat() 把结果输出到文件OUT4.DAT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、
7、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j100;j+) if(selli.jesellj.je|selli.je=sellj.je&strcmp(selli.dm,sellj.dm)0) xy=selli;selli=sellj;sellj=xy;*题目32(结构体运算题) 5已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整
8、型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT7.DAT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j100;j
9、+) if(strcmp(selli.mc,sellj.mc)sellj.je) xy=selli;selli=sellj;sellj=xy;*题目7(结构体操作题) 7套已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结
10、构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j100;j+) if(strcmp(selli.dm,sellj.dm)0|strcmp(selli.dm,sellj.dm)=0&selli.jesellj.je) xy=selli; sell i=sellj; sellj=xy;*题目13(结构体运算题)
11、类似于8套已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT9.DAT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数
12、ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j0|strcmp(selli.dm,sellj.dm)=0&selli.jesellj.je) xy=selli;selli=sellj;sellj=xy;*题目61(结构体运算题) 9已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadD
13、at()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT2.DAT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;jsellj.je|selli.je=sellj.je&strcmp(sell
14、i.dm,sellj.dm)0) xy=selli; selli=sellj; sellj=xy;*题目99(结构体排列题) 10已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat
15、()把结果输出到文件OUT1.DAT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;jsellj.je|selli.je=sellj.je&strcmp(selli.dm,sellj.dm)0) xy=selli;sell i=sellj;sellj=xy;第二类:数位分解后按数筛选统计并排序题目48(整数各位数字运算题 ) 11已知数据文件in.dat中存有300个四位数,并已调用读函数R
16、eadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:6712,6+2=7+1,则该数满足条件存入数组b中,且个数cnt=cnt+1。 8129,8+91+2,则该数不满足条件忽略。 部分源程序存在文件prog1.c中。 程序中已定义数组:a300,b300,已定义变量:cnt 请勿改动主函数main()、读函数ReadDat()和写
17、函数writeDat()的内容。jsValue()int i,qw,bw,sw,gw,j; for(i=0;i300;i+) qw=ai/1000; bw=ai%1000/100; sw=ai%100/10; gw=ai%10; if(qw+gw=bw+sw) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jbj) qw=bi; bi=bj; bj=qw;*题目68(整数各位数字统计运算题) 12已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是
18、奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a200,b200,已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。void jsVal()int i,j,thou,hun,ten,data; for(i=0;i200;i+) thou=ai/1000; hun=ai%1000/100;
19、ten=ai%100/10; data=ai%10; if(thou&thou%2&hun%2&ten%2&data%2) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) thou=bi; bi=bj;bj=thou;*题目54(整数各位数运算排序题) 13已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四
20、位数按从大到小的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。 8129,8+12+9,则该数不满足条件忽略。 部分源程序存在文件prog1.c中。 程序中已定义数组:a300,b300,已定义变量:cnt 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。jsValue() int i,j,qw,bw,sw,gw; for(i=0;i300;i+) qw=ai/1000; bw=ai/100%10; sw=ai%100/10; gw=
21、ai%10; if(qw+bw=sw+gw) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bi0,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812,9-8-1-20,则该数不满足条件忽略。 部分源程序存在文件prog1.c中。 程序中已定义数组:a300,b300,已定义变量:cnt 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。jsValue() int i,j,qw,bw,sw,gw; for(i=0;i0) bcnt+=ai; for(i=0;icnt-1;i+) for(
22、j=i+1;jbj) qw=bi; bi=bj; bj=qw;*题目67(整数各位数字运算题) 16下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数cnt以及这些数的和sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT13.DAT中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数writeDat()的内容。void countValu
23、e()int i,thou,hun,ten,data; for(i=1000;i5000;i+) thou=i/1000; hun=i%1000/100; ten=i%100/10; data=i%10; if(thou+hun=ten+data&thou+hun=(data-thou)*10) cnt+;sum+=i; * 题目2 17套已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组
24、b中。最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a200,b200,已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。void jsVal() int i,j,qw,bw,sw,gw; for(i=0;iMAX;i+) qw=ai/1000; bw=ai/100%10; sw=ai%100/10; gw=ai%10; if(qw&qw%2=0&bw%2=0&sw%
25、2=0&gw%2=0) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) qw=bi; bi=bj; bj=qw;*题目69(整数统计运算题) 19已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的值减去百位数字上的值再减去十位数字上的值最后减去个位数字上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果c
26、nt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a200,b200,已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。void jsVal()int i,j,thou,hun,ten,data; for(i=0;i=0&ai%2) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jbj) thou=bi; bi=bj;bj=thou;*题目89(整数统计排序题) 21已知数据文件IN.DAT中存有2
27、00个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a200,b200,已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数wri
28、teDat()的内容。void jsVal() int i,j,gw,sw,bw,qw; for(i=0;iMAX;i+) gw=ai%10; sw=ai/10%10; bw=ai/100%10; qw=ai/1000; if(qw+gw)=(sw+bw)&ai%2) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jbj) qw=bi; bi=bj; bj=qw;*题目77(整数各位运算题) 22已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的
29、值加上十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a200,b200,已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。void jsVal()int i,j,thou,hun,ten,data; for(i=0;iMAX;i+) t
30、hou=ai/1000; hun=ai/100%10; ten=ai%100/10; data=ai%10; if(thou+ten=hun+data)&ai%2=0) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jbj) thou=bi;bi=bj;bj=thou;第三类 数位分解后按数筛选及求平均值题目81(整数各位数运算题) 23已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条
31、件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+12+9,则该数不满足条件计算平均值pjz2。 部分源程序存在文件prog1.c中。 程序中已定义数组:a300,已定义变量:cnt,pjz1,pjz2。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。jsValue()int i,thou,hun,ten,data,n=0; for(i=0;i0,则该数满足条件计算
32、平均值pjz1,且个数cnt=cnt+1。 8129,9-8-1-20,则该数不满足条件计算平均值pjz2。 部分源程序存在文件prog1.c中。 程序中已定义数组:a300,已定义变量:cnt,pjz1,pjz2 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。jsValue()int i,j,thou,hun,ten,data,n=0; for(i=0;i0) cnt+; pjz1+=ai; else n+; pjz2+=ai; if(cnt=0) pjz1=0; else pjz1/=cnt; if(n=0) pjz2=0; else pjz2/=
33、n;*题目87(整数各位运算统计题) 25已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到out.dat文件。 例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+91+2,则该数不满足条件计算平均值pjz2。 部分源程序存在文件prog1.c中。 程序中已定义数组:a300,已定义变量:cnt,pjz1,pjz2。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。jsValue() int i,gw,sw,bw,qw,cnt2=0; for(i=0;i300;i+) gw=ai%10; sw=ai/10%10; bw=ai/100%10; qw=ai/1000; if(qw+gw)=(sw+bw) cnt+;pjz1+=ai; else cnt2+;pjz2+=ai; if(cnt=0) pjz1=0; else pjz1/=cnt; if(cnt2=0) pjz