全国计算机等考三级网络技术复习资料-上机试题总结.doc_第1页
全国计算机等考三级网络技术复习资料-上机试题总结.doc_第2页
全国计算机等考三级网络技术复习资料-上机试题总结.doc_第3页
全国计算机等考三级网络技术复习资料-上机试题总结.doc_第4页
全国计算机等考三级网络技术复习资料-上机试题总结.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

100个产品销售记录排序(此类共10题) code:/*已知在文件IN.DAT中存有100个产品销售记录, 每个产品销售记录由产品代码dm(字符型4位), 产品名称mc(字符型10位), 单价dj(整型), 数量sl(整型), 金额je(长整型)五部分组成。 其中:金额=单价*数量计算得出。函数ReadDat( )读取这100个销售记录并存入结构数组sell中。请编制函数SortDat( ), 其功能要求:按金额从小到大进行排列, 若金额相等, 则按产品代码从小到大进行排列, 最终排列结果仍存入结构数组sell中。最后main( )函数调用函数WriteDat()把结果输出到文件OUT1.DAT中。注意: 部分源程序存放在PROG1.C中。请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。*/#include #include #include #include #include #define MAX 100typedef struct char dm5 ; /* 产品代码 */char mc11 ; /* 产品名称 */int dj ; /* 单价 */int sl ; /* 数量 */long je ; /* 金额 */ PRO ;PRO sellMAX ;void ReadDat() ;void WriteDat() ;void SortDat()/*/int i,j,k;PRO tt;for(i=0; i MAX-1; i+) k=i;for(j=i+1; j sellj.je)|(sellk.je=sellj.je)&(strcmp(sellk.dm, sellj.dm)0)k=j;if(k!=i) tt=sellk; sellk=selli; selli=tt;/*/void main()memset(sell, 0, sizeof(sell) ;ReadDat() ;SortDat() ;WriteDat() ;void ReadDat()FILE *fp ;char str80, ch11 ;int i ;fp = fopen(IN.DAT, r) ;for(i = 0 ; i 100 ; i+) fgets(str, 80, fp) ;memcpy(selli.dm, str, 4) ;memcpy(selli.mc, str + 4, 10) ;memcpy(ch, str + 14, 4) ; ch4 = 0 ;selli.dj = atoi(ch) ;memcpy(ch, str + 18, 5) ; ch5 = 0 ;selli.sl = atoi(ch) ;selli.je = (long)selli.dj * selli.sl ;fclose(fp) ;void WriteDat()FILE *fp ;int i ;fp = fopen(OUT1.DAT, w) ;for(i = 0 ; i sellj.je| (sellk.je=sellj.je) & (strcmp(sellk.dm, sellj.dm) 0) 之三 排序要求: 按金额从大到小进行排列, 若金额相等, 则按产品代码从小到大 进行排列 相应语句: if(sellk.je 0) 之四 排序要求: 按金额从大到小进行排列, 若金额相等, 则按产品代码从大到小 进行排列 相应语句: if(sellk.je sellj.je)|(sellk.je=sellj.je)&(strcmp(sellk.dm,sellj.dm)0)|(strcmp(sellk.mc,sellj.mc)=0)&(sellk.jesellj.je) 之六 排序要求: 按产品名称从小到大进行排列, 若产品名称相同, 则按金额从大 到小进行排列 相应语句: if(strcmp(selli.mc, sellj.mc)0 | (strcmp(selli.mc, sellj.mc)=0)&(selli.je sellj.je) 之七 排序要求: 按产品名称从大到小进行排列, 若产品名称相同, 则按金额从小 到大进行排列 相应语句: if(strcmp(sellk.mc, sellj.mc) sellj.je) 之八 排序要求: 按产品名称从大到小进行排列, 若产品名称相同, 则按金额从大 到小进行排列 相应语句: if(strcmp(sellk.mc, sellj.mc) 0)| (strcmp(sellk.mc, sellj.mc)=0)&(sellk.je 0)|(strcmp(sellk.dm,sellj.dm)=0)&(sellk.jesellj.jecode:/*已知在文件IN.DAT中存有100个产品销售记录, 每个产品销售记录由产品代码dm(字符型4位), 产品名称mc(字符型10位), 单价dj(整型), 数量sl(整型), 金额je(长整型)五部分组成。 其中:金额=单价*数量计算得出。函数ReadDat( )读取这100个销售记录并存入结构数组sell中。请编制函数SortDat( ), 其功能要求:按产品代码从大到小进行排列, 若产品代码相同, 则按金额从大到小进行排列, 最终排列结果仍存入结构数组sell中。最后main()函数调用函数WriteDat()把结果输出到文件OUT10.DAT中。注意: 部分源程序存放在PROG1.C中。请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。*/#include #include #include #include #include #define MAX 100typedef struct char dm5 ; /* 产品代码 */char mc11 ; /* 产品名称 */int dj ; /* 单价 */int sl ; /* 数量 */long je ; /* 金额 */ PRO ;PRO sellMAX ;void ReadDat() ;void WriteDat() ;void SortDat()/*/int i,j;PRO tt;for(i=0; i MAX-1; i+)for(j=i+1; j MAX; j+) if(strcmp(selli.dm, sellj.dm) 0) tt=selli; selli=sellj; sellj=tt;if(strcmp(selli.dm, sellj.dm)=0)&(selli.je sellj.je) tt=selli; selli=sellj; sellj=tt;/*/void main()memset(sell, 0, sizeof(sell) ;ReadDat() ;SortDat() ;WriteDat() ;void ReadDat()FILE *fp ;char str80, ch11 ;int i ;fp = fopen(IN.DAT, r) ;for(i = 0 ; i 100 ; i+) fgets(str, 80, fp) ;memcpy(selli.dm, str, 4) ;memcpy(selli.mc, str + 4, 10) ;memcpy(ch, str + 14, 4) ; ch4 = 0 ;selli.dj = atoi(ch) ;memcpy(ch, str + 18, 5) ; ch5 = 0 ;selli.sl = atoi(ch) ;selli.je = (long)selli.dj * selli.sl ;fclose(fp) ;void WriteDat()FILE *fp ;int i ;fp = fopen(OUT10.DAT, w) ;for(i = 0 ; i 0, 则该数满足条件存入数组b中, 且个数cnt=cnt+1。8129, 9-8-1-20, 则该数不满足条件忽略。注意: 部分源程序存在文件PROG1.C文件中。程序中已定义数组: a300, b300, 已定义变量: cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。*/#include int a300, b300, cnt=0 ;jsvalue()/*/int i,j,k,t;for(i=0; i 0)bcnt+=ai;for(i=0; i cnt-1; i+) k=i;for(j=i+1; j cnt; j+)if(bk bj) k=j;if(k!=i) t=bk; bk=bi; bi=t; /*/main()int i ;readDat() ;jsvalue() ;writeDat() ;printf(cnt=%dn, cnt) ;for(i = 0 ; i cnt ; i+) printf(b%d=%dn, i, bi) ;readDat()FILE *fp ;int i ;fp = fopen(in.dat,r) ;for(i = 0 ; i 300 ; i+) fscanf(fp, %d, &ai) ;fclose(fp) ;writeDat()FILE *fp ;int i ;fp = fopen(out.dat,w) ;fprintf(fp, %dn, cnt) ;for(i = 0 ; i 0, 则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。9812, 9-8-1-20, 则该数不满足条件计算平均值pjz2。注意: 部分源程序存在文件PROG1.C文件中。程序中已定义数组: a300, 已定义变量: cnt,pjz1,pjz2请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。*/#include int a300, cnt=0 ;double pjz1=0.0, pjz2=0.0 ;jsvalue()/*/int i;for(i=0; i 0) cnt+; pjz1+=ai; else pjz2+=ai;if(cnt) pjz1/=cnt;if(cnt300) pjz2/=300-cnt;/*/main()int i ;readDat() ;jsvalue() ;writeDat() ;printf(cnt=%dn满足条件的平均值pzj1=%7.2lfn不满足条件的平均值pzj2=%7.2lfn, cnt,pjz1,pjz2);readDat()FILE *fp ;int i ;fp = fopen(in.dat,r) ;for(i = 0 ; i cd, ab必须是偶数且能被5整除, cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意: 部分源程序存在文件PROG1.C文件中。程序中已定义数组: a200, b200, 已定义变量: cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。*/#include #define MAX 200int aMAX, bMAX, cnt = 0 ;void jsVal()/*/int i,j,k,A,B,C,D;for(i=0; i 10*C+D)bcnt+=ai;for(i=0; i cnt-1; i+) k=i;for(j=i+1; j cnt; j+)if(bk bj) k=j;if(k!=i) A=bk; bk=bi; bi=A;/*/void readDat()int i ;FILE *fp ;fp = fopen(in.dat, r) ;for(i = 0 ; i MAX ; i+) fscanf(fp, %d, &ai) ;fclose(fp) ;void main()int i ;readDat() ;jsVal() ;printf(满足条件的数=%dn, cnt) ;for(i = 0 ; i cnt ; i+) printf(%d , bi) ;printf(n) ;writeDat() ;writeDat()FILE *fp ;int i ;fp = fopen(out.dat, w) ;fprintf(fp, %dn, cnt) ;for(i = 0 ; i =10且ab-cd=0且ab-cd=10且两个数均是奇数, 同时两个新 数的十位数字均不为零,则将满足此条件的四位数按从大到小的 顺序存入数组b中, 并要计算满足上述条件的四位数的个数cnt。 out.dat 的内容应当为: 5 8398 7996 5954 4313 2311_老枪小于200个四位数之一(共四题) code:/*已知在文件IN.DAT中存有若干个(个数200)四位数字的正整数, 函数ReadDat( )读取这若干个正整数并存入数组xx中。请编制函数Calvalue( ), 其功能要求: 1. 求出这文件中共有多少个正整数totNum; 2.求出这些数中的各位数字之和是奇数的数的个数totCnt, 以及满足此条件的这些的算术平均值totPjz。最后main( )函数调用函数WriteDat()把所求的结果输出到OUT.DAT文件中。注意: 部分源程序存放在PROG1.C中。请勿改动数据文件IN.DAT中的任何数据,主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。*/#include #include #define MAXNUM 200int xxMAXNUM ;int totNum = 0 ; /* 文件IN.DAT中共有多少个正整数 */int totCnt = 0 ; /* 符合条件的正整数的个数 */double totPjz = 0.0 ; /* 平均值 */int ReadDat(void) ;void WriteDat(void) ;void Calvalue(void)/*/while(xxtotNum) if(xxtotNum/1000+xxtotNum/100%10+xxtotNum/10%10+xxtotNum)%2) totCnt+; totPjz+=xxtotNum; totNum+;if(totCnt) totPjz/=totCnt;/*/void main()int i ;clrscr() ;for(i = 0 ; i MAXNUM ; i+) xxi = 0 ;if(ReadDat() printf(数据文件IN.DAT不能打开!007n) ;return ;Calvalue() ;printf(文件IN.DAT中共有正整数=%d个n, totNum) ;printf(符合条件的正整数的个数=%d个n, totCnt) ;printf(平均值=%.2lfn, totPjz) ;WriteDat() ;int ReadDat(void)FILE *fp ;int i = 0 ;if(fp = fopen(in.dat, r) = NULL) return 1 ;while(!feof(fp) fscanf(fp, %d, &xxi+) ;fclose(fp) ;return 0 ;void WriteDat(void)FILE *fp ;fp = fopen(OUT.DAT, w) ;fprintf(fp, %dn%dn%.2lfn, totNum, totCnt, totPjz) ;fclose(fp) ;in.dat 文件内容如下: 6045,6192,1885,3580,8544,6826,5493,8415,3132,5841, 6561,3173,9157,2895,2851,6082,5510,9610,5398,5273, 3438,1800,6364,6892,9591,3120,8813,2106,5505,1085, 5835,7295,6131,9405,6756,2413,6274,9262,5728,2650, 6266,5285,7703,1353,1510,2350,4325,4392,7573,8204, 7358,6365,3135,9903,3055,3219,3955,7313,6206,1631, 5869,5893,4569,1251,2542,5740,2073,9805,1189,7550, 4362,6214,5680,8753,8443,3636,4495,9643,3782,5556, 1018,9729,8588,2797,4321,4714,9658,8997,2080,5912, 9968,5558,9311,7047,6138,7618,5448,1466,7075,2166, 4025,3572,9605,1291,6027,2358,1911,2747,7068,1716, 9661,5849,3210,2554,8604,8010,7947,3685,2945,4224, 7014,9058,6259,9503,1615,1060,7787,8983,3822,2471, 5146,7066,1029,1777,7788,2941,3538,2912,3096,7421, 9175,6099,2930,4685,8465,8633,2628,7155,4307,9535, 4274,2857,6829,6226,8268,9377,9415,9059,4872,6072, out.dat 文件内容应当如下: 160 69 5460.51_老枪小于200个四位数之二(共四题) code:/*已知在文件IN.DAT中存有若干个(个数200)四位数字的正整数, 函数ReadDat( )读取这若干个正整数并存入数组xx中。请编制函数Calvalue( ), 其功能要求: 1. 求出这文件中共有多少个正整数totNum; 2.求出这些数中的各位数字之和是偶数的数的个数totCnt, 以及满足此条件的这些数的算术平均值totPjz。最后main( )函数调用函数WriteDat()把所求的结果输出到OUT.DAT文件中。注意: 部分源程序存放在PROG1.C中。请勿改动数据文件IN.DAT中的任何数据,主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。*/#include #include #define MAXNUM 200int xxMAXNUM ;int totNum = 0 ; /* 文件IN.DAT中共有多少个正整数 */int totCnt = 0 ; /* 符合条件的正整数的个数 */double totPjz = 0.0 ; /* 平均值 */int ReadDat(void) ;void WriteDat(void) ;void Calvalue(void)/*/for(; xxtotNum; totNum+)if(xxtotNum/1000+xxtotNum/100%10+xxtotNum/10%10+xxtotNum%10)%2=0) totCnt+; totPjz+=xxtotNum;if(totCnt) totPjz/=totCnt;/*/void main()int i ;clrscr() ;for(i = 0 ; i MAXNUM ; i+) xxi = 0 ;if(ReadDat() printf(数据文件IN.DAT不能打开!007n) ;return ;Calvalue() ;printf(文件IN.DAT中共有正整数=%d个n, totNum) ;printf(符合条件的正整数的个数=%d个n, totCnt) ;printf(平均值=%.2lfn, totPjz) ;WriteDat() ;int ReadDat(void)FILE *fp ;int i = 0 ;if(fp = fopen(in.dat, r) = NULL) return 1 ;while(!feof(fp) fscanf(fp, %d, &xxi+) ;fclose(fp) ;return 0 ;void WriteDat(void)FILE *fp ;fp = fopen(OUT.DAT, w) ;fprintf(fp, %dn%dn%.2lfn, totNum, totCnt, totPjz) ;fclose(fp) ;out.dat 文件内容应当如下: 160 91 5517.1200个四位数之三(共四题) code:/*已知在文件IN.DAT中存有若干个(个数1)%2) totCnt+; totPjz+=xxtotNum;if(totCnt) totPjz/=totCnt;/*/void main()int i ;clrscr() ;for(i = 0 ; i MAXNUM ; i+) xxi = 0 ;if(ReadDat() printf(数据文件IN.DAT不能打开!007n) ;return ;Calvalue() ;printf(文件IN.DAT中共有正整数=%d个n, totNum) ;printf(符合条件的正整数的个数=%d个n, totCnt) ;printf(平均值=%.2lfn, totPjz) ;WriteDat() ;int ReadDat(void)FILE *fp ;int i = 0 ;if(fp = fopen(in.dat, r) = NULL) return 1 ;while(!feof(fp) fscanf(fp, %d, &xxi+) ;fclose(fp) ;return 0 ;void WriteDat(void)FILE *fp ;f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论