《全国计算机等级考试三级网络技术南开上机100题(共14页).doc》由会员分享,可在线阅读,更多相关《全国计算机等级考试三级网络技术南开上机100题(共14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上题目51(整数各位打散组合运算题)没有提供求素数函数isprime() ,可自己编制已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数均是素数且新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序
2、存入数组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 ;int isprime(int m)int i;for(i=2;i=m/2;i+) if(m%i=0) re
3、turn 0;return 1;void jsVal()int i,j,qw,bw,sw,gw;int ab,cd;for(i=0;i=10&cd=10) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) qw=bi;bi=bj;bj=qw;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()
4、 ;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 cnt ; i+) fprintf(fp, %dn, bi) ;fclose(fp) ;*题目52(整数各位打散组合运算题)已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数j
5、sVal(),其功能是:把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的个位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数均是奇数并且两个十位数中至少有一个数能被5整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:
6、部分源程序存在文件prog1.c中。程序中已定义数组:a200,b200,已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#include #define MAX 200int aMAX, bMAX, cnt = 0 ;void jsVal()int i,thou,hun,ten,data,j;int ab,cd;for(i=0;i=10&cd=10) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) data=bi;bi=bj;bj=da
7、ta;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(
8、fp, %dn, cnt) ;for(i = 0 ; i 0,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812,9-8-1-20,则该数不满足条件忽略。部分源程序存在文件prog1.c中。程序中已定义数组:a300,b300,已定义变量:cnt请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。#include int a300,b300,cnt=0;jsValue() int i,j,qw,bw,sw,gw;for(i=0;i0) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jbj) qw=bi;bi=bj
9、;bj=qw;main()int i;readDat();jsValue();writeDat();printf(cnt=%dn,cnt);for(i=0;icnt;i+) printf(b%d=%dn,i,bi);readDat()FILE *fp;int i;fp=fopen(in.dat,r);for(i=0;i300;i+)fscanf(fp,%d,&ai);fclose(fp);writeDat()FILE *fp;int i;fp=fopen(out.dat,w);fprintf(fp,%dn,cnt);for(i=0;icnt;i+)fprintf(fp,%dn,bi);fclo
10、se(fp);*题目54(整数各位数运算排序题)已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。 8129,8+12+9,则该数不满足条件忽略。部分源程序存在文件prog1.c中。程序中已
11、定义数组:a300,b300,已定义变量:cnt请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。#include int a300,b300,cnt=0;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=ai%10; if(qw+bw=sw+gw) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) qw=bi;bi=bj;bj=qw;main()int i;rea
12、dDat();jsValue();writeDat();printf(cnt=%dn,cnt);for(i=0;icnt;i+) printf(b%d=%dn,i,bi);readDat()FILE *fp;int i;fp=fopen(in.dat,r);for(i=0;i300;i+)fscanf(fp,%d,&ai);fclose(fp);writeDat()FILE *fp;int i;fp=fopen(out.dat,w);fprintf(fp,%dn,cnt);for(i=0;icnt;i+)fprintf(fp,%dn,bi);fclose(fp);*题目55(素数统计排序题)已
13、知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。9812是非素数,则该数不满足条件忽略。部分源程序存在文件prog1.c中。程序中已定义数组:a300,b300,已定义变量:cnt请勿改动主函数main()、读函数ReadDat()和写函
14、数writeDat()的内容。#include int a300,b300,cnt=0;int isP(int m)int i;for(i=2;im;i+) if(m%i=0)return 0; return 1;jsValue()int i,j,value;for(i=0;i300;i+) if(isP(ai) bcnt+=ai;for(i=0;icnt-1;i+) for(j=i+1;jbj) value=bi; bi=bj; bj=value;main()int i;readDat();jsValue();writeDat();printf(cnt=%dn,cnt);for(i=0;ic
15、nt;i+) printf(b%d=%dn,i,bi);readDat()FILE *fp;int i;fp=fopen(in.dat,r);for(i=0;i300;i+)fscanf(fp,%d,&ai);fclose(fp);writeDat()FILE *fp;int i;fp=fopen(out.dat,w);fprintf(fp,%dn,cnt);for(i=0;icnt;i+)fprintf(fp,%dn,bi);fclose(fp);题目56(字符替换题)函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar()
16、,按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS5.DAT中。替代关系:f(p)=p*11mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则将f(p)所对应的字符进行替代。部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。#include #inc
17、lude #include #include unsigned char xx5080;int maxline=0;/*文章的总行数*/int ReadDat(void);void WriteDat(void);void encryptChar() int i,j;for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*11%256=a&xxij*11%256=z) continue; else xxij=xxij*11%256;void main()clrscr();if(ReadDat()printf(数据文件ENG.IN不能打开!n00
18、7);return;encryptChar();WriteDat();int ReadDat(void)FILE *fp;int i=0;unsigned char *p;if(fp=fopen(eng.in,r)=NULL) return 1;while(fgets(xxi,80,fp)!=NULL) p=strchr(xxi,n); if(p)*p=0; i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;fp=fopen(ps5.dat,w);for(i=0;imaxline;i+)printf(%sn,x
19、xi);fprintf(fp,%sn,xxi);fclose(fp);*题目57(出圈题)(本题采用实际上机题,05年9月和04年9月实际上机题与下面相同)设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数, 报数到第m个人, 此人出圈, 再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,给出这n个人的顺序表p。请考生编制函数Josegh()实现此功能并调用函数WriteDat()把编号按照出圈的顺序输出到OUT.DAT文件中。注意:第1个出圈的编号存放在p0中,第2个出圈的编号存放在p1中,直至第n个出圈的编号存放在pn-1
20、中。 设 n = 100, s = 1, m = 10进行编程。 注意: 部分源程序存放在PROG1.C中。 请勿改动主函数main()和输出数据函数WriteDat()的内容。#include #define N 100#define S 1#define M 10int p100, n, s, m ;void WriteDat(void) ;void Josegh(void) int i,j,s1,w,q100; for(i=0;in;i+) qi=0; s1=s; for(i=1; i=2; i-) s1=(s1+m-1)%i; if(s1=0) s1=i; w=ps1-1; for(j
21、=s1; ji; j+) pj-1=pj; pi-1=w; for(i=0,j=n-1;i=0;i+,j-) qj=pi; for(i=0;in;i+) pi=qi;void main() m = M ; n = N ; s = S ; Josegh() ; WriteDat() ;void WriteDat(void) int i, j = 0 ; FILE *fp ; fp = fopen(out.dat, w) ;for(i = 0 ; i = N - 1 ; i+) printf(%4d , pi) ; fprintf(fp, %4d, pi) ; j+ ; if(j % 10 = 0
22、) printf(n) ; fprintf(fp, n) ; fclose(fp) ;*题目58(选票问题)现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy0到yy9中。把结果yy输出到文件OUT.DAT中。部分源程序存在文件prog1.
23、c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。#include char xx10011;int yy10;int ReadDat(void);void WriteDat(void);void CountRs(void) int i,j,count;for(i=0;i100;i+) count=0; for(j=0;j10;j+) if(xxij=1) count+; if(count=5) continue; for(j=0;j10;j+) if(xxij=1) yyj+; void main()int i;for(i=0;i10;i
24、+)yyi=0;if(ReadDat()printf(选票数据文件IN.DAT不能打开!n007);return;CountRs();WriteDat();int ReadDat(void)FILE *fp;int i;if(fp=fopen(IN.DAT,r) = NULL) return 1;for(i=0;i100;i+) if(fgets(xxi,12,fp)=NULL)return 1; xxi10=0; fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;fp=fopen(OUT.DAT,w);for(i=0;i10;i+)
25、fprintf(fp,%dn,yyi); printf(第%d个人的选票数=%dn,i+1,yyi);fclose(fp);*题目59(整数各位打散组合运算题题)已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数abcd,a
26、b必须是奇数且不能被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 =
27、0 ;void jsVal()int i,thou,hun,ten,data,j;int ab,cd;for(i=0;iMAX;i+)thou=ai/1000; hun=ai/100%10; ten=ai%100/10; data=ai%10; ab=10*thou+ten; cd=10*data+hun; if(ab-cd)=10&cd=10) bcnt=ai;cnt+;for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) data=bi;bi=bj;bj=data;void readDat()int i ;FILE *fp ;fp = fopen(i
28、n.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 cnt ; i+) fprintf
29、(fp, %dn, bi) ;fclose(fp) ;*题目60(整数运算排序题)在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数的之和,其中满足条件的组数作为函数jsSort() 的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数WriteDat()
30、把结果bb输出到文件out.dat中。部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。#include #include #include typedef structint x1,x2,x3;data;data aa200,bb200;int jsSort()int i, j, cnt=0;data ch;for(i=0;iaai.x1+aai.x3) bbcnt+=aai;for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bbi.x2+bbi.x3bbj.x2+bbj.x3
31、) ch=bbi;bbi=bbj;bbj=ch;return cnt;void main()int count;readDat();count=jsSort(); /*返回满足条件的个数*/writeDat(count);readDat()FILE *in;int i;in=fopen(in.dat,r);for(i=0; i200; i+) fscanf(in,%d %d %d,&aai.x1,&aai.x2,&aai.x3);fclose(in);writeDat(int count)FILE *out;int i;out=fopen(out.dat,w);clrscr();for(i=0; icount; i+) printf(%d,%d,%d 第二个数+第三个数=%dn,bbi.x1,bbi.x2,bbi.x3,bbi.x2+bbi.x3); fprintf(out,%d %d %dn,bbi.x1,bbi.x2,bbi.x3);fclose(out);专心-专注-专业