2024年3月三级网络技术上机南开100题word版.docx
题目1请编写一个函数jsValue(intm,intk,intxx),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。最终调用函数WriteDat()读取10组数据,分别得出结果且把结果输出到文件。ut.dat中。部分源程序存在文件progl.c中。例如:若输入175则应输出:19,23,29,31,37。请勿改动主函数main。和写函数WriteDaK)的内容。intisP(intm)(inti;for(i=2;i<m;i+)if(m%i=0)return0;return1;voidnum(intm,intk,intxx)ints=0;for(m=m+l;k>0;m+)if(isP(m)xxs+l=m;k;)*题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:假如四位数各位上的数字均是0或2或4或6或8,则统计出满意此条件的个数ent,并把这些四位数按从大到小的依次存入数组b中。最终main()函数调用写函数WriteDat()把结果ent以及数组b中符合条件的四位数输出到OUT.DAT文件中。voidjsVal()inti5j,qw,bwjsw,gw;for(i=0;i<MAX;i+)qw=ai1000;bw=ai100%10;sw=ail%100/10;gw=ail%10;if(qw&&qw%2=0&&bw%2=0&&sw%2=0&&gw%2=0)bcnt+l=a11;)for(i=0;i<cnt-l;i+)for(j=i+ly<cnt;j+)if(bil<brjl)qw=b11l;br11=brjl;bfjl=qw;)*<目3(字二符:不,)函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR(),其函数的功能是:以行为单位依次把字符串中全部小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把己处理的字符串仍按行重新存入字符串数组XX中。最终main()函数调用函数WriteDat()把结果XX输出到文件OUT5.DAT中voidStrOR(void)inti,rightoj,s,k;chartem80;for(i=0;i<maxline;i+)for(j=strlen(xxi)-l;j>=O;j-)k=0;memset(tem,0,80);if(xxij=,o)righto=j;for(s=righto+l;s<strlen(xxi);s+)temk+=xxis;for(s=0;s<righto;s+)if(xxis!='o,)tcmk+=xxis;strcpv(xxi,tem);)elsecontinue;)*木*题目4函数ReadDato实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的全部单词进行倒排。最终把己处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最终调用函数WriteDat()把结果XX输出到文件OUT6.DAT中。例如:原文:YouHeMeIamastudent.结果:MeHeYoustudentaamIvoidStrOL(void)intij,k,s,m,strl;charstr80;for(i=0;i<maxline;i+)strl=strlen(xxi);memset(str,0,80);s=k=O;for(j=strl-l;j>=Oy)if(isalpha(xxij)k+;elsefor(m=l;m<=k;m+)strs+=xxij+n;k=0;if(!isalpha(xxij)strs+三,;)for(m=l;m<=k;m+)strs+=xxij+m;strs=,O,;strcpv(xxi,str);)*题目5(整数排序题)在文件in.dat中有200个正整数,且每个数均在100O至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满意此条件的前10个数依次存入数组bb中,假如后三位的数值相等,则按原先的数值进行降序排列。最终调用函数WriteDat()把结果bb输出到文件out.dat中。例:处理前60125099901270258088处理后90126012702580885099voidjsSort()(intij,data;for(i=0;i<199;i+)for(j=i+l;j<200;j+)if(aail%1000>aajl%10()0|aai%1000=aajl%1000&&aa(il<aajl)data=aai;aai=aaj;aaj=data;for(i=0;i<10;i+)bbi=aai;*题目6正整数排序在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDaIo读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满意此条件的前10个数依次存入数组b中,假如后三位的数值相等,则按原先的数值进行升序排列。最终调用函数WriteDat()把结果bb输出到文件out.dat中。例:处理前90125099601270258088处理后50998088702560129012voidjsSort()(intij,data;for(i=0;i<199;i+)fora=i+l;j<200;j+)if(aari%1000<aarj%1000|aail%1000=aarj%1000&&aaril>aarjl)data=aai;aai=aaj;aaj=data;for(i=0;i<10;i+)bbi=aai;)*题目7(结构体操作题)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组Sen中。请编制函数SortDatO,其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组Sen中,最终调用函数WriteDat()把结果输出到文件OUT6.DAT中。voidSortDatOintij;PROxy;for(i=0;i<99;i+)for(j=i+ld<100;j+)if(strcmp(selli.dm,sellj.dm)<O|strcmp(selli.dmellj.dm)=O&&selli.je<sellj.je)xy=seili;selli=sellj;SelIm=xy;)* 题目8(字符替换题)函数ReadDat()实现从文件ENGIN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的全部字符进行替代,仍存入数组xx的对应的位置上,最终调用函数WriteDatO把结果xx输出到文件PSLDAT中。替代关系:f(p)=p*llmod256(P是数组中某一个字符的ASeIl值,f(p)是计算后新字符的ASCn值),假如计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。(留意中间变量用无符号整型),部分源程序存在文件PrOgLC中。原始数据文件存放的格式是:每行的宽度均小于80个字符。voidencryptChar()intij;for(i=0;i<maxline;i+)for(j=0;j<strlen(xxril);j+)if(xxriljl*ll%256<=32xxriirjl*ll%256>130)continue;elsexxilj=xx11ljl*ll%256;* 题目9(字符串排序题)函数ReadDato实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharDO,其函数的功能是:以行为单位对字符按从大到小的依次进行排序,排序后的结果仍按行重新存入字符串数组XX中,最终调用函数WriteDat()把结果xx输出到文件OUT2.DAT中。例:原文:dAe,BfC.CCbbAA结果:fedCBA.bbCCAAvoidSortCharD(Void)intij9k9strl;charch;for(i=0;i<maxline;i+)strl=strlen(xxil);forG=0;j<strl-l;j+)for(k=j+l;k<strl;k+)if(xxrij<xxiirki)ch=xxij;xxij=xxik;xxik=ch;)* 题目10(替换字符题)函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConvertCharAO,其函数的功