《2024年3月三级网络技术上机南开100题word版.docx》由会员分享,可在线阅读,更多相关《2024年3月三级网络技术上机南开100题word版.docx(41页珍藏版)》请在三一办公上搜索。
1、题目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;i0;m+)if(isP(m)xxs+l=m;k;)*题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生
2、编制一函数jsVal(),其功能是:假如四位数各位上的数字均是0或2或4或6或8,则统计出满意此条件的个数ent,并把这些四位数按从大到小的依次存入数组b中。最终main()函数调用写函数WriteDat()把结果ent以及数组b中符合条件的四位数输出到OUT.DAT文件中。voidjsVal()inti5j,qw,bwjsw,gw;for(i=0;iMAX;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;icnt-l;i+)for(j=
3、i+lycnt;j+)if(bilbrjl)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;chart
4、em80;for(i=0;i=O;j-)k=0;memset(tem,0,80);if(xxij=,o)righto=j;for(s=righto+l;sstrlen(xxi);s+)temk+=xxis;for(s=0;srighto;s+)if(xxis!=o,)tcmk+=xxis;strcpv(xxi,tem);)elsecontinue;)*木*题目4函数ReadDato实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的全部单词进行倒排。最终把己处理的字符串(应不含标点符号)仍按行重新存入
5、字符串数组xx中,最终调用函数WriteDat()把结果XX输出到文件OUT6.DAT中。例如:原文:YouHeMeIamastudent.结果:MeHeYoustudentaamIvoidStrOL(void)intij,k,s,m,strl;charstr80;for(i=0;i=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.da
6、t中有200个正整数,且每个数均在100O至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满意此条件的前10个数依次存入数组bb中,假如后三位的数值相等,则按原先的数值进行降序排列。最终调用函数WriteDat()把结果bb输出到文件out.dat中。例:处理前60125099901270258088处理后90126012702580885099voidjsSort()(intij,data;for(i=0;i199;i+)for(j=i+l;jaajl%10()0|aai%10
7、00=aajl%1000&aa(ilaajl)data=aai;aai=aaj;aaj=data;for(i=0;i10;i+)bbi=aai;*题目6正整数排序在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDaIo读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满意此条件的前10个数依次存入数组b中,假如后三位的数值相等,则按原先的数值进行升序排列。最终调用函数WriteDat()把结果bb输出到文件out.dat中。例:处理前90125099601270258088处理后5
8、0998088702560129012voidjsSort()(intij,data;for(i=0;i199;i+)fora=i+l;j200;j+)if(aari%1000aarjl)data=aai;aai=aaj;aaj=data;for(i=0;i10;i+)bbi=aai;)*题目7(结构体操作题)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组Se
9、n中。请编制函数SortDatO,其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组Sen中,最终调用函数WriteDat()把结果输出到文件OUT6.DAT中。voidSortDatOintij;PROxy;for(i=0;i99;i+)for(j=i+ld100;j+)if(strcmp(selli.dm,sellj.dm)O|strcmp(selli.dmellj.dm)=O&selli.jesellj.je)xy=seili;selli=sellj;SelIm=xy;)* 题目8(字符替换题)函数ReadDat()实现从文件EN
10、GIN中读取一篇英文文章,存入到字符串数组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()in
11、tij;for(i=0;imaxline;i+)for(j=0;jstrlen(xxril);j+)if(xxriljl*ll%256130)continue;elsexxilj=xx11ljl*ll%256;* 题目9(字符串排序题)函数ReadDato实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharDO,其函数的功能是:以行为单位对字符按从大到小的依次进行排序,排序后的结果仍按行重新存入字符串数组XX中,最终调用函数WriteDat()把结果xx输出到文件OUT2.DAT中。例:原文:dAe,BfC.CCbbAA结果:fedCBA.bbCCAAvo
12、idSortCharD(Void)intij9k9strl;charch;for(i=0;imaxline;i+)strl=strlen(xxil);forG=0;jstrl-l;j+)for(k=j+l;kstrl;k+)if(xxrijxxiirki)ch=xxij;xxij=xxik;xxik=ch;)* 题目10(替换字符题)函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConvertCharAO,其函数的功能是:以行为单位把字符串中的全部小写字母改写成该字母的下一个字母,假如是字母z,则改写成字母a0大写字母仍为大写字母,小写字母仍为
13、小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最终调用函数WriteDat()把结果xx输出到文件OUTLDAT中。例:原文:Adb-Bcdzaabck.LLhj结果:Aec.Bdeabbcdl.LLikvoidConvertChank(Void)intij;for(i=0;imaxline;i+)for(j=0;jstrlen(xxil);j+)if(xxij,z,)xxij=axxiU=,y)xxiUl+=l;* 题目11(字符串字母移位题)程序ProgLC的功能是:把S字符串中的全部字母改写成该字母的下一个字母,字母Z改写成字母a。要求大写字母仍为大写字母,小写
14、字母仍为小写字母,其它字符不做变更。请考生编写函数Chg(Char*s)实现程序要求,最终调用函数readwriteDAT()把结果输出到文件bcl.out中。例如:S字符串中原有的内容为:Mn.l23Zxy,则调用该函数后,结果为:No.l23Ayzovoidchg(char*s)i11tI;for(I=0;I=,asi=,A,si=,Y,)si+=l;)* 题目12(结构体运算题题)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价米
15、数量计算得出。函数ReadDato是读取这100个销售记录并存入结构数组SeII中。请编制函数SortDatO,其功能要求:按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,voidSortDatOintij;PROxy;for(i=0;i99;i+)for(j=i+l;jO|strcmp(selli.mc,selHj.mc)=O&selli.jesellj.je)xy=selli;seliril=selirj;sellfjl=xy;)*题目13(结构体运算题)己知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码
16、dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量Sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组Sell中。请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最终调用函数WriteDat()把结果输出到文件OUT9.DAT中。voidSortDatOi11tij;PROxy;for(i=0;i99;i+)forO=i+l;jO|strcinp(selli.dinenj.din)=O&s
17、elli.jesell(j.je)xy=seni;selli=sellj;sell(j=xy;)* 题H14(整数统计排序题)已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,假如该四位数连续大于该四位数以后的五个数且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满意此条件的个数ent并把这些四位数按从小到大的依次存入数组b中,最终调用写函数writeDat()把结果Cm以及数组b中符合条件的四位数输出到OUT.DAT文件中。voidjsVal()intij9fl
18、ag;for(i=0;iMAX-5;i+)forG=i+lUarj&ail%2)11ag=l;elseflag=O;break;if(flag=l)bcnt+=ai;)for(i=0;icnt-l;i+)for(j=i+lybrj)nag=bril;bril=brj;bLj=nag;)* 题目15(整数各位数字运算排序题)己知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并
19、且原四位数是偶数,则统计出满意此条件的个数ent并把这些四位数按从小到大的依次存入数组b中,最终调用写函数WriteDat()把结果ent以及数组b中符合条件的四位数输出到OUT.DAT文件中。voidjsVal()i11tij;intqw,bw,sw,gw;for(i=0;iMAX;i+)qw=ai1000;bw=ai%1000/100;sw=ai%100/10;gw=ai%10;if(qw=bw)&(bw=sw)&(sw=gw)&(ai%2=0)bcnt+=ai;)for(i=0;icnt-l;i+)for(j=i+lybj)qw=bi;bi=bj;bj=qw;* 题目16(字符替换题)函
20、数ReadDato实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrCharJR(),其函数的功能是:以行为单位把字符串中全部字符的ASCn值右移4位,然后把右移后的字符ASCn值再加上原字符的ASCII值,得到新的字符仍存入原字符串对应的位置上。最终把已处理的字符串仍按行重新存入字符串数组xx中,最终调用函数WriteDat()把结果XX输出到文件OUT8.DAT中。voidStrCharJROi11tij;for(i=0;imaxline;i+)for(j=0;j4);(右移四位的表达方式)* 题目17(亲朋字符替换题)函数READDATO实现从文件IN.DA
21、T中读取一篇英文文章存入到字符串数组XX中;请编制函数CHAo,其函数功能是:以行为单位把字符串中的第一个字符的ASCn值加其次个字符的ASCn值,得到第一个亲朋字符,其次个字符的ASCII值加第三个字符的ASCII值,得到其次个新字符,依此类推始终处理到最终其次个字符,最终一个字符的ASCn值加原第一个字符的ASCn值,得到最终一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最终把已处理的字符串逆转后按行重新存入字符串数组XX中,最终调用函数WRITEDAT()把结果XX输出到文件OUT9.DAT中.原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.voidC
22、hA(Void)intij;charch;for(i=0;imaxline;i+)ch=xxi01;for(j=Oustrien(xxi)-Iy+)xxij+=xiLj+i;xxistrlen(xxi)-l+=ch;strrev(xxi);)*题目18函数ReadDat()实现从文件ENGIN中读取一篇英文文章,存入到字符串数组XX中;请编制函数encryptChar(),按给定的替代关系对数组xx中的全部字符进行替代,仍存入数组xx的对应的位置上,最终调用函数WriteDatO把结果xx输出到文件PS10.DAT中。替代关系:f(p)=p*llmod256(P是数组中某一个字符的ASCIl值
23、,f(p)是计算后新字符的ASen值),假如原字符的ASCIl值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。voidencryptChar()Mtij;for(i=0;imaxline;i+)for(j=0;jstrlen(xxi);j+)if(xxij*ll%256=32xxij%2=0)continue;elsexxij=xxiLj*ll%256;*题目19(单词个数统计题)编写一个函数findStr(char*str,char*substr),该函数统计一一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为asdasasd
24、fgasdaszx67asdmklo,子字符串为as,函数返回值是6。(表明白返回值是整数型)函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),最终把结果输出到文件out.dat中。intfindStr(char*str,char*substr)intij,lenlJen2,cnt=0,flag;Ienl=Strlen(Str);len2=strlen(substr);for(i=0;ilenl;i+)for(j=0;jlen2u+)if(stri+j=substrj)flag=l;elseflag=0;break;if(flag=l)ent+;)
25、returnent;*题目20(Fibonacci数列题)编写函数jsValue,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(O)=OjF(I)=IF(n)=F(n-1)+F(n-2)最终调用函数WriteDat()读取50个数据t,分别得出结果且把结果输出到文件out.dat中。例如:当t=1000时,函数值为:1597。intjsValue(intt)intfO=O,fl=l,fn;fn=f+fl;while(fn=0.000001);returnxl;)注:本题在无忧或捷成模拟盘中,需定义doublex,xl
26、;才能通过,据事实上机抽到该题的考生反映,事实上机需按上面解法的定义方能通过,特此说明,供参考。*题目22(平方根问题)请编写函数COUIltVahle0,它的功能是:求n以内(不包括n)同时能被3与7整除的全部自然数之和的平方根s,并作为函数值返回,最终结果S输出到文件OULdat中。例如若n为Iooo时,函数值应为:s=153.909064odoublecountValue(intn)i11ti;doubles=0.0;for(i=l;in;i+)if(i%21=0)s+=i;returnsqrt(s);)*题目23(实数运算题)己知在文件in.dat中存有N个(个数200)实数,函数re
27、addat()读取这N个实数并存入数组XX中。请编制函数calvalue()r其功能要求:1、求出这N个实数的平均值aver;2分别求出这N个实数的整数部分之和SUmint以及小数部分之和sumdec,最终调用函数Writedato把所求的结果输出到文件out.dat中。留意:部分源程序已给出。voidCalValue(Void)inti;for(i=0;iN;i+)sumint+=(long)xxi;sumdec+=xxi-(long)xxi;aver+=xxi;aver=N;)*题目24(完全平方数问题)下列程序ProgLC的功能是:在三位整数(100至999)中找寻符合条件的整数并依次从
28、小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。请编制函数实现此功能,满意该条件的整数的个数通过所编制的函数返回。intjsValue(intbbl)i11tij,k=;inthim,ten,data;for(i=10;i32;i+)j=*i;hum=j100;ten=j%100/10;data=j%10;if(hum=tenhum=dataten=data)bbk+l=j5returnk;*题目25(回文数问题)下列程序的功能是:找寻并输出11至999之间的数m,它满意m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如,676,94249等。满
29、意上述条件的数如m=ll,m2=121,m3=1331皆为回文数。请编制函数intSvahie(Ioiigm)实现此功能,假如是回文数,则函数返回1,反之则返回0。最终把结果输出到文件out.dat中。intjsValue(longn)inti,strl,half;charxy20;ItOa(II,xy,10);/*留意这里不能运用itoa()函数,因为n是long型的*/Strl=Strlen(Xy);half=strl2;for(i=0;i=half)return1;elsereturn0;)或者下面的解法:intjsValue(longn)longints=O,k;k=n;while(k
30、)s=s*10+k%10;k=10;)if(s=n)return1;if(s!=n)return0;)输出结果为:m=ll,m*m=121,m*m*m=1331m=101,m*m=10201,m*m*m=1030301m=lll,m*m=12321,m*m*m=1367631*求*题目26(整数统计运算题)已知在文件IN.DAT中存有若干个(个数200)四位数字的正整数,函数ReadDato读取这若干个正整数并存入数组XX中。请编制函数CaIVahIe(),其功能要求:1、求出这文件中共有多少个正整数tolNum;2、求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满意此条件的
31、这些数(右移前的值)的算术平均值tolPjz,最终调用函数WriteDat()把所求的结果输出到文件OUT.DAT中。voidCaIValue(Void)inti,data;for(i=0;iO)totNun+;data=xxi1;if(data%2=0)totCnt+;totPjz+=xxi;)if(totCnt=0)totPjz=0;elsetotPjz=totCnt;)*题目27(整数各位数字运算题)已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDato把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位
32、数上的数大于零的个数ent,再把全部满意此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的依次进行排序,最终调用写函数WriteDato把结果输出到out.dat文件。例如:9123,9-l-2-30,则该数满意条件存入数组b中,且个数Cnt=Cnt+1。9812,9-8-1-20,则该数不满意条件忽视。jsValue()ntij,qw,bww,gw;for(i=0;iO)bcnt+J=ai;)for(i=0;icnt-l;i+)for(j=i+lybj)qw=bi;bi=bj;bj=qw;)*求*题目28(整数各位打散组合运算题)已知数据文件IN.DAT中存有200个四位数,并
33、已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数Cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),假如新组成的两个十位数abcd=O且abcdv=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满意此条件的四位数按从大到小的依次存入数组b中,并要计算满意上述条件的四位数的个数ent。最终main。函数调用写函数WriteDat()把结果ent以及数组b中符合条件的四位数输出到OUT.DAT文件中。voidjsVal()intiJ,thou,hun,ten,data,ab,cd;for(i=0;i=0&(ab-cd)=10&cd=10)bcnt+l=ai;)for(i=0;icnt-l;i+)for(j=i+l;jcnty+)if(bi=10且ab-c