《全國計算機(jī)等級考試三級C語言上機(jī)100題》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
全國計算機(jī)等級考試三級C語言上機(jī)100題☆題目1請編寫一個函數(shù)jsValue(intm,intk,intxx[D,該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個素數(shù)存入數(shù)組xx傳回。最后調(diào)用函數(shù)writeDat()讀取10組數(shù)據(jù),分別得出結(jié)果且把結(jié)果輸出到文件out.dat中。部分源程序存在文件progl.c中。例如:若輸入175則應(yīng)輸出:19,23,29,31,37。請勿改動主函數(shù)main。和寫函數(shù)writeDat。的內(nèi)容.#include#includevoidreadwriteDat();intisP(intm)(inti;for(i=2;i
1Pleaseentertwointegers:'1);scanf("%d%d”,&m,&n);num(m,n,xx);for(m=0;m 2”);readwriteDat();}voidreadwriteDat()(intm,n,xx[1000],i;FILE*rf,*wf;rf=fopen(',in.dat',,"rn); 3wf=fopen(,'out.datH,Mwn);for(i=0;i<10;i++){fscanf(rf,M%d%d”,&m,&n);num(m,n,xx);for(m=0;m)fclose(rf);fclose(wf);☆題目2已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:如果四位數(shù)各位上的數(shù)字均是0或2或4或6或8,則統(tǒng)計出滿足此條件的個數(shù)ent,并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。最后main()函數(shù)調(diào)用寫函數(shù)writeDat。把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsValO{inti,j,qw,bw,sw,gw;for(i=0;i 4voidmain()[inti;readDat();jsVal();printf("滿足條件的數(shù)=%d 5”,ent);for(i=0;i 6H);writeDat();)writeDat()(FILE*fp;inti;fp=fopen("out.datM,''w'');fprintf(fp,"%d 7",ent);for(i=0;i 8",b[i]);fclose(fp);★題目3函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中;請編制函數(shù)StrOR(),其函數(shù)的功能是:以行為單位依次把字符串中所有小寫字母。左邊的字符串內(nèi)容移到該串的右邊存放,然后把小寫字母。刪除,余下的字符串內(nèi)容移到已處理字符串的左邊存放,之后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中。最后main。函數(shù)調(diào)用函數(shù)WriteDat。把結(jié)果xx輸出到文件OUT5.DAT中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。注意:部分源程序存放在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#includecharxx[5O][8O];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidStrOR(void) 9{inti,rightoj,s,k;chartem[80];for(i=0;ifor(j=strlen(xx[i])-l;j>=O;j-){k=0;memset(tem,0,80);if(xx[i][j]=='o'){righto=j;for(s=righto+1;stem[k++]=xx[i][s];for(s=0;sif(xx[i][s]!='o')tem[k++]=xx[i][s];strcpy(xx[i],tem);)elsecontinue;voidmain()(clrscr();if(ReadDat()){printf("數(shù)據(jù)文件IN.DAT不能打開! 10\007");return;}StrOR();WriteDat();)intReadDat(void)[HLE*fp;inti=0;char*p;if((fp=fopen("IN.DATn,V))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],' 11');if(p)*p=0;i++;)maxline=i;fclose(fp);return0;}voidWriteDat(void)( 12FILE*fp;inti;clrscr();fp=fopen("OUT5.DAT“,“w“);for(i=0;i 13\xx[ij);fprintf(fp,M%s 14n,xx[i]);)fclose(fp);★題目4函數(shù)ReadDat。實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)StrOL(),其函數(shù)的功能是:以行為單位對行中以空格或標(biāo)點符號為分隔的所有單詞進(jìn)行倒排。最后把已處理的字符串(應(yīng)不含標(biāo)點符號)仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat。把結(jié)果xx輸出到文件OUT6.DAT中。例如:原文:YouHeMeIamastudent.結(jié)果:MeHeYoustudentaamI原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。部分源程序存在文件progLc中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#include#include#include#includecharxx[5O][8O];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidStrOL(void){inti,j,k,s,m,strl;charstr[8O];for(i=0;i 15str[s++]=xx[i][j+m];k=0;}if(!isalpha(xx[i][j]))str[s++]=**;}for(m=1;m<=k;m++)str[s++]=xx[i]|j+m];str[s]=W;strcpy(xx[i],str);})voidmain()(clrscr();if(ReadDat()){printf("數(shù)據(jù)文件IN.DAT不能打開! 16\007");return;}StrOL();WriteDat();}intReadDat(void){FILE*fp;inti=0;char*p;if((fp=fopen(,,IN.DAT,,;,r,,))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],, 17,);if(p)*p=O;i++;)maxline=i;fclose(fp);return0;}voidWriteDat(void)[FILE*fp;inti; 18clrscr();fp=fopen(,,OUT6.DAT","wn);for(i=0;i 19,',xx[i]);fprintf(fp,M%s 20M,xx[i]);}fclose(fp);☆題目5在文件in.dat中有200個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort。,其函數(shù)的功能是:要求按每個數(shù)的后三位的大小進(jìn)行升序排列,然后取出滿足此條件的前10個數(shù)依次存入數(shù)組bb中,如果后三位的數(shù)值相等,則按原先的數(shù)值進(jìn)行降序排列。最后調(diào)用函數(shù)WriteDat。把結(jié)果bb輸出到文件out.dat中。例:處理前60125099901270258088處理后90126012702580885099部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#includeintaa[200],bb[10];voidjsSort()inti,j,data;for(i=0;i<199;i++)for(j=i+l;j<200;j++)if(aa[i]%1000>aa[j]%1000llaa[i]%lOOO==aa[j]%1000&&aa[i]fdr(i=O;i<10;i++)bb[i]=aa[i];)voidmain()(readDat();jsSort();writeDat();)readDat()(FILE*in;inti; 21in=fopen(Min.dat,';'rM);for(i=0;i<200;i++)fscanf(in,n%d;',&aa[i]);fclose(in);}writeDat()(FILE*out;inti;clrscr();out=fopen(,'out.dat,',"w");for(i=0;i<10;i++){printf(n%d\bb[i]);fprintf(out,M%d 22n,bb[i]);)fclose(out);☆題目6在文件in.dat中有200個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort。,其函數(shù)的功能是:要求按每個數(shù)的后三位的大小進(jìn)行降序排列,然后取出滿足此條件的前10個數(shù)依次存入數(shù)組b中,如果后三位的數(shù)值相等,則按原先的數(shù)值進(jìn)行升序排列。最后調(diào)用函數(shù)WriteDat。把結(jié)果bb輸出到文件out.dat中。例:處理前90125099601270258088處理后50998088702560129012注意:部分源程序已給出。請勿改動主函數(shù)main()>讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#includeintaa[200],bb[10];voidjsSort()(inti,j,data;for(i=0;i<199;i++)for(j=i+l;j<200;j++)if(aa[i]%1000aa[j]){data=aa[il;aa[il=aa[j];aa[j]=data;}for(i=0;i<10;i++)bb[i]=aa[i]; 23}voidmain()(readDat();jsSort();writeDat();system("pause");)readDat()(FILE*in;inti;in=fopen("in.dat,,,',r,');for(i=0;i<200;i++)fscanf(in/'%d,'f,&aa[i]);fclose(in);)writeDat()inti;clrscr();out=fopen(Mout.datM,MwM);for(i=0;i<10;i++){printf(ui=%d,%d 24",i+l,bb[i]);fprintf(out,"%d 25",bb[i]);)fclose(out);☆題目7已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat。是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDatO,其功能要求:按產(chǎn)品代碼從大到小進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT6.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include 26#include#include#defineMAX100typedefstruct{chardm[5];/*產(chǎn)品代碼*/char產(chǎn)品名稱*/intdj;/*單價*/intsi;/*數(shù)量*/longje;金額}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){intij;PROxy;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(strcmp(sellfi].dm,sell[j].dm) 27memcpy(ch,str+l4,4);ch[4]=0;sell[i].dj=atoi(ch);memcpy(ch,str+18,5);ch[5]=0;sell[i].sl=atoi(ch);sell[i].je=(long)sell[i].dj*sell[i].sl;}fclose(fp);)voidWriteDat(void)(FILE*fp;inti;fp=fopen(nOUT6.DAT";'wn);for(i=0;i<100;i++){printf(n%s%s%4d%5d%5d 28M,sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,n%s%s%4d%5d%5d 29M,sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fclose(fp);★題目8函數(shù)ReadDat()實現(xiàn)從文件ENG.IN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar。,按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS1.DAT中。替代關(guān)系:f(p)=p*llmod256(p是數(shù)組中某一個字符的ASCH值,f(p)是計算后新字符的ASCII值),如果計算后f(p)值小于等于32或大于130,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。(注意中間變量用無符號整型),部分源程序存在文件progl.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#includeunsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidencryptChar(){inti,j;for(i=0;i 30elsexx[i]|j]=xx[i][j]*ll%256;voidmain()(clrscr();if(ReadDat()){printf("數(shù)據(jù)文件ENGIN不能打開! 31\007M);return;)encryptChar();WriteDat();intReadDat(void)FILE*fp;inti=0;unsignedchar*p;if((fp=fopen(,,eng.inM,,,r,,))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[ij,, 32,);if(p)*p=O;i++;}maxline=i;fclose(fp);return0;)voidWriteDat(void)(FILE*fp;inti;fp=fopen("ps1for(i=0;i 33,',xx[i]);fprintf(fp,"%s 34”,xx[i]);}fclose(fp);★☆題目9 35函數(shù)ReadDal。實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)SortCharDO,其函數(shù)的功能是:以行為單位對字符按從大到小的順序進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat。把結(jié)果xx輸出到文件OUT2.DAT中。例:原文:dAe,BfC.CCbbAA結(jié)果:fedCBA.bbCCAA原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。部分源程序存在文件progLc中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#include#include#includecharxx[50][80];intmaxline=O;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidSortCharD(void){inti,j,k,strl;charch;for(i=0;i 36\007");return;)SortCharD();WriteDat();} 37intReadDat(void)(FILE*fp;inti=0;char*p;if((fp=fopen(,,IN.DAT,,;,r,,))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i], 38,);if(p)*p=O;i++;maxline=i;fclose(fp);return0;)voidWriteDat(void)[FILE*fp;inti;fp=fopen(”O(jiān)UT2.DAT”,W);for(i=0;i 39\xx[i]);fprinlf(fp,"%s 40”,xx[i]);)fclose(fp);★☆題目10函數(shù)ReadDat。實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)ConvertCharA(),其函數(shù)的功能是:以行為單位把字符串中的所有小寫字母改寫成該字母的下一個字母,如果是字母z,則改寫成字母a。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不變。把己處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat。把結(jié)果xx輸出到文件OUT1.DAT中。例:原文:Adb.Bcdzaabck.LLhj結(jié)果:Aec.Bdeabbcdl.LLik原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#include#include 41#includecharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidConvertCharA(void){inti,j;for(i=0;i 42\007)return;)ConvertCharA();WriteDat();)intReadDat(void)[FILE*fp;inti=0;char*p;if((fp=fopen(,'IN.DAT";,r,,))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],, 43,);if(p)*p=O;i++;}maxline=i;fclose(fp);return0;)voidWriteDat(void) 44[FILE*fp;inti;clrscr();fp=fopen(HOUT1.DAT";'wu);for(i=0;i 45\xx[i]);fprintf(fp,',%s 46M,xx[i]);}fclose(fp);)☆題目11程序progl.c的功能是:把s字符串中的所有字母改寫成該字母的下一個字母,字母z改寫成字母a。要求大寫字母仍為大寫字母,小寫字母仍為小寫字母,其它字符不做改變。請考生編寫函數(shù)chg(char*s)實現(xiàn)程序要求,最后調(diào)用函數(shù)readwriteDAT()把結(jié)果輸出到文件be1.out中。例如:s字符串中原有的內(nèi)容為:Mn.l23Zxy,則調(diào)用該函數(shù)后,結(jié)果為:No.l23Ayzo注意:部分源程序存在文件progl.c文件中。請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)readwriteDAT()的內(nèi)容。#include#include#include#include#defineN81voidreadwriteDAT();voidchg(char*s){intI;for(I=0;I 47inti;chara[N];FILE*rf,*wf;rf=fopen("bcl.inH,"r");wf=fopen(nbcl.outM,"wH);for(i=0;i<50;i++){fscanf(rf,”%s”,a);chg(a);fprintf(wf,n%s 48M,a);)fclose(rf);fclose(w0;★☆題目12已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat。是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat。,其功能要求:按產(chǎn)品名稱從小到大進(jìn)行排列,若產(chǎn)品名稱相等,則按金額從小到大進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT5.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#include#include#defineMAX100typedefstruct{chardm[5];/*產(chǎn)品代碼*/char產(chǎn)品名稱*/intdj;/*單價*/intsi;/*數(shù)量*/longje;/*金額*/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){intij;PROxy; 49for(i=0;i<99;i++)for(j=i+l;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc)>Ollstrcmp(sell[iJ.mc,sell[j].mc)==O&&sell[i].je>sell[jJ.je){xy=sell[i];sell[i]=sell[j];sell|j]=xy;}]voidmain(){memset(sell,0,sizeof(sell));ReadDatO;SortDat();WriteDat();}voidReadDat()(FILE*fp;charstr[8O],ch[ll];inti;fp=fopen("IN.DAT",T);for(i=0;i<100;i++){fgets(str,8O,fp);memcpy(sell[i].dm,str,4);memcpy(sell[i].mc,str+4,10);memcpy(ch,str+14,4);ch[4]=0;sell[i].dj=atoi(ch);memcpy(ch,str+18,5);ch[5]=0;sell[i].sl=atoi(ch);sell[i].je=(long)sell[i].dj*sell[i].sl;)fclose(fp);)voidWriteDat()(FILE*fp;inti;fp=fopen(,,OUT5.DAT,,/'wn);for(i=0;i<100;i++){printf(n%s%s%4d%5d%5d 50M,sell[i].dm,selI[i].mc,sell[i].dj,sell[i].sl,sell[i]je);fprintf(fp,n%s%s%4d%5d%5d 51M,sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je); 52fclose(fp);題目13已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat。是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從小到大進(jìn)行排列,若產(chǎn)品代碼相等,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT9.DAT中。部分源程序存在文件progl.c中。請勿改動主:函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#include#include#defineMAX100typedefstruct{char產(chǎn)品代碼*/char11^[11];/*產(chǎn)品名稱*/intdj;/*單價*/intsi;/*數(shù)量*/longje;/*金額*/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){intij;PROxy;for(i=0;i<99;i++)for(j=i+l;j<100;j++)if(strcmp(sell[i].dm,sell[j].dm)>Ollstrcmp(sell[i].dm,sell[j].dm)==O&&sell[i].je 53memset(sell,0,sizeof(sell));ReadDatO;SortDat();WriteDat();)voidReadDat()(FILE*fp;charstr[8O],ch[ll];inti;fp=fopen("IN.DAT",MrH);for(i=0;i<100;i++){fgets(str,8O,fp);memcpy(sell[i].dm,str,4);memcpy(sell[iJ.mc,str+4,10);memcpy(ch,str+14,4);ch[4]=0;sell[i].dj=atoi(ch);memcpy(ch,str+18,5);ch[5]=0;sell[i].sl=atoi(ch);sell[i].je=(long)sell[i].dj*sell[i].sl;}fclose(fp);}voidWriteDat()(FILE*fp;inti;fp=fopen(,,OUT9.DAT',;,wn);for(i=0;i<100;i++){printf(M%s%s%4d%5d%5d 54n,sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,H%s%s%4d%5d%5d 55M,seU[i].dm,sell[i].mc,seU[i].dj9sell[i].sl,sell[i].je);}fclose(fp);}★☆題目14已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:依次從數(shù)組a中取出一個四位數(shù),如果該四位數(shù)連續(xù)大于該四位數(shù)以后的五個數(shù)且該數(shù)是奇數(shù)(該四位數(shù)以后不滿五個數(shù),則不統(tǒng)計), 56則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVal(){intiJ,flag;for(i=0;i 57”,ent);for(i=0;i 58u);writeDat();)writeDat()FILE*fp;inti; 59fp=fopen(Hout.datM,''w");fprintf(fp,M%d 60\ent);for(i=0;i 61'\b[i]);fclose(fp);★題目15已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:若一個四位數(shù)的千位數(shù)字上的值小于等于百位數(shù)字上的值,百位數(shù)字上的值小于等于十位數(shù)字上的值,以及十位數(shù)字上的值小于等于個位數(shù)字上的值,并且原四位數(shù)是偶數(shù),則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat。把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsValO{inti,j;intqw,bw,sw,gw;for(i=0;i 62readDat();jsVal();printf("滿足條件的數(shù)二%d 63”,ent);for(i=0;i 64M,ent);for(i=0;i 65'\b[i]);fclose(fp);}★☆題目16函數(shù)ReadDatO實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)StrCharJR。,其函數(shù)的功能是:以行為單位把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串對應(yīng)的位置匕最后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT8.DAT中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)wrileDat。的內(nèi)容。#include#include#includecharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidStrCharJR(){inti,j;for(i=0;i 66voidmain()(clrscr();if(ReadDat()){prinlf("數(shù)據(jù)文件IN.DAT不能打開! 67\007M);return;}StrCharJRO;WriteDat();)intReadDat(void)(FILE*fp;inti=0;char*p;if((fp=fopen(,,IN.DAT,,;,r,,))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i], 68,);if(p)*p=O;i++;)maxline=i;fclose(fp);return0;)voidWriteDat(void)(FILE*fp;inti;clrscr();fp=fopen(,,OUT8.DAT",;'wu);for(i=0;i 69”,xx[i]);fprintf(fp,M%s 70M,xx[i]);)fclose(fp);☆題目17函數(shù)READDAT()實現(xiàn)從文件1N.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中;請編制函數(shù)CHA(),其函數(shù)功能是:以行為單位把字符串中的第一個字符的ASCII值加第二個字符的ASCH 71值,得到第一個親朋字符,第二個字符的ASCH值加第三個字符的ASCH值,得到第二個新字符,依此類推一直處理到最后第二個字符,最后一個字符的ASCII值加原第一個字符的ASCII值,得到最后一個新的字符,得到的新字符分別存放在原字符串對應(yīng)的位置上。最后把已處理的字符串逆轉(zhuǎn)后按行重新存入字符串?dāng)?shù)組XX中,最后調(diào)用函數(shù)WRITEDAT()把結(jié)果XX輸出到文件OUT9.DAT中.原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格.注意:部分源程序已給出。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#include#include#includecharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidChA(void){inti,j;charch;for(i=0;i 72\007");return;}ChA();WriteDat();)intReadDat(void)[FILE*fp;inti=0; 73char*p;if((fp=fopen(nIN.DAT",V))==NULL)return1;while(fgets(xx[ij,80,fp)!=NULL){p=strchr(xx[i],' 74*);if(p)*p=0;i++;}maxline=i;fclose(fp);return0;)voidWriteDat(void)[HLE*fp;inti;clrscr();fp=fopen("OUT9.DAT,"w");for(i=0;i 75,'?xx[i]);fprintf(fjp,M%s 76M,xx[i]);}fclose(fp);☆題目18函數(shù)ReadDatO實現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS10.DAT中。替代關(guān)系:f(p)=p*llmod256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果原字符的ASCII值是偶數(shù)或計算后f(p)值小于等于32,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。部分源程序存在文件progl.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#includeunsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/ 77intReadDat(void);voidWriteDat(void);voidencryptChar(){inti,j;for(i=0;i 78\007'');return;}encryptChar();WriteDat();intReadDat(void)[FILE*fp;inti=0;unsignedchar*p;if((fp=fopen(Meng.in",,,r,,))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],, 79,);if(p)*p=O;i++;)maxline=i;fclose(fp);return0;}voidWriteDat(void)[FILE*fp;inti;fp=fopen(,,psl0.dat,,7,wn);for(i=0;i 80”,xx[i]);fprintf(fp,M%s 81M,xx[i]); 82}fclose(fp);☆題目19編寫一個函數(shù)findStr(char*str,char*substr),該函數(shù)統(tǒng)計一個長度為2的子字符串在另-一個字符串中出現(xiàn)的次數(shù)。例如,假定輸入的字符串為”asdasasdfgasdaszx67asdmklo",子字符串為“as",函數(shù)返回值是6。函數(shù)ReadWrite。實現(xiàn)從文件in.dat中讀取兩個字符串,并調(diào)用函數(shù)findStr。,最后把結(jié)果輸出到文件out.dat中。注意:部分源程序存在文件progl.c中。請勿改動主函數(shù)main。和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)findStr()的花括號中填入你編寫的若干語句。#include#include#includeintfindStr(char*str,char*substr){inti,j,lenl,len2,cnt=0,flag;lenl=strlen(str);len2=strlen(substr);for(i=0;i 83n=findStr(str,substr);printf(Mn=%d 84M,n);ReadWrite();)ReadWrite()[charstr[81],substr[3],ch;intn,len,i=0;HLE*rf,*wf;rf=fopen(Hin.datn,Hrn);wf=fopen(,'out.dat,',nwn);while(i<25){fgets(str,80,rf);fgets(substr,10,rf);len=strlen(substr)-1;ch=substr[len];if(ch==VIIch=0x1a)substr[len]=0;n=findStr(str,substr);fprintf(wf,n%d 85';n);i++;)fclose(rf);fclose(w0;★題目20編寫函數(shù)jsValue,它的功能是:求Fibonacci數(shù)列中大于t的最小的一個數(shù),結(jié)果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:F(0)=0,F(l)=lF(n)=F(n-l)+F(n-2)最后調(diào)用函數(shù)writeDal()讀取50個數(shù)據(jù)t,分別得出結(jié)果且把結(jié)果輸出到文件oul.dal中。例如:當(dāng)1=1000時,函數(shù)值為:1597。部分源程序存在文件prog1.c中。請勿改動主函數(shù)main。和寫函數(shù)writeDat。的內(nèi)容。#includeintjsValue(intt){intfO=O,fl=l,fn;fn=fO+fl;while(fn<=t){fO=fl;fl=fn;fn=fO+fl;) 86returnfn;main()fintn;n=1000;printf("n=%d,f=%d 87,',n,jsValue(n));writeDat();)writeDat()[FILE*in,*out;inti,n,s;in=fopen(uin.dat",nrn);oul=fopen("oul.dat“Jw");for(i=0;i<50;i++){fscanf(in,H%d'\&n);s=jsValue(n);printf(n%d 88n,s);fprintf(out,"%d 89”,s);}fclose(in);fclose(out);☆題目21卜一列程序progl.c的功能是:利用以下所示的簡單迭代方法求方程:cos(x)-x=0的一個實根。Xn+l=cos(Xn)迭代步驟如下:⑴取XI初值為0.0:(2)X0=X1,把X1的值賦給X0;(3)Xl=cos(X0),求出一個新的XI;(4)若X0-X1的絕對值小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2);(5)所求XI就是方程cos(X)-X=0的一個實根,作為函數(shù)值返回。請編寫函數(shù)countValue()實現(xiàn)程序的耍求,最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件OUT17.DAT中。部分源程序已給出。請勿改動主函數(shù)main。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#include#include#include 90floatcountValue(){floatx0,xl;x1=0.0;do{x0=xl;xl=cos(x0);}while(fabs(x0-xl)>=0.000001);returnx1;)main()(clrscr();printf("實根=%M”,countValue。);printf("%f 91”,cos(counlValue())-counlValue());writeDat();writeDalOFILE*wf;wf=fopen("OUT17.DAT”,W);fprintf(wf,M%f 92M,countValue());fclose(wf);★題目22請編寫函數(shù)countValue(),它的功能是:求n以內(nèi)(不包括n)同時能被3與7整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回,最后結(jié)果s輸出到文件out.dat中。例如若n為1000時,函數(shù)值應(yīng)為:s=l53.909064?部分源程序存在文件progLc中。請勿改動主函數(shù)main()和輸入輸出數(shù)據(jù)函數(shù)progReadWrite()的內(nèi)容。#include#include#includedoublecountValue(intn){inti;doubles=0.0;for(i=l;i 93main()(clrscr();printf("自然數(shù)之和的平方根=%f\fT,countValue(1000));progReadWrite();)progReadWrite()(FILE*fp,*wf;inti,n;floats;fjp=fopen(win.datH,MrH);if(fp==NULL){printf("數(shù)據(jù)文件in.dat不存在!)return;)wf=fopen(,'out.dat,',,,w,');fdr(i=0;i<10;i++){fscanf(fp,"%d 94",&n);s=countValue(n);fprintf(wf,M%f 95M,s);}fclose(fp);fclose(w0;題目23已知在文件in.dat中存有N個(個數(shù)〈200)實數(shù),函數(shù)readdat。讀取這N個實數(shù)并存入數(shù)組xx中。請編制函數(shù)calvalue。,其功能要求:1、求出這N個實數(shù)的平均值aver;2、分別求出這N個實數(shù)的整數(shù)部分之和sumint以及小數(shù)部分之和sumdec,最后調(diào)用函數(shù)writedat。把所求的結(jié)果輸出到文件out.dat中。注意:部分源程序已給出。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)readdat。和輸出數(shù)據(jù)函數(shù)writedat。的內(nèi)容。#include#include#defineMAXNUM200floatxx[MAXNUMl;intN=0;/*文件IN.DAT中共有多少個實數(shù)*/doubleaver=0.0;/*平均值*/ 96doublesuminl=0.0;/*整數(shù)部分之和*/doublesumdec=0.0;/*小數(shù)部分之和*/intReadDat(void);voidWriteDat(void);voidCalValue(void){inti;for(i=0;i 97");return;}Calvalue();printf("文件IN.DAT中共有實數(shù)=%d個3",N);printf("平均值=%.21f 98",aver);printf("整數(shù)部分之和=%.21f 99",sumint);printf("小數(shù)部分之和=%.21f 100",sumdec);WriteDat();systemC^pause");)intReadDat(void)(FILE*fp;inti=0;if((fp=fopen("in.datn,"r"))==NULL)return1;while(!feof(fp)){fscanf(fp,n%d,H,&xx[i++]);)fclose(fp);return0;} 101voidWriteDat(void)(FILE*fp;fp=fopen("OUT.DAT”,W);fprintf(fp,,1%.21f 102%.21f 103%.21f 104,',aver,sumint,sumdec);fclose(fp);)題目24下列程序progl.c的功能是:在三位整數(shù)(100至999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組中;它既是完全平方數(shù),又是兩位數(shù)字相同,例如144、676等。請編制函數(shù)實現(xiàn)此功能,滿足該條件的整數(shù)的個數(shù)通過所編制的函數(shù)返回。最后調(diào)用函數(shù)writeDat。把結(jié)果輸出到文件out.dat中。請勿改動主函數(shù)main。和寫函數(shù)writeDat()的內(nèi)容。#includeintjsValue(intbb[]){intij,k=O;inthun,ten,data;for(i=10;i<32;i++)hum=j/100;ten=j%100/10;data=j%10;if(hum==tenllhum==datallten==data)bb[k++]=j;}returnk;main()(intb[20],num;num=jsValue(b);writeDat(num,b);)writeDat(intnumjntb[])(FILE*out;inti;out=fopen("out.dat,,,,'w"); 105printf("%d 106”,num);fprintf(out,n%d 107n,num);for(i=0;i 108'\m,m*m,m*m*m);fprintf(out,,'m=%41d,m*m=%61d,m*m*m=%81d}1fclose(out);system(Mpause,');★☆題目26 109已知在文件IN.DAT中存有若干個(個數(shù)〈200)四位數(shù)字的正整數(shù),函數(shù)ReadDat。讀取這若干個正整數(shù)并存入數(shù)組xx中。請編制函數(shù)CalVahie。,其功能要求:1、求出這文件中共有多少個正整數(shù)totNum;2、求這些數(shù)右移1位后,產(chǎn)生的新數(shù)是偶數(shù)的數(shù)的個數(shù)totCnt,以及滿足此條件的這些數(shù)(右移前的值)的算術(shù)平均值totPjz,最后調(diào)用函數(shù)writeDal。把所求的結(jié)果輸出到文件OUT.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)writeDat。的內(nèi)容。#include#include#defineMAXNUM200intxx[MAXNUM];inttotNum=0;/*文件IN.DAT中共有多少個正整數(shù)*/inttotCnt=0;/*符合條件的正整數(shù)的個數(shù)*/doubletotPjz=0.0;/*平均值*/intReadDat(void);voidwriteDat(void);voidCalValue(void){inti,data;for(i=0;i 110");return;}CalValue();prinlf("文件IN.DAT中共有正整數(shù)=%d個 111\lotNum);printf("符合條件的正整數(shù)的個數(shù)二%d個 112”,totCnt);printf(”平均值=%.2f 113”,totPjz); 114writeDat();intReadDat(void)FILE*fp;inti=0;if((fp=fopen(MIN.DAT,,;,rH))==NULL)return1;while(!feof(fp)){fscanf(fp/'%d,'\&xx[i++]);}fclose(fp);return0;}voidwriteDat(void)(FILE*fp;fp=fopen(,'OUT.DAT'\',wn);fprintf(fp,H%d 115%d 116%6.2f 117u,totNum,totCnt,totPjz);fclose(fp);題目27已知數(shù)據(jù)文件in.dat中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat。把這些數(shù)存入數(shù)組a中,請編制-函數(shù)jsValue。,其功能是:求出千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)減個位數(shù)上的數(shù)大于零的個數(shù)ent,再把所有滿足此條件的四位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的四位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用寫函數(shù)writeDat。把結(jié)果輸出到out.dat文件。例如:9123,9-1-2-3>0,則該數(shù)滿足條件存入數(shù)組b中,且個數(shù)cnt=cnt+l。9812,9-8-1-2>0,則該數(shù)不滿足條件忽略。部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[300],b[300],已定義變量:ent請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)writeDat。的內(nèi)容。#includeinta[3OO],b[3OO],cnt=O;jsValue(){intij,qw,bw,sw,gw;for(i=0;i<300;i++){qw=a[i]/1000;bw=a[i]/100%10;sw=a[i]%100/10;gw=a[i]%10;if(qw-bw-sw-gw>0)b[cnt++]=a[i];)for(i=0;i 118if(b[i]>b[j]){qw=b[i];b[i]=b(j];b[j]=qw;})main()inti;readDat();jsValue();writeDat();printf(Mcnt=%d 119'\cnt);for(i=0;i}readDat()(FILE*fp;inti;fp=fopen("in.dat","r");for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);)writeDat()(FILE*fp;inti;fp=fopen("out.dat","w");fprintf(fp,"%d 120",cnt);for(i=0;i 121writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVal(){inti,j,thou,hun,ten,data,ab,cd;for(i=0;i<200;i++){thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%IO;ab=10*thou+ten;cd=10*data+hun;if((ab-cd)>=O&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab>=10&&cd>=10)b[cnt++]=a[i];}for(i=0;i 122”,ent);for(i=0;i 123n);writeDat();writeDat()[FILE*fp;inti;fp=fopen("out.datM,nw");fprintf(fp,,'%d 124H,ent); 125for(i=0;i 126u,b[i]);fclose(fp);☆題目29已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把千位數(shù)字和十位數(shù)字重新組成一個新的十位數(shù)ab(新卜位數(shù)的卜位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字組成另一個新的十位數(shù)cd(新十位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新卜位數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字),如果新組成的兩個十位數(shù)ab-cd>=10且ab-cd<=20且兩個數(shù)均是偶數(shù),同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個數(shù)cnto最后main。函數(shù)調(diào)用寫函數(shù)writeDal()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出至IJOUT.DAT文件中。注意:部分源程序存在文件progLc中。程序中已定義數(shù)組:al200],b[200J,已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVaK){inti,j,qw,bw,sw,gw,ab,cd;for(i=0;i 127”,ent);for(i=0;i 128printf(H 129n);writeDat();IwriteDat()(FILE*fp;inti;fp=fopen(nout.datn,"w");fprintf(fp,H%d 130n,ent);for(i=0;i 131",b[i]);fclose(fp);☆題目30已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制?函數(shù)jsVal(),其功能是:依次從數(shù)組a中取出一個四位數(shù),如果該四位數(shù)連續(xù)小于該四位數(shù)以后的五個數(shù)且該數(shù)是偶數(shù)(該四位數(shù)以后不滿五個數(shù),則不統(tǒng)計),則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVal(){inti,j,flag;for(i=0;i 132FILE*fp;fp=fopen(nin.datM,Mrn);for(i=0;i 133”,ent);for(i=0;i 134");writeDat();writeDat()(FILE*fp;inti;fp=fopen(Mout.dat",0w");fprintf(fp,,'%d 135n,ent);for(i=0;i 136H,b[i]);fclose(fp);)☆題目31已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat。是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDatO,其功能要求:按金額從大到小進(jìn)行排列,若金額相同,則按產(chǎn)品代碼從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDatO把結(jié)果輸出到文件OUT4.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDatO的內(nèi)容。#include#include#include#include#include#defineMAX100typedefstruct)chardm[5];/*產(chǎn)品代碼*/ 137char產(chǎn)品名稱*/intdj;/*單價*/intsi;/*數(shù)量*/longje;/*金額*/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){intij;PROxy;for(i=0;i<99;i++)for(j=i+l;j<100;j++)if(sell[i].je<0){xy=sell[i];sell[i]=sell|j];sell[j]=xy;})voidmain()(memset(sell,0,sizeof(seil));ReadDat();SortDat();WriteDat();voidReadDat()FILE*fp;charstr[80],ch[ll];inti;fp=fopenC,IN.DAT,,,,,rn);for(i=0;i 138[FILE*fp;inti;fp=fopen(,'OUT4.DAT'V'wH);for(i=0;i 139M,sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,M%s%s%4d%5d%5d 140M,sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);)fclose(fp);☆題目32已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat。是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱從大到小進(jìn)行排列,若產(chǎn)品名稱相等,則按金額從小到大進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT7.DAT中。部分源程序存在文件progLc中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDal。的內(nèi)容。#include#include#include#include#include#defineMAX100typedefstruct)chardm[5];/*產(chǎn)品代碼*/char產(chǎn)品名稱*/intdj;/*單價*/intsi;/*數(shù)量*/longje;/*金額*/}PRO;PROse川MAX];voidReadDat();voidWriteDat();voidSortDat(){intij;PROxy; 141for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc) 142",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,"%s%s%4d%5d%5d 143",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);}fclose(fp); 144★☆題目33請編制函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取1000個十進(jìn)制整數(shù)到數(shù)組xx中:請編制函數(shù)Compute。分別計算出xx中偶數(shù)的個數(shù)even,奇數(shù)的平均值avel,偶數(shù)的平均值ave2以及方差totfc的值,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到OUT.DAT文件中。計算方差的公式如下:N2totfc=l/NL(xx[i]-ave2)i=l設(shè)N為偶數(shù)的個數(shù),xx[i]為偶數(shù),ave2為偶數(shù)的平均值。原始數(shù)據(jù)文件存放的格式是:每行存放10個數(shù),并用逗號隔開。(每個數(shù)均大于0且小于等于2000)部分源程序存在文件progl.c中。請勿改動主函數(shù)main。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#include#include#include#defineMAX1000intxx[MAX],odd=0,even=0;doubleave1=0.0,ave2=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void){inti;HLE*fp;if((fp=fopen(,,IN.DAT,,;,r,,))==NULL)return1;for(i=0;i 145M);}fclose(fp);return0;}voidCompute(void){inti,yy[MAX];for(i=0;i 146if(even==0)ave2=0;elseave2/=even;for(i=0;i 147");return;)Compute();printfC'OVEN=%d 148AVEl=%f 149AVER2=%f 150TOTFC=%f 151n,even,avel,ave2,totfc);WriteDat();}voidWriteDat(void)FILE*fp;inti;fp=fopen(,'OUT.DATn;,wn);fprintf(fp,,,%d 152%f 153%f 154%f 155",even,ave1,ave2,totfc);fclose(fp);題目34無憂id102題提供了求素數(shù)isPrime。函數(shù)程序progl.c的功能是:選出100以上1000之內(nèi)所有個位數(shù)字與十位數(shù)字之和被10除所得余數(shù)恰是百位數(shù)字的素數(shù)(如293)o計算并輸出上述這些素數(shù)的個數(shù)ent以及這些素數(shù)值的和sum。請考生編寫函數(shù)countValue()實現(xiàn)程序要求,最后調(diào)用函數(shù)writeDAT()把結(jié)果ent和sum輸出到文件bclO.out中。注意:部分源程序存放在文件progl.c中。請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writeDAT。的內(nèi)容。#includeintent,sum;intisPrime(intm)(inti;for(i=2;i 156voidcountValue(){inti,j,bw,sw,gw;for(i=100;i<1000;i++){bw=i/100;sw=i%100/10;gw=i%10;if(isPrime(i)&&(gw+sw)%10=bw){cnt++;sum+=i;})voidmain(){cnt=sum=0;countValue();printf("素數(shù)的個數(shù)二%小11\ent);print"1滿足條件素數(shù)值的和=%d”,sum);writeDAT();)writeDAT()(FILE*fp;fp=fopen(,,bcl0.out,\'V);fprintf(fp,,"%d 157%d 158n,ent,sum);fclose(fp);)★題目35某級數(shù)的前兩項Al=l,A2=l?以后各項具有如卜關(guān)系:An=An-2+2An-1(注:n-2與n-1為下標(biāo))下列程序progl.c的功能是:要求依次對于整數(shù)M=100,1000和10000求出對應(yīng)的n值,使其滿足:Sn=M,這里Sn=Al+A2+...+An,并依次把n值存入數(shù)組單元b⑼,b[l]和b⑵中,請編制jsValue()函數(shù)來實現(xiàn)此功能,最后調(diào)用函數(shù)writeDat。把數(shù)組b[]中的值輸出到out.dat文件中。請勿改動主函數(shù)main。和寫函數(shù)writeDat。的內(nèi)容。#includeintb[3];jsValue(){inta1=1,a2=1,a12,sn,k=2;sn=al+a2;while(l){al2=al+2*a2;if(sn<100&&sn+a12>=100)b[O]=k;if(sn<1000&&sn+a12>=1000)b[l]=k; 159if(sn 160M=1000,n=%d 161M=10000,n=%d 162n,b[0],b[l],b[2]);writeDatO;writeDat()FILE*fp;fp=fopen(,,out.datn;,wn);printf(M%d 163%d 164%d 165H,b[0],b[l],b[2]);fprintf(fp,M%d 166%d 167%d 168H,b[O],b[1],b[2]);fclose(fp);★題目36函數(shù)ReadDal。實現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDatO把結(jié)果xx輸出到文件pS6.DAT中。替代關(guān)系:f(p)=p*Hmod256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果計算后f(p)值小于等于32或f(p)對應(yīng)的字符是數(shù)字。至9,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。部分源程序存在文件progl.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDatO的內(nèi)容。#include#include#include#includeunsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void); 169voidencryptChar(){inti,j;for(i=0;i 170\007H);return;encryptChar();WriteDat();}intReadDat(void)FILE*fp;inti=0;unsignedchar*p;if((fp=fopen(Meng.inM,MrM))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],, 171,);if(p)*p=O;i++;)maxline=i;fclose(fp);return0;)voidWriteDat(void)[HLE*fp;inti;fp二fopen("ps6.dat"Jw");for(i=0;i 172,',xx[i]);fprintf(fp,M%s 173M,xx[i]); 174}fclose(fp);題目37函數(shù)ReadDatO實現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS7.DAT中。替代關(guān)系:f(p)=p*llmod256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果原字符是大寫字母或計算后f(p)值小于等于32,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。部分源程序存在文件progl.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#includeunsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidencryptChar(){inti,j;for(i=0;i 175\007u);return;)encryptChar();WriteDat(); 176)intReadDat(void){FILE*fp;inti=0;unsignedchar*p;if((fp=fopen(Meng.inH,Hrn))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],, 177,);if(p)*p=O;i++;)maxline=i;fclose(fp);return0;}voidWriteDat(void)[FILE*fp;inti;fp=fopen(,,ps7.dat,';,wn);for(i=0;i 178\xx[i]);fprintf(fp,,,%s 179,,,xx[i]);)fclose(fp);題目38已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat。是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從小到大進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從小到大進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT6.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include 180#include#include#include#include#defineMAX100typedefstruct)chardm[5];/*產(chǎn)品代碼*/char產(chǎn)品名稱*/intdj;/*單價*/intsi;/*數(shù)量*/longje;/*金額*/}PRO;PROse川MAX];voidReadDat();voidWriteDat();voidSortDat(){intij;PROxy;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(strcmp(sell[i].dm,sell[j].dm)>Ollstrcmp(sell[i].dm,sell[j].dm)==O&&sen[i].je>sell[j].je){xy=sell[i];sell[i]=sell|j];sell[j]=xy;}}voidmain()(memset(sell,0,sizeof(sell));ReadDat();SortDat();WriteDat();}voidReadDat()(HLE*fp;charstr[8O],ch[ll];inti;fp=fopen(,,IN.DAT,,,Y,);for(i=0;i<100;i++){fgets(str,8O,fp);memcpy(sell[i].dm,str,4); 181memcpy(sell[i].mc,str+4,10);memcpy(ch,str+14,4);ch[4]=0;sell[i].dj=atoi(ch);memcpy(ch,str+18,5);ch[5]=0;sell[i].sl=atoi(ch);sell[i].je=(long)sell[i].dj*sell[i].sl;fclose(fp);voidWriteDat(void)FILE*fp;inti;fp=fopen(”O(jiān)UT6.DAT",“w”);for(i=0;i<100;i++){printf(n%s%s%4d%5d%5d 182",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,H%s%s%4d%5d%5d 183",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);)fclose(fp);★☆題目39現(xiàn)有一個10個人100行的選票數(shù)據(jù)文件IN.DAT,其數(shù)據(jù)存放的格式是每條記錄的長度均為10位,第一位表示第一個人的選中情況,第二位表示第二個人的選中情況,依此類推:內(nèi)容均為字符。和1,1表示此人被選中,0表示此人未被選中,全選或不選均為無效的選票。給定函數(shù)ReadDat。的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組xx中。請編制函數(shù)CountRs()來統(tǒng)計每個人的選票數(shù)并把得票數(shù)依次存入yy⑼到y(tǒng)y[9]中。把結(jié)果”輸出到文件OUT.DAT中。部分源程序存在文件progLc中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#includecharxx[100][ll];intyy[10];intReadDat(void);voidWriteDat(void);voidCountRs(void){inti,j,count;for(i=0;i 184if(count==Ollcount==10)continue;for(j=0;j<10;j-H-)if(xx[i]|j]='r)yy[j]++; 185voidmain()inti;for(i=0;i<10;i++)yy[i]=O;if(ReadDat()){printf("選票數(shù)據(jù)文件IN.DAT不能打開! 186\007");return;}CountRs();WriteDatO;intReadDat(void)(FILE*fp;inti;if((fp=fopen(,,IN.DAT,,;,rn))==NULL)return1;for(i=0;i<100;i++){if(fgets(xx[i],l1,fp)==NULL)return1;xx[i][10]=A0,;}fclose(fp);return0;}voidWriteDat(void)(FILE*fp;inti;fp=fopen(,'OUT.DAT,,;,wn);for(i=0;i<10;i++){fprintf(fp,H%d 187M,yy[i]);printf("第%d個人的選票數(shù)=%d 188”,i+l,yy[i]);)fclose(fp); 189☆題目40已知在文件IN.DAT中存有若干個(個數(shù)<200)四位數(shù)字的正整數(shù),函數(shù)ReadDat()讀取這若干個正整數(shù)并存入數(shù)組xx中。請編制函數(shù)CalValue。,其功能要求:1、求出這文件中共有多少個正整數(shù)totNum;2、求這些數(shù)中的各位數(shù)字之和是偶數(shù)的數(shù)的個數(shù)totCnt,以及滿足此條件的這些數(shù)的算術(shù)平均值totPjz,最后調(diào)用函數(shù)writeDat()把所求的結(jié)果輸出到文件OUT.DAT中。部分源程序存在文件progLc中。請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)writeDat()的內(nèi)容。#include#include#defineMAXNUM200intxx[MAXNUM];inttotNum=0;/*文件IN.DAT中共有多少個正整數(shù)*/inttotCnt=0;/*符合條件的正整數(shù)的個數(shù)*/doubletotPjz=0.0;/*平均值*/intReadDat(void);voidwriteDat(void);voidCalValue(void){inti,qw,bw,sw,gw;for(i=0;i 190"); 191return;}CalValue();printf("文件IN.DAT中共有正整數(shù)=%dj 192\totNum);printf("符合條件的正整數(shù)的個數(shù)二%dprintf(”平均值=%.2f 193”,tolPjz);writeDat();intReadDat(void)(FILE*fp;inti=0;if((fp=fopen(nIN.DAT,,;,r,,))==NULL)return1;while(!feof(fp)){fscanf(fp/'%d,',,&xx[i++J);}fclose(fp);return0;)voidwriteDat(void)(FILE*fp;fp=fopen(,,OUT.DAT","wn);fprintf(fp,n%d 194%d 195%6.2f 196u,totNum,totCnt,totPjz);fclose(fp);)☆題目41下列程序progLc的功能是:計算出自然數(shù)SIX和NINE,它們滿足的條件是SIX+SIX+SIX=NINE+NINE的個數(shù)ent以及滿足此條件所有的SIX與NINE的和SUM。請編寫函數(shù)countValue。實現(xiàn)程序的要求,最后調(diào)用函數(shù)writeDat。把結(jié)果ent和sum,輸出到文件OUT15.DAT中。其中的S,I,X,N,E各代表一個十進(jìn)制數(shù)字。部分源程序存在文件progLc中。請勿改動主函數(shù)main。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#includeintent,sum;voidcountValue(){ints,i,x,n,e,six,nine;for(s=l;s<10;s++)for(i=0;i<10;i-H-)for(x=0;x<10;x++)for(n=l;n<10;n++)for(e=0;e<10;e++) 197{six=s*100+i*10+x;nine=n*lOOO+i*lOO+n*l0+e;if(3*six==2*nine){cnt++;sum+=six+nine;}voidmain()(cnt=sum=0;countValue();printf("滿足條件的個數(shù)=%d 198”,cnt);printf("滿足條件所有的SIX與NINE的和二%d 199”,sum);writeDat();}writeDat()(FILE*fp;fp=fopen(',OUT15.DAT,,;'wn);fprintf(fp,,,%d 200%d 201',,cnt,sum);fclose(fp);}題目42已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)Qi卜算得出。函數(shù)ReadDat。是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱從大到小進(jìn)行排列,若產(chǎn)品名稱相等,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT5.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#include#include#defineMAX100typedefstruct{ 202chardm[5];/*產(chǎn)品代碼*/char產(chǎn)品名稱*/intdj;/*單價*/intsi;/*數(shù)量*/longje;/*金額*/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){inti,j;PROxy;for(i=0;i<99;i++)for(j=i+l;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc) 203)voidWriteDat(){FILE*fp;inti;fp=fopen("OUT5.DAT“Jw");for(i=0;i<100;i++){printf(M%s%s%4d%5d%5d 204H,sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,M%s%s%4d%5d%5d 205M,sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);)fclose(fp);)★題目43無憂id82題(只是將結(jié)果按“從大到小”排序)函數(shù)ReadDat。實現(xiàn)從文件in.dat中讀取20行數(shù)據(jù)存放到字符串?dāng)?shù)組xx中(每行字符串長度均小于80)。請編制函數(shù)jsSort。,其函數(shù)的功能是:以行為單位對字符串變量的下標(biāo)為奇數(shù)的字符按其ASCII值從小到大的順序進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat。把結(jié)果xx輸出到文件uut.dat中。例如:位置01234567源字符串a(chǎn)bcdefgh則處理后字符串a(chǎn)hcfedgb部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include#include#includecharxx[20][80];voidjsSort(){inti,j,k,strl;charch;for(i=0;i<20;i++){strl=strlen(xx[i]); 206for(j=l;jfor(k=j+2;kif(xx[i][j]>xx[i][k]){ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}voidmain()(readDat();jsSort();writeDat();}readDat()(FILE*in;inti=0;char*p;in=fopen("in.dat",*'rn);while(i<20&&fgets(xx[i],80,in)!=NULL){p=strchr(xx[i], 207,);if(p)*p=O;i++;}fclose(in);}writeDat()(FILE*out;inti;out=fopen("out.dat,',,'wn);clrscr();for(i=0;i<20;i++){prinlf("%s 208”,xx[i]);fprintf(out,H%s 209u,xx[i]);)fclose(out); 210★☆題目44函數(shù)ReadDat()實現(xiàn)從文件in.dat中讀取20行數(shù)據(jù)存放到字符串?dāng)?shù)組xx中(每行字符串長度均小于80)。請編制函數(shù)jsSort(),其函數(shù)的功能是:以行為單位對字符串按給定的條件進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat。把結(jié)果xx輸出到文件out.dat中。條件:從字符串中間一分為二,左邊部分按字符的ASCII值降序排序,排序后左邊部分與右邊部分進(jìn)行交換。如果原字符串長度為奇數(shù),則最中間的字符不參加處理,字符仍放在原位置上。例如:位置012345678源字符串a(chǎn)bcdhgfe123498765則處理后字符串hgfedcba876594321部分源程序存在文件progl.c中。請勿改動主函數(shù)main(),讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#includecharxx[20][80];voidjsSort(){inti,j,k,strl,half;chartemp;for(i=0;i<20;i++){strl=strlen(xx[i]);half=strl/2;for(j=0;j 211FILE*in;inti=0;char*p;in=fopen(,,in.dat,,,"rn);while(i<20&&fgets(xx[i],80,in)!=NULL){p=strchr(xx[i],' 212,);if(P)*P=O;i++;}fclose(in);writeDat()(FILE*out;inti;clrscr();out=fopen("out.dat"Jw");for(i=0;i<20;i++){printf(,,%s 213,',xx[i]);fprintf(out,"%s 214u,xx[i]);}fclose(out);★題目45已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:依次從數(shù)組a中取出一個四位數(shù),如果該四位數(shù)連續(xù)大于該四位數(shù)以前的五個數(shù)且該數(shù)是偶數(shù)(該四位數(shù)以前不滿五個數(shù),則不統(tǒng)計),則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從大到小的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat。的內(nèi)容。#include#defineMAX200intafMAX],b[MAX],ent=0;voidjsVal(){inti,j,flag;for(i=5;i 215)for(i=0;i 216”,ent);for(i=0;i 217n);writeDat();)writeDat()(HLE*fp;inti;fp=fopen("out.datn,nw");fprintf(fp,M%d 218H,ent);for(i=0;i 219H,b[i]);fclose(fp); 220☆題目46已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:依次從數(shù)組a中取出一個四位數(shù),如果該四位數(shù)連續(xù)大于該四位數(shù)以前的五個數(shù)且該數(shù)是奇數(shù),且該數(shù)必須能被7整除(該四位數(shù)以前不滿五個數(shù),則不統(tǒng)計),則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從大到小的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],b[200J,已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat。的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVal(){inti,j,flag;for(i=5;ivMAX;I++){for(j=i-5;ja[j]&&a[i]%2&&a[i]%7==0)flag=l;else{flag=O;break;}if(flag==l)b[cnt++]=a[i];}for(i=0;i 221*ent);for(i=0;i 222n);writeDat();writeDat() 223[FILE*fp;inti;fp=fopen(Mout.datM,"w");fprintf(fp,H%d 224H,ent);for(i=0;i 225",b[i]);fclose(fp);題目47已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat()是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat。,其功能要求:按金額從大到小進(jìn)行排列,若金額相等,則按產(chǎn)品代碼從小到大進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT3.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#include#include#defineMAX100typedefstruct)chardm[5];/*產(chǎn)品代碼*/char產(chǎn)品名稱*/intdj;/*單價*/intsi;/*數(shù)量*/longje;/*金額*/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){inti,j;PROxy;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(sell[i].jeO){xy=sell[i];sell[i]=sell[j];sell[j]=xy;} 226}voidmain()(memset(sell,0,sizeof(sell));ReadDat();SortDat();WriteDatO;)voidReadDat()[FILE*fp;charstr[8OJ,ch[l1];inti;fp=fopen("IN.DAT",T');for(i=0;i<100;i++){fgets(str,8O,fp);memcpy(sell[i].dm,str,4);memcpy(sell[i].mc,str+4,10);memcpy(ch,str+14,4);ch[4]=0;sell[i].dj=atoi(ch);memcpy(ch,str+18,5);ch[5]=0;sell[i].sl=atoi(ch);sell[i].je=(long)sell[i].dj*sell[i].sl;)fclose(fp);)voidWriteDat()[FILE*fp;inti;fp=fopen(,,OUT3.DAT',;'wH);for(i=0;i<100;i++){printf(n%s%s%4d%5d%5d 227H,seU[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,M%s%s%4d%5d%5d 228M,sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fclose(fp);☆題目48 229已知數(shù)據(jù)文件in.dat中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat。把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsValueO,其功能是:求出千位數(shù)上的數(shù)加個位數(shù)上的數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個數(shù)ent,再把所有滿足此條件的四位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的四位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用寫函數(shù)writeDat()把結(jié)果輸出到out.dat文件。例如:6712,6+2=7+1,則該數(shù)滿足條件存入數(shù)組b中,且個數(shù)cnt=cnt+l。8129,8+901+2,則該數(shù)不滿足條件忽略。部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[300],b[300],已定義變量:ent請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)writeDat。的內(nèi)容。#includeinta[300J,b[300J,cnt=0;jsValueO{inti,qw,bw,sw,gw,j;for(i=0;i<300;i++){qw=a[i]/1000;bw=a[i]%1000/100;sw=a[i]%100/10;gw=a[i]%10;if(qw+gw=bw+sw)b[cnt++]=a[i];1fbr(i=O;i 230n,cnt);for(i=0;i}readDat()FILE*fp;inti;fp=fopen(',in.datn,,,rH);for(i=0;i<300;i++)fscanf(fp,M%d,n,&a[i]);fclose(fp);}writeDat() 231FILE*fp;inti;fp=fopen(,,out.dat,';,wM);fprintf(fp,"%d 232”,cm);for(i=0;i 233滿足條件的平均值pzjl=%7.2An不滿足條件的平均值pzj2=%7.2f 234",cnt,pjz 235l,pjz2);)readDat()(FILE*fp;inti;fp=fopen("in.dat","r”);for(i=0;i<300;i++)fscanf(fp;,%d;,,&a[i]);fclose(fp);)writeDat()(FILE*fp;inti;fp=fopen(',out.dat,","wM);fprintf(fp,',%d 236%7.2f 237%7.2f 238",cnt,pjzl,pjz2);fclose(fp);題目50函數(shù)ReadDat。實現(xiàn)從文件in.dat中讀取20行數(shù)據(jù)存放到字符串?dāng)?shù)組xx中(每行字符串長度均小于80)。請編制函數(shù)jsSort。,其函數(shù)的功能是:以行為單位對字符串按給定的條件進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat。把結(jié)果xx輸出到文件out.dat中。條件:從字符串中間一分為二,左邊部分按字符的ASCII值升序排序,排序后左邊部分與右邊部分進(jìn)行交換。如果原字符串長度為奇數(shù),則最中間的字符不參加處理,字符仍放在原位置上。例如:位置012345678源字符串dcbahgfe432198765則處理后字符串hgfeabcd876591234部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)WriteDat。的內(nèi)容。#include#include#includecharxx[2OJl8OJ; 239voidjsSort(){inti,j,k,strl,half;chartemp;for(i=0;i<20;i++){strl=strlen(xx[ij);half=strl/2;for(j=0;j 240,);if(p)*p=0;i++;fclose(in);writeDat()(FILE*out;inti;clrscr();out=fopen(Mout.dat*V'wH);for(i=0;i<20;i++){printf(M%s 241\xx[i]);fprintf(out,"%s 242",xx[i]);)fclose(out); 243)☆題目51已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把千位數(shù)字和十位數(shù)字重新組成一個新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字組成另一個新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字),如果新組成的兩個十位數(shù)均是素數(shù)且新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個數(shù)ent。最后main。函數(shù)調(diào)用寫函數(shù)writeDat。把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat。的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;intisprime(intm){inti;for(i=2;i<=m/2;i++)if(m%i==0)return0;return1;voidjsValQ{intij,qw,bw,sw,gw;intab,cd;for(i=0;i<200;i++){qw=a[i]/1000;bw=a[i]%1000/100;sw=a[i]%100/10;gw=a[i]%10;ab=10*qw+sw;cd=10*gw+bw;if(isprime(ab)&&isprime(cd)&&ab>=10&&cd>=10)b[cnt++]=a[i];)for(i=0;i 244for(i=0;i 245”,ent);for(i=0;i 246M);writeDat();)writeDat()(FILE*fp;inti;fp=fopen("out.dat",nwH);fprintf(fp,u%d 247n,ent);for(i=0;i 248",b[i]);fclose(fp);}題目52一知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并己調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制-函數(shù)jsVal(),其功能是:把千位數(shù)字和個位數(shù)字重新組成一個新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的個位數(shù)字),以及把百位數(shù)字和十位數(shù)字組成另一個新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的百位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),如果新組成的兩個十位數(shù)均是奇數(shù)并且兩個十位數(shù)中至少有一個數(shù)能被5整除,同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個數(shù)ent,最后main。函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200J,bl200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0; 249voidjsVal(){inti,thou,hun,ten,data,j;intab,cd;for(i=0;i 250”,ent);for(i=0;i 251");writeDat();)writeDat()[FILE*fp;inti;fp=fopen("out.datM,Hw");fprintf(fp,M%d 252M,ent);for(i=0;i 253,\b[i]);fclose(fp);☆題目53已知數(shù)據(jù)文件in.dat中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat。把這些 254數(shù)存入數(shù)組a中,請編制一函數(shù)jsValue(),其功能是:求出千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)減個位數(shù)上的數(shù)大于零的個數(shù)ent,再把所有滿足此條件的四位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的四位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用寫函數(shù)writeDat。把結(jié)果輸出到out.dat文件。例如:9123,9-1-2-3>0,則該數(shù)滿足條件存入數(shù)組b中,且個數(shù)cnt=cnt+l。9812,9-8-1-2>0,則該數(shù)不滿足條件忽略。部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[300],b[300],已定義變量:ent請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)writeDat。的內(nèi)容。#includeinta[3OO],b[3OO],cnt=O;jsValue(){intij,qw,bw,sw,gw;for(i=0;i<300;i++){qw=a[i]/1000;bw=a[i]/100%10;sw=a[i]%100/10;gw=a[i]%10;if((qw-bw-sw-gw)>0)b[cnt++]=a[i];)for(i=0;i 255'\cnt);for(i=0;i}readDat()[FILE*fp;inti;fp=fopen("in.dal",T);for(i=0;i<300;i++)fscanf(fp,M%d,M,&a[i]);fclose(fp);)writeDat()(FILE*fp;inti;fp=fopen(,,out.dat,',nw,');fprintf(fp,"%d 256",cnt);for(i=0;i 257題目54已知數(shù)據(jù)文件in.dat中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat。把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsValue。,其功能是:求出千位數(shù)上的數(shù)加百位數(shù)上的數(shù)等于十位數(shù)上的數(shù)加個位數(shù)上的數(shù)的個數(shù)ent,再把所有滿足此條件的四位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的四位數(shù)按從大到小的順序進(jìn)行排序,最后調(diào)用寫函數(shù)writeDat。把結(jié)果輸出到out.dat文件。例如:7153,7+1=5+3,則該數(shù)滿足條件存入數(shù)組b中,且個數(shù)cnt=cnt+L8129,8+102+9,則該數(shù)不滿足條件忽略。部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[300],b[300],已定義變量:ent請勿改動主函數(shù)main。、讀函數(shù)ReadDat()和寫函數(shù)writeDat。的內(nèi)容。#includeinta[3OO],b[3OO],cnt=O;jsValue(){inti,j,qw,bw,sw,gw;for(i=0;i<300;i++){qw=a[i]/1000;bw=a[i]/100%10;sw=a[i]%100/10;gw=a[i]%10;if(qw+bw=sw+gw)b[cnt++]=a[i];}for(i=0;i 258'\cnt);for(i=0;i}readDat()(HLE*fp;inti;fp=fopen(Min.dat",,'rM);for(i=0;i<300;i++)fscanf(fp,H%d;',&a[i]);fclose(fp);}writeDat()(FILE*fp;inti;fp=fopen(,,out.dat,',,'wn);fprintf(fp,H%d 259M,cnt);for(i=0;i 260題目55已知數(shù)據(jù)文件in.dat中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDal。把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsValue。,其功能是:求出所有這些四位數(shù)是素數(shù)的個數(shù)ent,再把所有滿足此條件的四位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的四位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用寫函數(shù)writeDat。把結(jié)果輸出到out.dat文件。例如:5591是素數(shù),則該數(shù)滿足條件存入數(shù)組b中,且個數(shù)cnt=cnt+l。9812是非素數(shù),則該數(shù)不滿足條件忽略。部分源程序存在文件progl.c中。程序中已定義數(shù)組:al300],b[3OOJ,已定義變量:ent請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)writeDat。的內(nèi)容。#includeinta[3OO],b[3OO],cnt=O;intisP(intm){inti;for(i=2;i 261,\cnt);for(i=0;i}readDat()(FILE*fp;inti;fp=fopen(Min.datH/,r't);for(i=0;i<300;i++)fscanf(fp,',%d;',&a[i]);fclose(fp);writeDat()FILE*fp;inti;fp=fopen("out.dat,,,"w,');fprintf(fp,H%d 262",cnt); 263for(i=0;i 264\007”);return;}encryptChar();WriteDat();} 265intReadDat(void)[FILE*fp;inti=0;unsignedchar*p;if((fp=fopen(,,eng.inn;,r,,))==NULL)return1;while(fgets(xx[i],8O,fp)!=NULL){p=strchr(xx[i], 266,);if(p)*p=O;i++;)maxline=i;fclose(fp);return0;)voidWriteDat(void)[FILE*fp;inti;fp=fopen("ps5.dar',"w");for(i=0;i 267M,xx[i]);fprintf(fp,,,%s 268M,xx[i]);}fclose(fp);★題目57設(shè)有n個人圍坐一圈并按順時針方向從1到n編號,從第s個人開始進(jìn)行1到m的報數(shù),報數(shù)到第m個人,此人出圈,再從他的下一個人重新開始1到m的報數(shù),如此進(jìn)行下去直到所有的人都出圈為止?,F(xiàn)要求按出圈次序,給出這n個人的順序表p。請考生編制函數(shù)Josegh()實現(xiàn)此功能并調(diào)用函數(shù)WriteDaK)把編號按照出圈的順序輸出到OUT.DAT文件中。注意:第1個出圈的編號存放在p[0]中,第2個出圈的編號存放在p[l]中,直至第n個出圈的編號存放在p[n-l]中。設(shè)n=100,s=1,m=10進(jìn)行編程。注意:部分源程序存放在PROG1.C中。清勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include#defineN100#defineS1 269#defineM10intp[100],n,s,m;voidWriteDat(void);voidJosegh(void){inti,j,sl,w,q[100];for(i=0;isl=s;for(i=1;i<=n;i++)p[i-l]=i;for(i=n;i>=2;i—){sl=(sl+m-l)%i;if(sl==O)sl=i;w=p[sl-l];for(j=sl;jp[i-l]=w;)for(i=0j=n-l;i=0;i++,j-)q[j]=pfi];for(i=0;i 270");fclose(fp);題目58現(xiàn)有一個10個人100行的選票數(shù)據(jù)文件IN.DAT,其數(shù)據(jù)存放的格式是每條記錄的長度均為10位,第一位表示第一個人的選中情況,第二位表示第二個人的選中情況,依此類推:內(nèi)容均為字符。和1,1表示此人被選中,0表示此人未被選中,若一張選票人數(shù)小于等于5個人 271時被認(rèn)為無效的選票。給定函數(shù)ReadDatO的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組xx中。請編制函數(shù)CounlRs()來統(tǒng)計每個人的選票數(shù)并把得票數(shù)依次存入yy⑼到y(tǒng)y[9]中。把結(jié)果yy輸出到文件OUT.DAT中。部分源程序存在文件progLc中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#includecharxx[100][ll];intyy[10];intReadDat(void);voidWriteDat(void);voidCountRs(void){inti,j,count;for(i=0;i<100;i-H-){count=0;for(j=0;j<10;j-H-)if(xx[iHj]==r)count++;if(count<=5)continue;for(j=0;j<10;j++)if(xx[i][)]=='1')yy[j]++;voidmain()(inti;for(i=0;i<10;i++)yy[i]=0;if(ReadDat()){printf("選票數(shù)據(jù)文件IN.DAT不能打開! 272\007”);return;CountRs();WriteDat();intReadDat(void)[FILE*fp;inti;if((fp=fopen(,'IN.DAT,,;,rH))==NULL)return1;for(i=0;i<100;i++){if(fgets(xx[i],l2,fp)==NULL)return1;xxli][10]=A0';} 273fclose(fp);return0;voidWriteDat(void)[FILE*fp;inti;fp=fopen(nOUT.DATn,"wn);fbr(i=O;i<10;i++){fprintf(fp,,,%d 274,,,yy[i]);printf("第%d個人的選票數(shù)=%d 275",i+l,yy[i]);)fclose(fp);★題目59已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把千位數(shù)字和卜位數(shù)字重新組成一個新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字組成另一個新的上位數(shù)cd(新十位數(shù)的卜位數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字),如果新組成的兩個十位數(shù)ab 276;cnt++;}1for(i=0;i 277”,ent);for(i=0;i 278");writeDat();writeDat()FILE*fp;inti;fp=fopen(nout.datM,"w");fprintf(fp,,,%d 279,',ent);for(i=0;i 280u,b[i]);fclose(fp);)題目60在文件in.dat中有200組數(shù)據(jù),每組有3個數(shù),每個數(shù)均是三位數(shù)。函數(shù)ReadDat()讀取這200組數(shù)據(jù)存放到結(jié)構(gòu)數(shù)組aa中,請編制函數(shù)jsSort(),其函數(shù)的功能是:要求在200組數(shù)據(jù)中找出條件為每組中的第二個數(shù)大于第一個數(shù)加第三個數(shù)的之和,其中滿足條件的組數(shù)作為函數(shù)jsSort()的返回值,同時把滿足條件的數(shù)據(jù)存入結(jié)構(gòu)數(shù)組bb中,再對bb中的數(shù)據(jù)按照每組數(shù)據(jù)的第二個數(shù)加第三個之和的大小進(jìn)行降序排列(第二個數(shù)加第三個數(shù)的和均不相等),排序后的結(jié)果仍重新存入結(jié)構(gòu)數(shù)組bb中,最后調(diào)用函數(shù)WriteDat。把結(jié)果bb輸出到文件out.dat中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#includetypedefstruct{intxl,x2,x3;}data;dataaa[200],bb[200];intjsSort(){inti,j,cnt=0; 281datach;for(i=0;i<200;i++)if(aa[i].x2>aa[i].xl+aa[i].x3)bb[cnt++]=aa[i];for(i=0;i 282M,bb[i].xl,bb[i].x2,bb[i].x3,bb[i].x2+bb[i].x3);fprintf(out,M%d%d%d 283,',bb[ij.xI,bb[ij.x2,bb[ij.x3);)fclose(out);)★題目61已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat()是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat。,其功能要求:按金額從小到大進(jìn)行排列,若金額相同,則按產(chǎn)品代碼從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT2.DAT中。 284部分源程序存在文件progLc中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#include#include#defineMAX100typedefstruct{chardm[5];/*產(chǎn)品代碼*/char產(chǎn)品名稱*/intdj;/*單價*/intsi;/*數(shù)量*/longje;/*金額*/}PRO;PROselllMAXJ;voidReadDat();voidWriteDat();voidSortDat(){intij;PROxy;for(i=0;i<99;i++)for(j=i+l;j<100;j++)if(sell[i].je>sell[j].jellsell[i].je==sellfj].je&&strcmp(sell[i].dm,sell[j].dm) 285fp=fopen(',IN.DATn;,rM);for(i=0;i<100;i++){fgets(str,80,fp);memcpy(sell[i|.dm,str,4);memcpy(sell[i].mc,str+4,10);memcpy(ch,str+14,4);ch[4]=0;sell[i].dj=atoi(ch);memcpy(ch,str+18,5);ch[5]=0;sell[i].sl=atoi(ch);sell[ij.je=(long)sellli].dj*sell[ij.sl;)fclose(fp);}voidWriteDat(void)[FILE*fp;inti;fp=fopen(,'OUT2.DAT,,;'wH);for(i=0;i<100;i++){printf(M%s%s%4d%5d%5d 286H,sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,M%s%s%4d%5d%5d 287",sell[il.dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);)fclose(fp);☆題目62函數(shù)ReadDat。實現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar。,按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat。把結(jié)果xx輸出到文件PS2.DAT中。替代關(guān)系:f(p)=p*13mod256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCH值),如果計算后f(p)值小于等于32或其ASCII值是偶數(shù),則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。部分源程序存在文件progl.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include#include#include#include 288unsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/iniReadDat(void);voidWriteDat(void);voidencryptChar(){inti,j;for(i=0;i 289\007");return;)encryptChar();WriteDat();)intReadDat(void)(HLE*fp;inti=0;unsignedchar*p;if((fp=fopen(,'eng.in,,,,'r',))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],, 290,);if(p)*p=O;i++;}maxline=i;fclose(fp);return0;}voidWriteDat(void){FILE*fp; 291inti;fp=fopen(Mps2.datM,',wM);for(i=0;i 292,',xx[i]);fprintf(fp,M%s 293H,xxli]);}fclose(fp);★題目63程序progl.c的功能是:把s字符串中的所有字符左移一個位置,串中的第一個字符移到最后o請考生編寫函數(shù)chg(char*s)實現(xiàn)程序要求,最后調(diào)用函數(shù)readwriteDAT()把結(jié)果輸出到bc2.out文件中。例如:s字符串中原有內(nèi)容為:Mn.l23xyZ,則調(diào)用該函數(shù)后,結(jié)果為:n.l23xyZMo注意:部分源程序存在文件progl.c文件中。請勿改動主函數(shù)main()利輸出數(shù)據(jù)函數(shù)readwriteDAT()的內(nèi)容。#include#include#defineN81voidreadwriteDAT();voidchg(char*s){inti;charch=*s;for(i=0;i 294FILE*rf,*wf;rf=fopen(Mbc2.inH,V);wf=fopen(,'bc2.outH,"wn);for(i=0;i<50;i++){fscanf(rf,"%s”,a);chg(a);fprintf(wf,n%s 295M,a);}fclose(rf);fclose(wf);★題目64下列程序的功能是:找出所有100以內(nèi)(含100)滿足I,1+4,1+10都是素數(shù)的整數(shù)I(1+10也在100以內(nèi))的個數(shù)ent以及這些I之和sum。請編寫函數(shù)countValue。實現(xiàn)程序要求的功能,最后調(diào)用函數(shù)writeDat。把結(jié)果ent和sum輸出到文件out.dat中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#includeintent,sum;intisPrime(intm)(inti;for(i=2;iif(m%i==0)return0;return1;}voidcountValue(){inti;for(i=2;i<=90;i++)if(isPrime(i)&&isPrime(i+4)&&isPrime(i+10)){cnt++;sum+=i;})voidmain()(cnt=sum=0;countValue();printf("滿足條件的整數(shù)的個數(shù)=%d 296”,cnt);printf("滿足條件的整數(shù)的和值=%d 297”,sum);writeDatO; 298writeDat()FILE*fp;fp=fopen(Mout.dat,';,wH);fprintf(fp,,,%d 299%d 300'\cnt,sum);fclose(fp);)☆題目65已知在文件IN.DAT中存有若干個(個數(shù)<200)四位數(shù)字的正整數(shù),函數(shù)ReadDat()讀取這若干個正整數(shù)并存入數(shù)組xx中。請編制函數(shù)CalValue。,其功能要求:1、求出這文件中共有多少個正整數(shù)totNum;2、求這些數(shù)中的各位數(shù)字之和是奇數(shù)的數(shù)的個數(shù)totCnt,以及滿足此條件的這些數(shù)的算術(shù)平均值totPjz,最后調(diào)用函數(shù)writeDat。把所求的結(jié)果輸出到文件OUT.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)writeDat。的內(nèi)容。#include#include#defineMAXNUM200intxx[MAXNUM];inttotNumH);/*文件IN.DAT中共有多少個正整數(shù)*/inttotCnt=0;/*符合條件的正整數(shù)的個數(shù)*/doubletotPjz=0.0;/*平均值*/intReadDat(void);voidwriteDat(void);voidCalValue(void){inti,qw,bw,sw,gw;fbr(i=O;i 301) 302return;}CalValue();primf("文件IN.DAT中共有正整數(shù)=%d個 303”,tolNum);printf("符合條件的正整數(shù)的個數(shù)=%dj 304】otCnt);printf("平均值=%.2f 305”,totPjz);writeDat();intReadDat(void)(FILE*fp;inti=0;if((fp=fopen(,,IN.DAT,,;,r,,))==NULL)return1;while(!feof(fp)){fscanf(fp,,'%d,',,&xx[i++]);}fclose(fp);return0;)voidwriteDat(void)(FILE*fp;fp=fopen(,,OUT.DATn;,wH);fprintf(fp,H%d 306%d 307%6.2f 308",totNum,totCnt,totPjz);fclose(fp);}★題目66下列程序progl.c的功能是:計算5OO?8OO區(qū)間內(nèi)素數(shù)的個數(shù)ent,并按所求素數(shù)的值從大到小的順序,再計算其間隔加、減之和,即第1個素數(shù)■第2個素數(shù)+第3個素數(shù)-第4個素數(shù)+第5個素數(shù)…的值sumo請編寫函數(shù)countVakie()實現(xiàn)程序的要求,最后調(diào)用函數(shù)writeDal。把結(jié)果ent和sum,輸出到文件OUT11.DAT中。部分源程序已給出。請勿改動主函數(shù)main。和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#includeintent,sum;intisP(intm){inti; 309for(i=2;i 310M,cnt);printf("按要求計算的值=%d 311”,sum);writeDat();)writeDat()[FILE*fp;fp=fopen(nOUTl1.DAT,\,,w,');fprintf(fp,M%d 312%d 313n,cnt,sum);fclose(fp);題目67下列程序的功能是:選出5000以下符合條件的自然數(shù)。條件是:千位數(shù)字與百位數(shù)字之和等于十位數(shù)字與個位數(shù)字之和,且千位數(shù)字與百位數(shù)字之和等于個位數(shù)字與千位數(shù)字之差的10倍。計算并輸出這些四位自然數(shù)的個數(shù)ent以及這些數(shù)的和sum。請編寫函數(shù)countVahie。實現(xiàn)程序的要求,最后調(diào)用函數(shù)writeDat()把結(jié)果ent和sum,輸出到文件OUT13.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#includeintent,sum;voidcountValue(){inti,thou,hun,ten,data; 314for(i=1000;i<5000;i++){thou=i/1000;hun=i%1000/100;ten=i%100/10;data=i%10;if(thou+hun==ten+data&&thou4-hun==(data-thou)*10){cnt++;sum+=i;}voidmain()(cnt=sum=0;countValue();printf("滿足條件的自然數(shù)的個數(shù)=%(1\11”,5。;printf("滿足條件的自然數(shù)的個數(shù)之和=%d 315”,sum);writeDat();writeDat()(FILE*fp;fp=fopen("OUT13.DAT",“w");fprintf(fp;,%d 316%d 317",cnt,sum);fclose(fp);)☆題目68已知數(shù)據(jù)文件IN,DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:如果四位數(shù)各位上的數(shù)字均是奇數(shù),則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。最后main。函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],bl200J,已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVaK){intij,thou,hun,ten,data;for(i=0;i<200;i++){thou=a[i]/l000;hun=alij%1000/100; 318ten=a[i]%100/10;data=a[i]%10;if(thou&&thou%2&&hun%2&&ten%2&&data%2)blcnt++]=a[i];}for(i=0;i 319”,ent);for(i=0;i 320M);writeDatO;writeDat()FILE*fp;inti;fp=fopen("out.dat","w“);fprintf(fp,"%d 321",ent);for(i=0;i 322u,b[ij);fclose(fp);題目69已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把一個四位數(shù)的千位數(shù)字上的值減去百位數(shù)字上的值再減去十位數(shù)字上的值最后減去個位數(shù)字上的值,如果得出的值大于等于零且原四位數(shù)是奇數(shù),則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat。把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],bl200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include 323#defineMAX200inta[MAX],b[MAX],ent=0;voidjsValO{inti,j,thou,hun,ten,data;for(i=0;i<200;i-H-){thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%10;if(thou-hun-ten-data>=0&&a[i]%2)b[cnt++]=a[i];}for(i=0;i 324”,ent);for(i=0;i 325,');writeDat();writeDat()[FILE*fp;inti;fp=fopen("out.datM,"w");fprintf(fp,M%d 326\ent);for(i=0;i 327",b[i]);fclose(fp);題目70已知在文件IN.DAT中存有若干個(個數(shù)〈200)四位數(shù)字的iE整數(shù),函數(shù)ReadDat。 328讀取這若干個正整數(shù)并存入數(shù)組xx中。請編制函數(shù)CalValue。,其功能要求:1、求出這文件中共有多少個正整數(shù)totNum;2、求這些數(shù)右移1位后,產(chǎn)生的新數(shù)是奇數(shù)的數(shù)的個數(shù)totCnt,以及滿足此條件的這些數(shù)(右移前的值)的算術(shù)平均值totPjz,最后調(diào)用函數(shù)writeDat。把所求的結(jié)果輸出到文件OUT.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main()>讀函數(shù)ReadDat。和寫函數(shù)writeDat()的內(nèi)容。#include#include#defineMAXNUM200intxx[MAXNUM];inttotNum=0;/*文件IN.DAT中共有多少個正整數(shù)*/inttotCnt=0;/*符合條件的正整數(shù)的個數(shù)*/doubletotPjz=0.0;/*平均值*/intReadDat(void);voidwriteDat(void);voidCalValue(void){intifdata;for(i=0;i 329");return;)CalValue();printf("文件IN.DAT中共有正整數(shù)二%d個 330】otNum);printff符合條件的正整數(shù)的個數(shù)=%dj 331”,totCnt);printf("平均值=%.2f 332,totPjz);writeDat(); 333)intReadDat(void)(FILE*fp;inti=0;if((fp=fopen(',IN.DAT;,,r,,))==NULL)return1;while(!feof(fp)){fscanf(fp;'%d,';&xx[i++]);}fclose(fp);return0;FILE*fp;fp=fopen(,,OUT.DATM;,wH);fprintf(fp,1,%d 334%d 335%6.2f 336u,totNum,totCnt,totPjz);fclose(fp);★題目71函數(shù)ReadDat()實現(xiàn)從文件in.dat中讀取20行數(shù)據(jù)存放到字符串?dāng)?shù)組xx中(每行字符串長度均小于80)。請編制函數(shù)jsSort(),其函數(shù)的功能是:以行為單位對字符串按給定的條件進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件out.dat中。條件:從字符串中間一分為二,左邊部分按字符的ASCII值降序排序,右邊部分按字符的ASCII值升序排序。如果原字符串長度為奇數(shù),則最中間的字符不參加排序,字符仍放在原位置上。例如:位置012345678源字符串a(chǎn)bcdhgfe123498765則處理后字符串dcbaefgh432195678部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#includecharxx[20][80];voidjsSort(){inti,j,k,strl,half;charch; 337for(i=0;i<20;i++){strl=strlen(xx[i]);half=strl/2;for(j=0;j 338voidmain()(readDat();jsSort();writeDat();)readDat()(FILE*in;inti=0;char*p;in=fopen(',in.dat";,rn);while(i<20&&fgets(xx[i],80,in)!=NULL){p=strchr(xx[i], 339,);if(p)*p=O;i++;)fclose(in);)writeDat()(FILE*out;inti;clrscr();out=fopen(,,out.dat,,,,'wu);for(i=0;i<20;i++){printf("%s 340”,xx[i]);fprintf(out,n%s 341';xx[i]);)fclose(out);}題目72已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把個位數(shù)字和千位數(shù)字重新組成一個新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的千位數(shù)字),以及把百位數(shù)字和十位數(shù)字組成另一個新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的百位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),如果新組成的兩個十位數(shù)均是偶數(shù)并且兩個十位數(shù)中至少有一個數(shù)能被9整除,同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個數(shù)ent。最后main。函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[2OOJ,b[200J,已定義變量:ent 342請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX]tent=0;voidjsVal(){inti,j,thou,hun,ten,data,ab,cd;for(i=0;i<200;i++){thou=a[i]/l000;hun=a[i]/l00%10;ten=a[i]%100/10;data=a[i]%10;ab=10*data+thou;cd=10*hun+ten;if((ab%9==0llcd%9==0)&&ab%2==0&&cd%2==0&&hun!=0&&data!=0){b[cnt]=a[i];cnt++;})for(i=0;i 343\ent);for(i=0;i 344u);writeDat();writeDat()(FILE*fp;inti;fp=fopen(Mout.dat","w,1);fprintf(fp,H%d 345n,ent);for(i=0;i 346”,b[i]);fclose(fp);}★題目73函數(shù)ReadDat。實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)ConverCharD。,其函數(shù)的功能是:以行為單位把字符串中的所有小寫字母改寫成該 347字母的上一個字母,如果是字母a,則改寫成字母zo大寫字母仍為大寫字母,小寫字母仍為小寫字母,其它字符不變。最后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat。把結(jié)果xx輸出到文件OUT4.DAT中。例:原文:Adb.Bcdzaabck.LLhj結(jié)果:Aca.Bbcyzzabj.LLgi原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#include#include#includecharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidConvertCharD(void){intij;for(i=0;i 348voidmain()clrscr();if(ReadDat()){printf("數(shù)據(jù)文件IN.DAT不能打開! 349\007u);return;)ConvertCharD();WriteDatO;}intReadDat(void)(FILE*fp;inti=0;char*p;if((fp=fopen(,,IN.DAT,,;,r,,))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],, 350,);if(p)*p=O;i++;)maxline=i;fclose(fp);return0;}voidWriteDat(void)(FILE*fp;inti;clrscr();fp=fopen(,'OUT4.DAT,,;'w'');for(i=0;i 351”,xx[i]);fprintf(fp,M%s 352n,xx[i]);)fclose(fp); 353★題目74函數(shù)ReadDat。實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)StrCharJLO,其函數(shù)的功能是:以行為單位把字符串中的所有字符的ASCH值左移4位,低位補(bǔ)0,如果左移后,其字符的ASCII值小于等于32或大于100,則原字符保持不變,否則就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串對應(yīng)的位置上。最后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT7.DAT中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#include#include#includecharxx[50][80J;intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidStrCharJL(void){inti,j;charc;for(i=0;i 354\007M);return;)StrCharJLO;WriteDat();intReadDat(void)FILE*fp; 355inti=0;char*p;if((fp=fopen(,,IN.DAT":,r"))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],, 356,);if(p)*p=O;i++;}maxline=i;fclose(fp);return0;}voidWriteDat(void){FILE*fp;inti;clrscr();fp=fopen(,'OUT7.DAT',;'wu);for(i=0;i 357,',xx[i]);fprintf(fp,,,%s 358,,,xx[i]);}fclose(fp);)★題目75在文件in.dat中有200組數(shù)據(jù),每組有3個數(shù),每個數(shù)均是三位數(shù)。函數(shù)ReadDat。讀取這200組數(shù)據(jù)存放到結(jié)構(gòu)數(shù)組aa中,請編制函數(shù)jsSort。,其函數(shù)的功能是:要求在200組數(shù)據(jù)中找出條件為每組中的第一個數(shù)大于第二個數(shù)加第三個數(shù)的和,其中滿足條件的組數(shù)作為函數(shù)jsSort()的返回值,同時把滿足條件的數(shù)據(jù)存入結(jié)構(gòu)數(shù)組bb中,再對bb中的數(shù)據(jù)按照每組數(shù)據(jù)的第一個數(shù)加第三個之和的大小進(jìn)行升序排列(第一個數(shù)加第三個數(shù)的和均不相等),排序后的結(jié)果仍幣:新存入結(jié)構(gòu)數(shù)組bb中,最后調(diào)用函數(shù)wdteDat。把結(jié)果bb輸出到文件out.dat中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#includetypedefstruct{intxl,x2,x3;}data;dataaa[200],bb[200J;intjsSort() 359{inti,j,cnt=0;dataxy;for(i=0;i<200;i++)if(aa[i].xl>(aa[i].x2+aa[i].x3))bb[cnt++]=aa[i];for(i=0;i 360M,bb[i].xI,bb[i].x2,bb[i].x3,bb[i].x1+bb[i].x3);fprintf(out,M%d%d%d 361M,bb[i].x1,bb[i].x2,bb[i].x3);fclose(out); 362★題目76已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把個位數(shù)字和千位數(shù)字重新組成一個新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的千位數(shù)字),以及把百位數(shù)字和卜位數(shù)字組成另一個新的十位數(shù)(新卜位數(shù)的卜位數(shù)字是原四位數(shù)的百位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),如果新組成的兩個十位數(shù)必須是一個奇數(shù),另一個為偶數(shù)并且兩個十位數(shù)中至少有一個數(shù)能被17整除,同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個數(shù)ent。最后main。函數(shù)調(diào)用寫函數(shù)writeDat。把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVal(){inti,j,thou,hun,ten,data,ab,cd;for(i=0;i 363”,ent);for(i=0;i 364,'); 365writeDat();)writeDat()[FILE*fp;inti;fp=fopen("out.datH,Hw");fprintf(fp,"%d 366",ent);for(i=0;i 367H,b[i]);fclose(fp);★題目77已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)比adDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把一個四位數(shù)的千位數(shù)字上的值加上十位數(shù)字上的值恰好等于百位數(shù)字上的值加上個位數(shù)字上的值,并且原四位數(shù)是偶數(shù),則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat。的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVal()(inti,j,thou,hun,ten,data;for(i=0;i 368inti;FILE*fp;fp=fopen(Min.datn,Mrn);for(i=0;i 369”,ent);for(i=0;i 370,\ent);for(i=0;i 371",b[i]);fclose(fp);★題目78已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:若一個四位數(shù)的千位數(shù)字上的值大于等于百位數(shù)字上的值,百位數(shù)字上的值大于等于十位數(shù)字上的值,以及十位數(shù)字上的值大于等于個位數(shù)字上的值,并且原四位數(shù)是奇數(shù),則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:aL2OOJ,b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVal() 372{intij,thou,hun,ten,data;for(i=0;i 373”,ent);for(i=0;i 374,');writeDat(); 375writeDat()FILE*fp;inti;fp=fopen("out.dat","w");fprintf(fp,M%d 376\ent);for(i=0;i 377H,b[i]);fclose(fp);★題目79請編寫函數(shù)voidcountValue(int*a,int*n),它的功能是:求出1到1000之內(nèi)能被7或11整除但不能同時被7或11整除的所有整數(shù)放在數(shù)組a中,并通過n返回這些數(shù)的個數(shù)。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。和輸出數(shù)據(jù)函數(shù)writeDAT()的內(nèi)容。#include#includevoidcountValue(int*a,int*n){inti;*n=0;for(i=l;i<=1000;i++)if(i%7==0&&i%lllli%7&&i%ll==0)a[(*n)++]=i;main()(intaa[1000],n,k;clrscr();countValue(aa,&n);for(k=0;k 378M);elseprintf(H%5d';aa[k]);writeDAT();writeDAT() 379FILE*fp;fp=fopen(Houtl9.dat1',MwH);countValue(aa,&n);for(k=0;k 380");elsefprintf(fpj%5d”,aa[k]);fprintf(fp;' 381H);fclose(fp);)題目80已知數(shù)據(jù)文件in.dat中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat。把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsValueO,其功能是:求出個位數(shù)上的數(shù)減千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減卜位數(shù)上的數(shù)大于零的個數(shù)ent,再求出所有滿足此條件的四位數(shù)平均值pjzl,以及不滿足此條件的四位數(shù)平均值pjz2,最后調(diào)用寫函數(shù)writeDat。把結(jié)果輸出到out.dat文件。例如:1239,9-1-2-3>0,則該數(shù)滿足條件計算平均值pjzl,且個數(shù)cnt=cnt+l。8129,9-8-1-2<0,則該數(shù)不滿足條件計算平均值pjz2。部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[300],已定義變量:cnt,pjzl,pjz2請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)writeDat。的內(nèi)容。#includeinta[300],cnt=0;doublepjz1=0.0,pjz2=0.0;jsValueO{inti,j,thou,hun,ten,data,n=0;for(i=0;i<300;i++){thou=a[i]/1000;hun=a[i]/100%10;ten=a[i]%100/10;data=a[i]%10;if(data-thou-hun-ten>0){cnt++;pjzl+=a[i];}else{n++;pjz2+=a[i];}}if(cnt=O)pjz1=0;elsepjzl/=cnt;if(n==0)pjz2=0;elsepjz2/=n;)main()inti;readDat();jsValue(); 382writeDat();printf(ncnt=%d 383滿足條件的平均值pzjl=%7.2f 384不滿足條件的平均值pzj2=%7.2f 385'\cnt,pjzl,pjz2);(readDat(){FILE*fp;inti;fp=fopen(,,in.dat,,,Hrn);for(i=0;i<300;i++)fscanf(fp,,,%d;',&a[i]);fclose(fp);}writeDat()(FILE*fp;inti;fp=fopen("out.dat,,,"w,');fprintf(fp,M%d 386%7.2f 387%7.2f 388",cnt,pjzl,pjz2);fclose(fp);)☆題目81已知數(shù)據(jù)文件in.dat中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat。把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsValue。,其功能是:求出千位數(shù)上的數(shù)加百位數(shù)等于十位數(shù)上的數(shù)加個位數(shù)上的數(shù)的個數(shù)cm,再求出所有滿足此條件的四位數(shù)平均值pjzl,以及不滿足此條件的四位數(shù)平均值pjz2,最后調(diào)用寫函數(shù)writeDat()把結(jié)果輸出到out.dat文件。例如:7153,7+1=5+3,則該數(shù)滿足條件計算平均值pjzl,且個數(shù)cnt=cnt+l?8129,8+102+9,則該數(shù)不滿足條件計算平均值pjz2。部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[300],已定義變量:cnt,pjzl,pjz2o請勿改動主:函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)wrileDat。的內(nèi)容。#includeinta[300],cnt=0;doublepjz1=0.0,pjz2=0.0;jsValue(){inti,thou,hun,ten,data,n=0;for(i=0;i<300;i++){thou=a[i]/1000;hun=a[i]%1000/100;ten=ali]%100/10;data=a[i]%IO; 389if(thou+hun=ten+data){cnt++;pjz1+=a[i];}else{n++;pjz2+=a[i];}}if(cnt=0)pjzl=0;elsepjzl/=cnt;if(n==0)pjz2=0;elsepjz2/=n;}main()(inti;readDat();jsValue();writeDat();printf(',cnt=%d 390滿足條件的平均值pzjl=%7.2An不滿足條件的平均值pzj2=%7.2f 391u,cnt,pjzl,pjz2);}readDat()(FILE*fp;inti;fp=fopen(nin.dat',,,,rn);for(i=0;i<300;i++)fscanf(fp,',%d;',&a[i]);fclose(fp);)writeDat()(FILE*fp;inti;fp=fopen(Mout.dat,',,,wn);fprintf(fp,,,%d 392%7.2f 393%7.2f 394,,,cnt,pjzl,pjz2);fclose(fp);}★題目82已知數(shù)據(jù)文件in.dat中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat。把這些數(shù)存入數(shù) 395組a中,請編制一函數(shù)jsVakieO,其功能是:求出所有這些四位數(shù)是素數(shù)的個數(shù)ent,再求出所有滿足此條件的四位數(shù)平均值pjzl,以及不滿足此條件的四位數(shù)平均值pjz2,最后調(diào)用寫函數(shù)writeDat。把結(jié)果cnt,pjzl,pjz2輸出到out.dat文件。例如:5591是素數(shù),則該數(shù)滿足條件計算平均值pjzl,且個數(shù)cm=cnt+L9812是非素數(shù),則該數(shù)不滿足條件計算平均值pjz2o部分源程序存在文件progLc中。程序中已定義數(shù)組:a[300],已定義變量:cnupjzl,pjz2請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)writeDat。的內(nèi)容。#includeintaL3OOJ,cnt=O;doublepjzl=0.0,pjz2=0.0;intisP(intm){inti;for(i=2;i 396滿足條件的平均值pzjl=%7.21 397不滿足條件的平均值pzj2=%7.2f 398",cnt,pjzl,pjz2);FILE*fp; 399inti;fp=fopen(',in.datn,,,rH);for(i=0;i<300;i++)fscanf(fp,M%dM,&a[i]);fclose(fp);}writeDat()FILE*fp;inti;fp=fopen(,,out.dat,';,wM);fprintf(fjp,M%d 400%7.2f 401%7.2f 402M,cnt,pjzl,pjz2);fclose(fp);☆題目83請編制函數(shù)ReadDat。實現(xiàn)從文件IN.DAT中讀取1000個十進(jìn)制整數(shù)到數(shù)組xx中;請編制函數(shù)Compute。分別計算出xx中奇數(shù)的個數(shù)odd,奇數(shù)的平均值avel,偶數(shù)的平均值ave2以及所有奇數(shù)的方差totfc的值,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到OUT.DAT文件中。計算方差的公式如下:N2totfc=l/NL(xx[i]-avel)i=l設(shè)N為奇數(shù)的個數(shù),xx[i]為奇數(shù),avel為奇數(shù)的平均值。原始數(shù)據(jù)文件存放的格式是:每行存放10個數(shù),并用逗號隔開。(每個數(shù)均大于。且小于等于2000)部分源程序存在文件progl.c中。請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#include#include#include#defineMAX1000intxx[MAX],odd=0,even=0;doubleave1=0.0,ave2=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void) 403inti;FILE*fp;if((fp=fopen("IN.DAT,,,Hr"))==NULL)return1;/*********編制函數(shù)ReadDat。的部分************/for(i=0;i 404M);fclose(fp);return0;}voidCompute(void){inti,yy[MAX];for(i=0;i 405");return;}ComputeO;printf(nODD=%d 406AVE1=%f 407AVE2=%f 408TOTFC=%f 409",odd,avel,ave2,totfc);WriteDat();IvoidWriteDat(void) 410(FILE*fp;inti;fp=fopen(',OUT.DAT',;,wH);fprintf(fp,n%d 411%f 412%f 413%f 414n,odd,ave1,ave2,totfc);fclose(fp);}☆題目84現(xiàn)有一個10個人100行的選票數(shù)據(jù)文件IN.DAT,其數(shù)據(jù)存放的格式是每條記錄的長度均為10位,第一位表示第一個人的選中情況,第二位表示第二個人的選中情況,依此類推:內(nèi)容均為字符0和1,1表示此人被選中,0表示此人未被選中,若一張選票人數(shù)大于5個人時被認(rèn)為無效的選票。給定函數(shù)ReadDat()的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組xx中。請編制函數(shù)CountRs。來統(tǒng)計每個人的選票數(shù)并把得票數(shù)依次存入yy[0]至ijyy[9]中。把結(jié)果yy輸出到文件OUT.DAT中。部分源程序存在文件progl.c中。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#includecharxx[100][ll];intyy[10];intReadDat(void);voidWriteDat(void);voidCountRs(void){inti,j,count;for(i=0;i<100;i++){count=0;for(j=0;j<10;j++)if(xx[i][j]==,r)count++;if(count>5)continue;for(j=0;j<10;j-H-)if(xx[i][j]=='r)yy[j]++;voidmain()inti;for(i=0;i<10;i++)yy[i]=0;if(ReadDat()){printf("選票數(shù)據(jù)文件IN.DAT不能打開! 415\007”);return;}CountRs(); 416WriteDat();IintReadDat(void)(FILE*fp;inti;if((fp=fopen(,'IN.DAT,,,V))==NULL)return1;for(i=0;i<100;i++){if(fgets(xx[ij,l2,fp)==NULL)return1;xx[i][10]=W;}fclose(fp);return0;}voidWriteDat(void)(FILE*fp;inti;fp=fopen(nOUT.DAT,V,wM);for(i=0;i<10;i++){fprintf(fp,M%d 417M,yy[i]);printf("第%d個人的選票數(shù)=%d 418”,i+l,yy[i]);}fclose(fp);☆題目85已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把一個四位數(shù)的個位數(shù)字上的值減去千位數(shù)字上的值再減去百位數(shù)字上的值最后減去十位數(shù)字上的值,如果得出的值大于等于零且原四位數(shù)是偶數(shù),則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progLc中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件1N.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat()和寫函數(shù)writeDal()的內(nèi)容。 419#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVal(){inti,j,thou,hun,ten,data;for(i=0;i 420”,ent);for(i=0;i 421,');writeDat();writeDat()FILE*fp;inti;fp=fopen("out.datM,"w");fprintf(fp,M%d 422H,ent);for(i=0;i 423,\b[i]);fclose(fp);)題目86已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把千位數(shù)字和十位數(shù)字重新組成一個新的十位數(shù)ab 424(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字組成另?個新的十位數(shù)cd(新十位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字),如果新組成的兩個十位數(shù)ab>cd,ab必須是偶數(shù)且能被5整除,cd必須是奇數(shù),同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個數(shù)ento最后main。函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVal(){inti,j,thou,hun,ten,data,ab,cd;for(i=0;i 425”,ent);for(i=0;i 426");writeDat(); 427writeDat()IFILE*fp;inti;fp=fopen(Mout.datM,"w");fprintf(fp,"%d 428",ent);for(i=0;i 429u,b[i]);fclose(fp);☆題目87已知數(shù)據(jù)文件in.dat中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat()把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsVakie(),其功能是:求出千位數(shù)上的數(shù)加個位數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個數(shù)ent,再求出所有滿足此條件的四位數(shù)平均值pjzl,以及不滿足此條件的四位數(shù)平均值pjz2,最后調(diào)用寫函數(shù)把結(jié)果輸出到out.dat文件。例如:6712,6+2=7+1,則該數(shù)滿足條件計算平均值pjzl,且個數(shù)cnt=cnt+l.8129,8+901+2,則該數(shù)不滿足條件計算平均值pjz2。部分源程序存在文件progl.c中。程序中已定義數(shù)組:a[300],已定義變量:ent,pjzl,pjz2。請勿改動主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)writeDat。的內(nèi)容。#includeinta[300],cnt=0;doublepjzl=0.0,pjz2=0.0;jsValue(){inti,gw,sw,bw,qw,cnt2=0;for(i=0;i<300;i++){gw=a[i]%10;sw=a[i]/10%10;bw=a[i]/100%10;qw=a[i]/1000;if((qw+gw)==(sw+bw)){cnt+4-;pjzl+=a[iJ;}else{cnt2++;pjz2+=a[i];)}if(cnt==O)pjzl=O;elsepjzl/=cnt;if(cnt2==O)pjz2=O;elsepjz2/=cnt2;main()(inti;readDat();jsValue();writeDat(); 430printf(Hcnt=%d 431滿足條件的平均值pzjl=%7.2f 432不滿足條件的平均值pzj2=%7.2f 433'\cnt,pjzl,pjz2);}readDat()(FILE*fp;inti;fp=fopen(”in.dat”,T);for(i=0;i<300;i++)fscanf(fp,n%d;',&a[i]);fclose(fp);)writeDat()(FILE*fp;inti;fp=fopen(,,out.dat",,,wn);fprintf(fp,n%d 434%7.2f 435%7.2f 436M,cnt,pjzl,pjz2);fclose(fp);題目88函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)SortCharAO,其函數(shù)的功能是:以行為單位對字符按從小到大的順序進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat。把結(jié)果xx輸出到文件OUT1.DAT中。例:原文:dAe,BfC.CCbbAA結(jié)果:,.ABCdefAACCbb原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。部分源程序存在文件progl.c中。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)writeDat。的內(nèi)容。#include#include#includecharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidSortCharA(void){intij,k,strl; 437charch;for(i=0;i 438\007M);return;SortCharA();WriteDat();intReadDat(void)FILE*fp;inti=0;char*p;if((fp=fopen(1,IN.DAr,;,rH))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],, 439,);if(p)*p=O;i++;}maxline=i;fclose(fp);return0;)voidWriteDat(void)[HLE*fp;inti;clrscr();fp=fopen(,,OUTl.DAT'\"w'');for(i=0;i 440,',xx[i]);fprintf(fp,M%s 441n,xx[i]);) 442fclose(fp);題目89已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把一個四位數(shù)的千位數(shù)字上的值加上個位數(shù)字上的值恰好等于百位數(shù)字上的值加上十位數(shù)字上的值,并且原四位數(shù)是奇數(shù),則統(tǒng)計出滿足此條件的個數(shù)ent并把這些四位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件progLc中。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main。、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。#include#defineMAX200inta[MAX],b[MAX],ent=0;voidjsVal()(inti,j,gw,sw,bw,qw;for(i=0;i 443jsVal();printf("滿足條件的數(shù)=%d 444”,ent);for(i=0;i 445");writeDat();}writeDal()(FILE*fp;inti;fp=fopen(MoutdatM,Mw");fprintf(fp,,,%d 446\ent);for(i=0;i 447",b[i]);fclose(fp);★題目90下列程序的功能是:將一正整數(shù)序列{KI,K2,…,K9}重新排列成一個新的序列。新序列中,比K1小的數(shù)都在K1的前面(左面),比K1大的數(shù)都在K1的后面(右面)。要求編寫函數(shù)jsValue()實現(xiàn)此功能>最后調(diào)用writeDat()函數(shù)將新序列輸出到文件out.dat中=說明:在程序中已給出了10個序列,每個序列有9個正整數(shù),并存入數(shù)組a[10][9]中,分別求出這10個新序列。例:序列{6,8,9,1,2,5,4,7,3}經(jīng)重排后成為{3,4,5,2』,6,8,9,7)部分源程序存在文件progl.c中。請勿改動主函數(shù)main。和寫函數(shù)writeDat。的內(nèi)容。#includejsValue(inta[10][9]){inti,j,k,val,num;for(i=0;i<10;i-H-){val=a[i][0];for(j=0;j<9;j++)if(a[i]U] 448intij;jsValue(a);for(i=0;i<10;i++){for(j=0;j<9;j++){printf("%d",a[i][j]);ifU<=7)printf(",");)printf(" 449");}writeDat(a);writeDat(inta[10][9])(FILE*fp;inti,j;fp=fopen("out.dat","w");for(i=0;i<10;i++){for(j=0;j<9;j++){printf("%d",a[i][j]);fprintf(fp,"%d",a[i]|j]);if(j<=7)fprintf(fp,",");)printf(" 450");fprintf(fp," 451");}fclose(fp);題目91請編制程序progl.c,從文件in.dat中讀取200個整數(shù)至數(shù)組xx中,求出奇數(shù)的個數(shù)cntl和偶數(shù)的個數(shù)cm2以及數(shù)組xx下標(biāo)為偶數(shù)的元素值的算術(shù)平均值pj(保留2位小數(shù))。結(jié)果cntl,cnt2,pj輸出到out.dat中。部分程序、讀數(shù)據(jù)函數(shù)read_dat(intxx[200])及輸出格式已給出。#include#include#defineN200voidread_dat(intxx[N])(inti,j;FILE*fp;fp=fopen("in.dat\T');for(i=0;i<20;i++){for(j=0;j<10y++){fscanf(fp,M%d,M,&xx[i*l0+j]);printf(M%d\xx[i*10+j]);}printf(,' 452,');}fclose(fp);}voidmain()[inti,j,sum; 453intcntl,cnt2,xx[N];floatpj;FILE*fw;clrscr();fw=fopen(',out.dat,',,,wH);read_dat(xx);sum=0;pj=O.O;cntl=cnt2=0;for(i=0;i{if(xx[i]%2)cntl++;elsecnt2++;if(i%2==0){pj+=xx[i];sum++;}}pj/=sum;printf('' 454 455cntl=%d,cnt2=%d,pj=%6.2f 456",cntl,cnt2,pj);fprintf(fw,"%d 457%d 458%6.2f 459',,cntl,cnt2,pj);fclose(fw);☆題目92請編制程序progl.c,從文件IN.DAT中讀取200個整數(shù)至數(shù)組xx中,求出最大數(shù)max及最大數(shù)的個數(shù)ent和數(shù)組xx中能被3整除或能被7整除的算術(shù)平均值pj(保留2位小數(shù))。結(jié)果max,ent,pj輸出到OUT.DAT中。部分程序、讀數(shù)據(jù)函數(shù)read_dat(intxx[200])及輸出格式已給出。#include#include#defineN200voidread_dat(intxx[NJ)!inti,j;FILE*fp;fp=fopen(Min.dat,V,rM);for(i=0;i<20;i++){for(j=0;j<10;j++){fscanf(fpJ%d,",&xx[i*10+jJ);printf(M%dM,xx[i*10+j]);}printf(” 460");)fclose(fp); 461voidmain()(intm,temp,n,sum;intcnt,xx[N],max;floatpj;FILE*fw;clrscr();fw=fopen(,'out.dat,,,"wH);read_dat(xx);cnt=0;max=xx[0];pj=O.O;n=0;for(m=0;m 462 463max=%d,cnt=%d,pj=%6.2f 464",max,cnt,pj);fprintf(fw,"%d 465%d 466%6.2f 467n,max,cnt,pj);fclose(fw);☆題目93請編制函數(shù)ReadDat。實現(xiàn)從文件IN.DAT中讀取1000個十進(jìn)制整數(shù)到數(shù)組xx中;請編制函數(shù)Compute(),分別計算出xx中奇數(shù)的個數(shù)odd,偶數(shù)的個數(shù)even,平均值aver以及方差totfc的值,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到OUT.DAT文件中。計算方差的公式如下:N2totfc=l/NL(xx[i]-aver)i=l原始數(shù)據(jù)文件存放的格式是:每行存放10個數(shù),并用逗號隔開。(每個數(shù)均大于0且小于等于2000)部分源程序存在文件progl.c中。請勿改動主函數(shù)main。和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#include#include#include#defineMAX1000intxx[MAX],odd=0,even=0;doubleaver=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void)inti; 468HLE*fp;if((fp=fopen(nIN.DAT,';,r',))==NULL)return1;/***************編制函數(shù)ReadDat。*****************/for(i=0;i 469M);fclose(fp);return0;voidCompute(void){inti;for(i=0;i 470");return;)Compute();printf("ODD=%d 471OVEN=%d 472AVER=%f 473TOTFC=%f 474';odd,even,aver,totfc);WriteDat();)voidWriteDat(void)[FILE*fp;inti; 475fp=fopen(,,OUT.DATM:,wM);fprintf(fp,,,%d 476%d 477%f 478%f 479,\odd,even,aver,totfc);fclose(fp);題目94請編制程序progl.c,從文件in.dat中讀取200個整數(shù)至數(shù)組xx中,求出奇數(shù)的個數(shù)cntl和偶數(shù)的個數(shù)cnt2以及數(shù)組xx中值為偶數(shù)的算術(shù)平均值pj(保留2位小數(shù))。結(jié)果cntl,cnt2,pj輸出到out.dat中。部分程序、讀數(shù)據(jù)函數(shù)read_dat(intxx[200])及輸出格式—給出。#include#include#defineN200voidread_dat(intxx[N])(inti,j;FILE*fp;fp=fopen(Hin.datM,Mrn);for(i=0;i<20;i++){for(j=0;j<10;j++){fscanf(fp?'%d,'\&xx[i*10+j]);printf(H%d”,xx[i*10+j]);}printf(M 480u);}fclose(fp);}voidmain()(intm,sum;intcntl,cnt2,xx[N];floatpj;FILE*fw;fw=fopen(,'out.dat,',Mw,');clrscr();read_dat(xx);cntl=0;cnt2=0;pj=O.O; 481for(m=0;m 482 483cnt1=%d,cnt2=%d,pj=%6.2f 484",cnt1,cnt2,pj);fprintf(fw,M%d 485%d 486%6.2f 487M,cntl,cnt2,pj);fclose(fw);☆題目95函數(shù)ReadDat。實現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WrileDal。把結(jié)果xx輸出到文件PS4.DA中。替代關(guān)系:f(p)=p*llmod256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果計算后f(p)值小于等于32或f(p)對應(yīng)的字符是大寫字母,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。部分源程序存在文件progl.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主:函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#includeunsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidencryptChar(){inti,j;for(i=0;i 488clrscr();if(ReadDat()){printf("數(shù)據(jù)文件ENGIN不能打開! 489\007H);return;}encryptChar();WriteDat();intReadDat(void)(FILE*fp;inti=0;unsignedchar*p;if((fp=fopen(Meng.inK,,,r,,))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],An,);if(p)*p=O;i++;)maxline=i;fclose(fp);return0;}voidWriteDat(void)(FILE*fp;inti;fp=fopen("ps4.dat","w");for(i=0;i 490M,xx[i]);fprintf(fp,,,%s 491,,,xx[i]);}fclose(fp);☆題目96函數(shù)ReadDatO實現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中:請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS5.DAT中。替代關(guān)系:f(p)=p*llmod256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果原字符是小寫字母或計算后f(p)值小于等于32,則該字符不變,否則將f(p) 492所對應(yīng)的字符進(jìn)行替代。部分源程序存在文件progl.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDatO和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#includeunsignedcharxx[50][80];intmaxline=O;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidencryptChar(){intij;for(i=0;i 493\007");return;)encryptChar();WriteDatO;}intReadDat(void)(FILE*fp;inti=0;unsignedchar*p;if((fp=fopen(Heng.inM,MrM))=NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i], 494,);if(p)*p=O; 495i++;)maxline=i;fclose(fp);return0;voidWriteDat(void)[FILE*fp;inti;fp=fopen("ps5.dat,,;,wn);for(i=0;i 496H,xx[i]);fprintf(fp」%s 497”,xx[i]);)fclose(fp);★題目97函數(shù)ReadDat。實現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置匕最或調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS9.DAT中。替代關(guān)系:f(p)=p*llmod256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果原字符是數(shù)字字符。至9或計算后f(p)值小于等于32,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。部分源程序存在文件progl.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat。和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#includeunsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidencryptChar() 498{inti,j;for(i=0;i 499\007u);return;)encryptChar();WriteDat();)intReadDat(void)(FILE*fp;inti=0;unsignedchar*p;if((fp=fopen(Meng.inM,Mr"))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i]^nt);if(p)*p=O;i++;}maxline=i;fclose(fp);return0;)voidWriteDat(void)(FILE*fp;inti;fp二fopen(”ps9.dat","w");for(i=0;i 500*',xx[i]);fprintf(fp,"%s 501\xx[i]);}fclose(fp); 502★題目98函數(shù)ReadDat()實現(xiàn)從文件ENG.IN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS3.DAT中。替代關(guān)系:f(p)=p*17mod256(p是數(shù)組中某一個字符的ASCH值,f(p)是計算后新字符的ASCII值),如果計算后f(p)值小于等于32或其ASCII值是奇數(shù),則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。部分源程序存在文件progl.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include#include#include#includeunsignedcharxx[50J[80J;intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidencryptChar(){intij;for(i=0;i 503\007u);return;)encryptChar();WriteDat();)intReadDat(void)FILE*fp;inti=0;unsignedchar*p; 504if((fp=fopen("eng.in",,,r"))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],' 505,);if(p)*p=O;i++;}maxline=i;fclose(fp);return0;)voidWriteDat(void)(FILE*fp;inti;fp=fopen("ps3.dat","w");for(i=0;i 506,,,xx[i]);fprintf(fp,,,%s 507,',xx[i]);}fclose(fp);題目99已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat。是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat。,其功能要求:按金額從小到大進(jìn)行排列,若金額相等,則按產(chǎn)品代碼從小到大進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT1.DAT中。部分源程序存在文件progl.c中。請勿改動主:函數(shù)main。、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat。的內(nèi)容。#include#include#include#include#include#defineMAX100typedefstruct{chardm[5];/*產(chǎn)品代碼*/ 508charmc[ll];/*產(chǎn)品名稱*/intdj;/*單價*/inisi;/*數(shù)量longje;/*金額*/}PRO;PROsell[MAXJ;voidReadDal();voidWriteDat();voidSortDat(){intij;PROxy;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(sell[i].je>sell[j].jellsell[i].je=sell[j].je&&strcmp(sell[i].dm,sell[j].dm)>O){xy=sell[i];sell[i]=sell[j];sell[j]=xy;}!voidmain()(memset(sell,0,sizeof(sell));ReadDat();SortDat();WriteDat();}voidReadDat()(HLE*fp;charstr[80],ch[ll];inti;fp=fopen(',IN.DATn;,rn);for(i=0;i<100;i++){fgets(str,80,fp);memcpy(sell[i].dm,str,4);memcpy(sell[i].mc,str+4,10);memcpy(ch,str+14,4);ch[4]=0;sell[i].dj=atoi(ch);memcpy(ch,str+18,5);ch[5]=0;sell[i].sl=atoi(ch);sell[i].je=(long)sell[ij.dj*sell[ij.sl;)fclose(fp); 509)voidWriteDat()(FILE*fp;inti;fp=fopen(MOUTLDAT",“w”);for(i=0;i<100;i++){printf(M%s%s%4d%5d%5d 510",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,M%s%s%4d%5d%5d 511';sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);)fclose(fp);}☆題目100函數(shù)ReadDat。實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)QunConvAO,其函數(shù)的功能是:以行為單位把字符串中的最后一個字符的ASCII值右移4位,高位補(bǔ)0后加最后第二個字符的ASCII值,得到最后一個新的字符,最后第二個字符的ASCII值右移4位,高位補(bǔ)0后加最后第三個字符的ASCII值,得到最后第二個新的字符,依此類推一直處理到第二個字符,第一個字符的ASCH值加原最后一個字符的ASCII值,得到第一個新的字符,得到的新字符分別存放在原字符串對應(yīng)的位置匕最后已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat。把結(jié)果xx輸出到文件OUT10.DAT中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。部分源程序存在文件progl.c中。請勿改動主函數(shù)main()和寫函數(shù)writeDat。的內(nèi)容。#include#include#includecharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidCharConvAO{inti,j;charp,c;for(i=0;i 512}Ivoidmain()(clrscr();if(ReadDat()){printf("數(shù)據(jù)文件IN.DAT不能打開! 513\007");return;}CharConvA();WriteDat();}intReadDat(void)(HLE*fp;inti=0;char*p;if((fp=fopen(,,IN.DAT,,;,r,,))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],, 514,);if(p)*p=O;i++;)maxline=i;fclose(fp);return0;}voidWriteDat(void)(FILE*fp;inti;fp=fopen("OUT10.DATn;'wn);for(i=0;i 515n,xx[i]);fprintf(fp,"%s 516”,xx[i]);}fclose(fp);
此文檔下載收益歸作者所有