全國計算機(jī)等級考試三級C語言上機(jī)100題

全國計算機(jī)等級考試三級C語言上機(jī)100題

ID:83018218

大?。?53.86 KB

頁數(shù):141頁

時間:2023-09-19

上傳者:燈火闌珊2019
全國計算機(jī)等級考試三級C語言上機(jī)100題_第1頁
全國計算機(jī)等級考試三級C語言上機(jī)100題_第2頁
全國計算機(jī)等級考試三級C語言上機(jī)100題_第3頁
全國計算機(jī)等級考試三級C語言上機(jī)100題_第4頁
全國計算機(jī)等級考試三級C語言上機(jī)100題_第5頁
全國計算機(jī)等級考試三級C語言上機(jī)100題_第6頁
全國計算機(jī)等級考試三級C語言上機(jī)100題_第7頁
全國計算機(jī)等級考試三級C語言上機(jī)100題_第8頁
全國計算機(jī)等級考試三級C語言上機(jī)100題_第9頁
全國計算機(jī)等級考試三級C語言上機(jī)100題_第10頁
資源描述:

《全國計算機(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;i0;m++)if(isP(m)){xx[s++]=m;k—;})main()(intm,n,xx[1000];clrscr();printf("

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=O;j-){if(isalpha(xx[i][j]))k++;else{fbr(m=1;m<=k;m++)

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;i130)continue;

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=,a,&&xx[i][j]<=y)xx[ij|j]+=l;voidmain()(clrscr();if(ReadDat()){printf("數(shù)據(jù)文件IN.DAT不能打開!

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=(a'&&s[i]<=yils[i]>=,A,&&s[i]<='Y,)s[i]+=l;}main()(chara[N];clrscr();printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);chg(a);printf(nThestringaftermodified:");puts(a);readwriteDAT();}voidreadwriteDAT()(

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;ia|j]&&a[i]%2)flag=1;else(flag=O;break;}if(flag==I)b[cnt++]=a[i];)for(i=0;ib[j]){flag=b[i];b[i]=b[j];b|j]=flag;})voidreadDat()(inti;FILE*fp;fp=fopenCIn.dat'1,V);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;ib[j]){qw=b[i];b[i]=b[j];b[j]=qw;)voidreadDat()(inti;FILE*fp;fp=fopen(Min.datn,Mrn);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=half)return1;elsereturn0;}main(){longm;FILE*out;out=fopen("out.dat"Jw");for(m=11;m<1000;m++){if(jsValue(m)&&jsValue(m*m)&&jsValue(m*m*m)){printf(,'m=%41d,m*m=%61d,m*m*m=%81d

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;i0){totNum++;data=xx[ij?l;if(data%2=0){totCnt++;totPjz+=xx[i];}}if(totCnt==0)totPjz=0;elsetotPjz/=totCnt;)voidmain()(inti;clrscr();for(i=0;iif(ReadDat()){printf("數(shù)據(jù)文件IN.DAT不能打開!\007

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=0且ab-cd<=10且兩個數(shù)均是奇數(shù),同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個數(shù)ent。最后main。函數(shù)調(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ù)

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=10&&ab-cd<=20&&ab%2==0&&cd%2==0&&qw!=0&&gw!=0)b[cnt++]=a[i];}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;ib|jj){flag=b[i];b[i]=b[j];b[j]=flag;)voidreadDat()[inti;

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)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(nIN.DATn,Mrn);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("OUT7.DAT","w");for(i=0;i<100;i++){printf("%s%s%4d%5d%5d

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=10000){b[2]=k;break;}sn=sn+al2;al=a2;a2=al2;k++;main()[jsValue();printf(HM=100,n=%d

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=,0,&&xx[i][j]*ll%256<=,9,)continue;elsexx[i][j]=xx[i][j]*ll%256;voidmain()clrscr();if(ReadDat()){printf("數(shù)據(jù)文件ENGIN不能打開!

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='A,&&xx[i]|j]<='Z')continue;elsexx[i][j]=xx[i][j]*ll%256;voidmain()(clrscr();if(ReadDat()){printf("數(shù)據(jù)文件ENGIN不能打開!

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;i0){totNum++;qw=xx[i]/1000;bw=xx[i]/100%10;sw=xx[i]%100/10;gw=xx[i]%10;if((qw+bw+sw+gw)%2==0){totCnt++;totPjz+=xx[i];})if(totCnt==0)totPjz=0;elsetotPjz/=totCnt;voidmain()[inti;clrscr();for(i=0;iif(ReadDat()){printf("數(shù)據(jù)文件IN.DAT不能打開!\007

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=O;j-,k-){temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}voidmain()(readDat();jsSort();writeDat();readDat()

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;ia[j]&&a[i]%2==0)flag=l;else{flag=O;break;}if(flag==l)b[cnt++]=a[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;ib[j]){qw=b[i];b[i]=b[j];b[j]=qw;}main()[inti;readDat();jsValueO;writeDat();printf(Mcnt=%d

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;i0,則該數(shù)滿足條件計算平均值pjzl,且個數(shù)cnt=cnt+lo9812,9?8?1?2v0,則該數(shù)不滿足條件計算平均值pjz20部分源程序存在文件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;jsValue(){inti,qw,bw,sw,gw,n=0;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-bw-sw-gw>0){cnt++;pjz1+=a[i];}else{n++;pjz2+=a[i];}}if(cnt=O)pjz1=0;elsepjzl/=cnt;if(n==O)pjz2=0;elsepjz2/=n;)main()(inti;readDat();jsValue();writeDat();printf(',cnt=%d

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;jxx[i][k]){temp=xx[i][j];xx[i][jl=xx[i][k];xx[i][kl=temp;}for(j=half-1,k=strl-1;j>=O;j—,k—){temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}voidmain()[readDat();jsSort();writeDat();)readDat(){FILE*in;inti=0;char*p;in=fopen("in.datu,*?**);while(i<20&&fgets(xx[i],80,in)!=NULL){p=strchr(xx[i],

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=10&&cd>=10)b[cnt++]=a[i];}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;ib[j]){qw=b[i];b[i]=b[j];b[j]=qw;})main()inti;readDat();jsValue();writeDat();printf(Mcnt=%d

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;ib[j]){value=b[i];b[i]=b[j];b[j]=value;})main()(inti;readDat();jsValue();writeDat();printf("cnt=%d

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=,a'&&xx[i][j]*l1%256<=^)continue;elsexx[i][j]=xx[i][j]*ll%256;voidmain()clrscr();if(ReadDat()){printf("數(shù)據(jù)文件ENGIN不能打開!

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=10&&cd>=10){b[cnt]=a[i]

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;i0){totNum++;qw=xx[i]/1000;bw=xx[i]/100%10;sw=xx[i]%100/10;gw=xx[i]%10;if((qw+bw+sw+gw)%2){totCnt++;totPjz+=xx[i];}}if(totCnt==0)totPjz=0;elsetotPjz/=totCnt;voidmain()inti;clrscr();for(i=0;iif(ReadDat()){printf(”數(shù)據(jù)文件IN.DAT不能打開!\007

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;i500;i-)if(isP⑴)Icnt++;sum=sum+k*i;k=k*(-l);}voidmain()(cnt=sum=0;countValue();printf("素數(shù)的個^[=%d

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;ib[j]){thou=b[i];b[i]=b[j];b[j]=thou;}voidreadDat()[inti;HLE*fp;fp=fopen(Hin.datn,nrM);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;i0){totNum++;data=xx[ij?l;if(data%2){totCnt++;tolPjz+=xx[i];}}if(totCnt==0)totPjz=0;elsetotPjz/=totCnt;voidmain(){inti;clrscr();for(i=0;iif(ReadDat()){printf("數(shù)據(jù)文件IN.DAT不能打開!\007

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;jxx[i][k]){ch=xx[i][j];xx[i]|j]=xx[i][k];xx[i][k]=ch;}

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=fb,&&xx[i][j]<=,z,)xx[i][j]-=l;

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;i100))xx[i][j]+=c;voidmain()(clrscr();if(ReadDat()){printf("數(shù)據(jù)文件IN.DAT不能打開!

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;ibb[j].xl+bb[j].x3){xy=bb[i];bb[i]=bb[j];bb[j]=xy;}returnent;}voidmain()(intcount;readDat();count=jsSort();/*返回滿足條件的個數(shù)*/writeDat(count);}readDat()(HLE*in;inti;in=fopen(uin.dat",,,rH);for(i=0;i<200;i++)fscanf(in,u%d%d%dM,&aa[i].xl,&aa[i].x2,&aa[i].x3);fclose(in);}writeDat(intcount)(FILE*out;inti;clrscr();out=fopen(nout.datn,"w");for(i=0;iprintf(H%d,%d,%d第一個數(shù)+第三個數(shù)=%d

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=l0&&cd>=10))b[cnt++]=a[i];)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;ib[j]){thou=b[i];b[i]=b[j];b[j]=thou;}voidreadDat()[

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=hun&&hun>=ten&&ten>=data&&a[i]%2)b[cnt++]=a[ij;}for(i=0;ib[j]){thou=b[i];b[i]=b[j];b[j]=thou;}voidreadDat()[inti;FILE*fp;fp=fopen(nin.dat",nr");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=0&&a[ij%2=0)b[cnt++[=a[i];}for(i=0;ib[j]){thou=b[i];b[i]=b[j];b[j]=thou;}}voidreadDat()(inti;FILE町p;fp=fopen(Min.dat",nr");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;i0&&(ab%2!=1&&ab%5==0)&&cd%2=1&&ab>=10&&cd>=10){b[cnt]=a[i];cnt++;)}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;ixx[i][k])(ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}voidmain()(clrscr();if(ReadDat()){prinlf("數(shù)據(jù)文件IN.DAT不能打開!

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;ib|jj){qw=b[i];b[i]=b|jj;b[j]=qw;})voidreadDat()(inti;FILE*fp;fp=fopen("in.dat","r");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]0;k-)a[i][k]=a[i][k-l];a[i][0]=num;main()(inta[10][9]={{6,8,9,1,2,5,4,7,3),(3,5,8,9,1,2,6,4,7),(821,9,3,5,4,6,7},{3,5,129,8,6,7,4},(4,7,891,2,5,3,6},{4,7,3,5,126,8,9},(9,1,3,5,8,6,2,4,7),(2,6,1,9,8,3,5,7,4),(5,3,7,9,1,8,2,6,4),{7,1,325,8,9,4,6},

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='A,&&xx[i][j]*ll%256<=,Z')continue;elsexx[i][j]=xx[i][j]*ll%256;voidmain()(

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=,a,&&xx[i][j]<=,z,)continue;elsexx[i][j]=xx[i][j]*l1%256;!voidmain()(clrscr();if(ReadDat()){printf("數(shù)據(jù)文件ENGIN不能打開!

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='0'&&xx[i][j]<=,9,)continue;elsexx[i[[j]=xx[i][j]*l1%256;voidmain()(clrscr();if(ReadDat()){printf("數(shù)據(jù)文件ENGIN不能打開!

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;iO;j—)xx[i][j]=(xxli][j]?4)+xx[ij[j-l];xx[i][O]=p+c;

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);

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。
最近更新
更多
大家都在看
近期熱門
關(guān)閉