



版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1.已知數(shù)據(jù)文件INI.DAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:如果4位數(shù)各位上的數(shù)字均是奇數(shù),則統(tǒng)計(jì)出滿(mǎn)足此條件的個(gè)數(shù)ent,并把這些4位數(shù)按從大到小的順序存入數(shù)組b中。最后調(diào)用函數(shù)writeDat。把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸出到OUT1.DAT文件。注意:部分源程序已給出。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat()對(duì)寫(xiě)函數(shù)writeDat()的內(nèi)容。試題程序:?include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidwriteDat();voidjsVal()voidreadDat()(inti;FILE*fp;fp=fopen("INI.DAT","r");for(i=0;i<MAX;i++)fscanf(fpzn%dnz&a[i]);fclose(fp);)voidmain()(inti;readDat();jsVal();printf("滿(mǎn)足條件的數(shù)=%d\n”,ent);for(i=0;i<cnt;i++)printf(**%d\nH,b[i]);printf(n\nn);writeDat();voidwriteDat()(FILE*fp;inti;fp=fopen(nout1.dat","w");fprintf(fp,"%d\n",ent);for(i=0;i<cnt;i++)fprintf(fpfn%d\nnzb[i]);fclose(fp);(【答案】voidjsVal()inti,j;intalinti,j;intalra2za3za4;inttemp;/*定義變量保存4位數(shù)的每位數(shù)字*//*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<200;i++) /*逐個(gè)取每一個(gè)4位數(shù)*/a4=a[i]/1000; /*求4位數(shù)的千位數(shù)字*/a3=a[i]%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=a[i]%100/10; /*求4位數(shù)的十位數(shù)字*/al=a[i]%10; /*求4位數(shù)的個(gè)位數(shù)字*/if(a4%2!=0&&a3%2!=0&&a2%2!=0&&al%2!=0)/*如果4位數(shù)各位上的數(shù)字均是奇數(shù)*/b[cnt]=a[i];/*將滿(mǎn)足條件的數(shù)存入數(shù)組b中*/cnt++; /*統(tǒng)計(jì)滿(mǎn)足條件的數(shù)的個(gè)數(shù)*/)}for(i=0;i<cnt-l;i++)/*將數(shù)組b中的數(shù)按從大到小的順序排列*/for(j=i+l;j<cnt;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;})2.已知IN2.DAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:依次從數(shù)組a中取出一個(gè)數(shù),如果該4位數(shù)連續(xù)大于該4位數(shù)以后的5個(gè)數(shù)且該數(shù)是奇數(shù),則統(tǒng)計(jì)出滿(mǎn)足此條件的數(shù)的個(gè)數(shù)ent,并把這些4位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫(xiě)函數(shù)writeDatO把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸出至ijOUT2.DAT文件中。注意:部分源程序已給出。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent。請(qǐng)勿改動(dòng).主函數(shù)main。、讀函數(shù)readDat。和寫(xiě)函數(shù)writeDat。的內(nèi)容。試題程序:#include<stdio.h>#defineMAX200inta[MAX],b[MAX],ent=0;voidwriteDat();voidjsVal()voidreadDat()(inti;FILE*fp;fp=fopen("IN2.DAT",nrn);for(i=0;i<MAX;i++)fscanf(fpr"%d",&a[i]);fclose(fp);voidmain()inti;readDat();jsVal();printf("滿(mǎn)足條件的數(shù)=%d\n",ent);for(i=0;i<ent;i++)printf(H%d",b[i]);printf("\nn);writeDat();}voidwriteDat(){FILE*fp;inti;fp=fopen(HOUT2.DATn,nwri);fprintf(fp, ent);for(i=0;i<ent;i++)fprintf(fp,"%d\n”,b[i]);fclose(fp);}【答案】voidjsVal()(intizj; /*定義循環(huán)控制變量*/inttemp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<MAX-5;i++)/*逐個(gè)取福個(gè)4位數(shù)*/if(a[i]%2!=0)/*如果當(dāng)前數(shù)是奇數(shù)*/(for(j=i+l;j<=i+5;j++)/*取該數(shù)后面的5個(gè)數(shù)進(jìn)行比較*/if(a[i]<a[j])break; /*如果當(dāng)前數(shù)不滿(mǎn)足比后面5個(gè)數(shù)都大的條件,則跳出循環(huán)*/i£(j==i+6)/*如果當(dāng)前數(shù)比后面的5個(gè)數(shù)都大*/(b[ent]=a[i];/*將滿(mǎn)足條件的數(shù)存入數(shù)組b中*/cnt++;/*并統(tǒng)計(jì)滿(mǎn)足條件的數(shù)的總個(gè)數(shù)字/}}for(i=0;i<cnt-l;i++)/求利用選擇法對(duì)數(shù)組b中的元素進(jìn)行從小到大的排序*/for(j=i+l;j<cnt;j++)if(b[i]>b[j])(temp=b[i];b[i]=b[j];b[j]=temp;)3.已知在文件IN3.DAT中存有100個(gè)產(chǎn)品銷(xiāo)售記錄,每個(gè)產(chǎn)品銷(xiāo)售記錄由產(chǎn)品代碼dm
(字符型4位)、產(chǎn)品名稱(chēng)me(字符型10位)、單價(jià)dj(整型)、數(shù)量si(整型)、金額je(長(zhǎng)整型)幾部分組成。其中:金額=單價(jià)X數(shù)量。函數(shù)ReadDal。的功能是讀取這100個(gè)銷(xiāo)售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat。,其功能要求:按產(chǎn)品名稱(chēng)從小到大進(jìn)行排列,若產(chǎn)品名稱(chēng)相同,則按金額從小到大進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT3.DAT中。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)ReadDat。和寫(xiě)函數(shù)WriteDat。的內(nèi)容。試題程序:?include<stdio.h>#include<memory.h>?include<string.h>#include<stdlib.h>#defineMAX100typedefstructchardm[5];charme[11];intdj;intsi;longje;}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat())voidmain()(memset(sell,ReadDat();SortDat();WriteDat();)/*產(chǎn)品代碼*//*產(chǎn)品代碼*//*產(chǎn)品名稱(chēng)*//*單價(jià)*//*數(shù)量*//*金額*/0,sizeof(sell));FILE*fp;charstr[80]zch[11];inti;fgets(strz80,fp);memepy(sell[i].dm,strz4);memepy(sell[i].mczstr+4,10);memepy(ch,sell[i].djmemepy(ch,sell[i].sisell[i].fgets(strz80,fp);memepy(sell[i].dm,strz4);memepy(sell[i].mczstr+4,10);memepy(ch,sell[i].djmemepy(ch,sell[i].sisell[i].je}fclose(fp);)str+14,4);ch[4]=0;=atoi(ch);str+18,5);ch[5]=atoi(ch);=(long)sell[i].dj0;*sell[i].si;voidWriteDat()FILE*fp;inti;fp=fopen("0UT3.DAT",nwn);for(i=0;i<100;i++){fprintf(fp,"%s%s%4d%5d%101d\nn,sell[i].dm,sell[i].mczsell[i].djrsell[i].si,sell[i].je);|fclose(fp);)【答案】voidSortDat()(inti,j;/*定義循環(huán)控制變量*/PROtemp;/*定義數(shù)據(jù)交換時(shí)的暫存變量(這里是PRO類(lèi)型的結(jié)構(gòu)體變量)*/for(i=0;i<99;i++)/*利用選擇法進(jìn)行排序*/for(j=i+l;j<100;j++)if(strcmp(sell[i].mc,sell[j].me)>0)/*按產(chǎn)品名稱(chēng)從小到大進(jìn)行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}elseif(strcmp(sell[i].mczsell[j].me)==0)/*若產(chǎn)品名稱(chēng)相同*/if(sell[i].je>sell[j].je)/*則按金額從小到大進(jìn)行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;)}4.函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件ENG4.IN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中。請(qǐng)編制函數(shù)encryptChar。,按給定的替代關(guān)系對(duì)數(shù)組xx中的所有字符進(jìn)行替代,結(jié)果仍存入數(shù)組xx對(duì)應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS4.DAT中。替代關(guān)系:f(p)=p*llmod256(p是數(shù)組xx中某一個(gè)字符的ASCII值,f(p)是計(jì)算后新字符的ASCII值),如果計(jì)算后f(p)的值小于等于32或大于130,則該字符不變,否則將f(p)所對(duì)應(yīng)的字符進(jìn)行替代。注意:部分源程序已給出。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)ReadDat()和寫(xiě)函數(shù)WriteDat。的內(nèi)容。試題程序:?include<stdlib.h>?include<stdio.h>?include<string.h>?include<ctype.h>unsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidencryptChar()}voidmain(){system(”CLS");if(ReadDat()){printf("數(shù)據(jù)文件ENG4.IN不能打開(kāi)!\n\007");return;}encryptChar();WriteDat();)intReadDat(void){FILE*fp;inti=0;unsignedchar*p;if((fp=fopen(nENG4.IN\"r"))==NULL)return1;while(fgets(xx[i]r80,fp)!=NULL){p=strchr(xx[i],1\nT);if(P)*p=0;i++;)maxline=i;fclose(fp);return0;)voidWriteDat(void)(FILE*fp;inti;fp=fopen("PS4.DAT”,nwn);for(i=0;i<maxline;i++){printf("%s\n",xx[i]);fprintf(fpzn%s\nu,xx[i]);}fclose(fp);)【答案】voidencryptChar()(inti,j; /*定義循環(huán)控制變量*/intstr; /*存儲(chǔ)字符串的長(zhǎng)度*/charch; /*存儲(chǔ)當(dāng)前取得的字符*/for(i=0;i<maxline;i++)/*以行為單位獲取字符*/(str=strlen(xx[i]);/*求得當(dāng)前行的字符串長(zhǎng)度*/for(j=0;j<str;j++)/*依次取每行的各個(gè)字符*/ch=xx[i][j]*11%256;if(ch<=32||ch>130)continue;/*如果計(jì)算后的值小于等于32或大130,則該字符不變*/elsexx[i][j]=ch;/*否則將所對(duì)應(yīng)的字符進(jìn)行替代*/)}}5.函數(shù)ReadDat。的功能是實(shí)現(xiàn)從文件1N5.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中。請(qǐng)編制函數(shù)ConvertCharA(),該函數(shù)的功能是:以行為單位把字符串中的所有小寫(xiě)字母改寫(xiě)成該字母的下一個(gè)字母,如果是字母z,則改寫(xiě)成字母a。大寫(xiě)字母仍為大寫(xiě)字母,小寫(xiě)字母仍為小寫(xiě)字母,其他字符不變。把已處理的字符串仍按行重新存入字符串?dāng)?shù)組XX中,最后調(diào)用函數(shù)WriteDatO把結(jié)果xx輸出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj結(jié)果:Aec.Bdeabbcdl.LLik原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)ReadDat。和寫(xiě)函數(shù)WriteDatO的內(nèi)容。試題程序:#include<stdio.h>?include<string.h>#include<stdlib.h>charxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidConvertCharA(void)(}voidmain(){system(MCLSH);if(ReadDat()){printf("數(shù)據(jù)文件IN5.DAT不能打開(kāi)!\n\007");return;}ConvertCharA();WriteDat();)intReadDat(void){FILE*fp;inti=0;char*p;if((fp=fopen(nIN5.DATn,"r"))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL)p=strchr(xx[i]z*\n1);if(p)*p=0;i++;}maxline=i;fclose(fp);return0;)voidWriteDat(void)(FILE*fp;inti;system(nCLSn);fp=fopen("OUT5.DAT",nwn);for(i=0;i<maxline;i++){printf("%s\n",xx[i]);fprintf(fpz”%s\n”,xx[i]);}fclose(fp);)【答案】voidConvertCharA(void)(inti,j;/*定義循環(huán)控制變量*/intstr; /*存儲(chǔ)字符串的長(zhǎng)度*/for(i=0;i<maxline;i++)/*以行為單位獲取字符*/[str=strlen(xx[i]);/*求得當(dāng)前行的字符串的長(zhǎng)度*/for(j=0;j<str;j++)/*逐個(gè)取得當(dāng)前行的每一個(gè)字符*/if(xx[i][j]>-a&&xx[i][j"='z')/*如果是小寫(xiě)字母*/if(xx[i][j]='z')xx[i][j]='a';/*如果是小寫(xiě)字母z,則改寫(xiě)成字母a*/elsexx[i][j]+=l;/*其他的小寫(xiě)字母則改寫(xiě)為該字母的下?個(gè)字母*/6.在文件IN6.DAT中有200個(gè)正整數(shù),且每個(gè)數(shù)均在1000至9999之間。函數(shù)readDat()的功能是讀取這200個(gè)數(shù)存放到數(shù)組aa中。請(qǐng)編制函數(shù)jsSort(),該函數(shù)的功能是:要求按每個(gè)數(shù)的后3位的大小進(jìn)行降序排列,將排序后的前10個(gè)數(shù)存入數(shù)組b中,如果數(shù)組b中出現(xiàn)后3位相等的數(shù),則對(duì)這些數(shù)按原始4位數(shù)據(jù)進(jìn)行升序排列。最后調(diào)用函數(shù)writeDat。把結(jié)果bb輸出到文件OUT6.DAT中。例如:處理前90125099601270258088處理后50998088702560129012注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat。和寫(xiě)函數(shù)writeDat()的內(nèi)容。試題程序:#include<stdio.h>#include<string.h>?include<stdlib.h>intaa[200]zbb[10];voidreadDat();voidwriteDat();voidjsSort()voidmain()(readDat();jsSort();writeDat();)voidreadDat(){FILE*in;inti;in=fopen(nIN6.DATn,"r");for(i=0;i<200;i++)fscanf(in,”%d,",&aa[i]);fclose(in);)voidwriteDat()(FILE*out;inti;out=fopen("OUT6.DAT”,Mwn);system(nCLSn);for(i=0;i<10;i++){printf(Hi=%dz%d\nn,i+1,bb[i]);fprintf(outr"%d\n",bb[i]);}fclose(out);)【答案】voidjsSort(){inti,j;/*定義循環(huán)控制變量*/inttemp;/*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<199;i++)/*用選擇法對(duì)數(shù)組進(jìn)行排序*/for(j=i+l;j<200;j++)(if(aa[i]%1000<aa[j]%1000)/*按照每個(gè)數(shù)的后3位大小進(jìn)行降序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;)elseif(aa[i]%1000==aa[j]%1000)*如果后3位數(shù)相等*/if(aa[i]>aa[j])*則按原4位數(shù)的大小進(jìn)行升序排序*/Itemp=aa[i];aa[i]=aa[j];aa[j]=temp;))for(i=0;i<10;i++)/*將排序后的前10個(gè)數(shù)存入數(shù)組bb中*/bb[i]=aa[i];}7.函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件IN7.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中。請(qǐng)編制函數(shù)SortCharD(),該函數(shù)的功能是:以行為單位對(duì)字符按從大到小的順序進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA結(jié)果:fedCBA,bbCCAA原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()、讀函數(shù)ReadDat()和寫(xiě)函數(shù)WriteDat()的內(nèi)容。試題程序:?include<stdio.h>?include<string.h>#include<stdlib.h>charxx[50][80];intmaxline=0;intReadDat(void);voidWriteDat(void);voidSortCharD()(}voidmain()(system("CLS");if(ReadDat())printf("數(shù)據(jù)文件IN7.DAT不能打開(kāi)!\n\007");return;}SortCharD();WriteDat();)intReadDat(void)(FILE*fp;inti=0;char*p;if((fp=fopen(nIN7.DAT0,"rn))==NULL)return1;while(fgets(xx[i]r80ffp)!=NULL){p=strchr(xx[i],,\n*);if(p)*p=0;i++;)maxline=i;fclose(fp);return0;)voidWriteDat()(FILE*fp;inti;system(nCLSM);fp=fopen("OUT7.DAT“,;for(i=0;i<maxline;i++){printf("%s\n",xx[i]);fprintf(fp,n%s\nn,xx[i]);}fclose(fp);)【答案】voidSortCharD()(inti,j,k; /*定義循環(huán)控制變量*/intstr; /*存儲(chǔ)字符串的長(zhǎng)度*/chartemp;/*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<maxline;i++)/*以行為單位獲取字符*/(str=strlen(xx[i]);/*求得當(dāng)前行的字符串長(zhǎng)度*/for(j=0;j<str-l;j++)/*對(duì)字符按從大到小的順序進(jìn)行排序*/for(k=j+l;k<str;k++)if(xx[i][j]<xx[i][k])(temp-xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;)))8.對(duì)10個(gè)候選人進(jìn)行選舉,現(xiàn)有一個(gè)100條記錄的選票數(shù)據(jù)文件IN8.DAT,其數(shù)據(jù)存放的格式是每條記錄的長(zhǎng)度均為10位,第一位表示第?個(gè)人的選中情況,第二位表示第二個(gè)人的選中情況,依次類(lèi)推。每一位內(nèi)容均為字符0或1,1表示此人被選中,0表示此人未被選中,若一張選票選中人數(shù)小于等于5個(gè)人時(shí)則被認(rèn)為是無(wú)效的選票。給定函數(shù)ReadDat()的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組xx中。請(qǐng)編制函數(shù)CountRsO來(lái)統(tǒng)計(jì)每個(gè)人的選票數(shù)并把得票數(shù)依次存入yy[0]到y(tǒng)y[9]中,最后調(diào)用函數(shù)WriteDat。把結(jié)果yy輸出到文件OUT8.DAT中。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)ReadDat。和寫(xiě)函數(shù)WriteDat。的內(nèi)容。試題程序:?include<stdio.h>?include<memory.h>charxx[100][11];intyy[10];intReadDat(void);voidWriteDat(void);voidCountRs(void)voidmain(){inti;for(i=0;i<10;i++)yy[i]=0;if(ReadDat()){printf("選票數(shù)據(jù)文件IN8.DAT不能打開(kāi)!\007\n");return;}CountRs();WriteDat();intReadDat(void)(FILE*fp;inti;chartt[13];if((fp=fopen(nIN8.DATnz""))==NULL)return1;for(i=0;i<100;i++){if(fgets(ttr13rfp)==NULL)return1;memcpy(xx[i],tt,10);}fclose(fp);return0;)voidWriteDat(void)(FILE*fp;inti;fp=fopen("OUT8.DAT”,nwH);for(i=0;i<10;i++){fprintf(fpr"%d\n",yy[i]);printf("第%d個(gè)人的選票數(shù)=%d\n”,i+1,yy[i]);}fclose(fp);)voidCountRs(void)inti,j; /*定義循環(huán)控制變量*/intent; /*用來(lái)存儲(chǔ)每張選票中選中的人數(shù),以判斷選票是否有效*/for(i=0;i<10;i++)/*初始化數(shù)組yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每張選票進(jìn)行統(tǒng)計(jì)*/(cnt=0; /*初始化計(jì)數(shù)器變量*/for(j=0;j<10;j++)/*統(tǒng)計(jì)每張選票的選中人數(shù)ent*/if(xx[i][j]==,I')cnt++;if(cnt>5) /*當(dāng)ent值大于5時(shí)為有效選票*/[for(j=0;j<10;j++)/*統(tǒng)計(jì)有效選票*/if(xx[i][j]=='I')yy[j]++;))9.下列程序的功能是:利用以下所示的簡(jiǎn)單迭代方法求方程:cos(x)-x=0的一個(gè)實(shí)根。xn+l=cos(xn)迭代步驟如下:(1)取xl初值為0.0。x0=x1,把xl的值賦給xO。xl=cos(x0)>求出一個(gè)新的xl。(4)若xO-xl的絕對(duì)值小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2).(5)所求xl就是方程cos(x)-x=0的一個(gè)實(shí)根,作為函數(shù)值返回。請(qǐng)編寫(xiě)函數(shù)countValue()實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù)writeDAT()把結(jié)果輸出到文件out9.dat中。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main。和寫(xiě)函數(shù)writeDAT()的內(nèi)容。試題程序:#include<stdlib.h>?include<math.h>?include<stdio.h>voidwriteDAT();floatcountvalue()voidmain()(system("CLS");printf("實(shí)根=%£\n",countvalue());printf(n%f\nn,cos(countvalue())-countvalue());writeDAT();)voidwriteDAT(){FILE*wf;wf=fopen(nout9.dat",;fprintf(wf,H%f\n*\countvalue());fclose(wf);)【答案】floatcountValue()(floatxO,xl=0.0;/*定義兩個(gè)浮點(diǎn)型變量進(jìn)行迭代*/while(l)/*無(wú)條件循環(huán)*/(xO-xl;/*將xl值賦給x0*/xl=cos(x0); /*求出新的xl值*/if(fabs(xO-xl)<le-6)break;/*若xO-xl的絕對(duì)值小于0.000001,則結(jié)束循環(huán)*/)returnxl;/*返回xl的值*/)10.請(qǐng)編寫(xiě)函數(shù)voidcountValue(int*a,int*n),它的功能是:求出1到1000之內(nèi)能被7或11整除但不能同時(shí)被7和11整除的所有整數(shù)并存放在數(shù)組a中,并通過(guò)n返回這些數(shù)的個(gè)數(shù)。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main。和寫(xiě)函數(shù)writeDAT。的內(nèi)容。試題程序:#include<stdlib.h>?include<stdio.h>voidwriteDAT();voidcountValue(int*a,int*n){}voidmain()(intaa[1000],n,k;system(nCLSM);countValue(aaz&n);for(k=0;k<n;k++)if((k+1)%10==0){printf(H%5dnfaa[k]);printf(n\nn);)elseprintf(M%5dn,aa[k]);writeDAT();)voidwriteDAT()intaa[1000]znzk;FILE*fp;fp=fopen("outl0.dat","w”);countvalue(aa,&n);for(k=0;k<n;k++)if((k+1)%10==0){fprintf(fpzn%5dnzaa[k]);fprintf(fpzn\nn);)elsefprintf(fpzH%5dM,aa[k]);fclose(fp);)【答案】voidcountValue(int*a,int*n)[inti;/*定義循環(huán)控制變量*/n=0;/*初始化計(jì)數(shù)器變量*/for(i=l;i<=1000:i++)/*在這個(gè)范圍內(nèi)尋找符合條件的數(shù)*/if((i%7=0&&i%ll!=0)||(i%7!=0&&i%ll=0))/*如果當(dāng)前數(shù)可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{a=i;/*保存符合條件的數(shù)*/n=*n+l;/*統(tǒng)計(jì)符合條件的數(shù)的個(gè)數(shù)*/a++;})11.已知在文件INIl.DAT中存有若干個(gè)(個(gè)數(shù)<200)4位數(shù)字的正整數(shù),函數(shù)ReadDat。的功能是讀取這若干個(gè)正整數(shù)并存入數(shù)組xx中。請(qǐng)編制函數(shù)CalValueO,其功能要求:(1)求出該文件中共有多少個(gè)正整數(shù)totNum;(2)求這些數(shù)右移1位后,產(chǎn)生的新數(shù)是偶數(shù)的數(shù)的個(gè)數(shù)totCnt,以及滿(mǎn)足此條件的這些數(shù)(右移前的值)的算術(shù)平均值totPjz,最后調(diào)用函數(shù)WrileDat。把所求的結(jié)果輸出到文件OUT11.DAT中。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)ReadDat。和寫(xiě)函數(shù)WriteDat。的內(nèi)容。試題程序:#include<stdio.h>#include<stdlib.h>#defineMAXNUM200intxx[MAXNUM];inttotNum=0;/*文件[Nil.DAT中共有多少個(gè)正整數(shù)*/inttotCnt=0;/*符合條件的正整數(shù)的個(gè)數(shù)*/doubletotPjz=0.0;/*平均值*/intReadDat(void);voidWriteDat(void);voidCalValue(void)inti;system(nCLSH);for(i=0;i<MAXNUM;i++)xx[i]=0;if(ReadDat())printf("數(shù)據(jù)文件INll.DAT不能打開(kāi)!\007\n");return;}CalValue();printf("文件[Nil.DAT中共有正整數(shù)=%d個(gè)\n”,totNum);printf("符合條件的正整數(shù)的個(gè)數(shù)=%d個(gè)\口",totCnt);printf("平均值=%.21f\n",totPjz);WriteDat();)intReadDat(void){FILE*fp;inti=0;if((fp=fopen("工Nil.DAT”,Hrn))==NULL)return1;while(!feof(fp))(fscanf(fpr”%d,”,&xx[i++]);}fclose(fp);return0;)voidWriteDat(void)(FILE*fp;fp=fopen(nOUTll.DATnznwn);fprintf(fprH%d\n%d\n%.21f\r)'\totNum,totCnt,totPjz);fclose(fp);)【答案】voidCalValue(void)(inti; /*定義循環(huán)控制變量*/intdata;/*用于保存處理后產(chǎn)生的新數(shù)*/for(i-0;i<200;i++)/*逐個(gè)取數(shù)組xx中的數(shù)進(jìn)行統(tǒng)計(jì)*/if(xx[i]>0)/*判斷是否正整數(shù)*/{totNum++;/*統(tǒng)計(jì)正整數(shù)的個(gè)數(shù)*/data=xx[i]?l;/*將數(shù)右移一位*/if(data%2==0)/*如果產(chǎn)生的新數(shù)是偶數(shù)*/[totCnt++;/*統(tǒng)計(jì)這些數(shù)的個(gè)數(shù)*/totPjz+=xx[i];/*并將滿(mǎn)足條件的原數(shù)求和*/)totPjz/=totCnt;/*求滿(mǎn)足條件的這些數(shù)(右移前的值)的算術(shù)平均值*/).已知數(shù)據(jù)文件IN12.DAT中存有300個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中。請(qǐng)編制函數(shù)jsValue。,其功能是:求出千位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個(gè)數(shù)ent,再把所有滿(mǎn)足此條件的4位數(shù)依次存入數(shù)組b中,然后對(duì)數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用寫(xiě)函數(shù)writeDat。把數(shù)組b中的數(shù)輸出到OUT12.DAT文件中。例如:6712,6+2=7+1,則該數(shù)滿(mǎn)足條件,存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+l。8129,8+9W1+2,則該數(shù)不滿(mǎn)足條件,忽略。注意:部分源程序已給出。程序中已定義數(shù)組:a[300],b[300],已定義變量:ent。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat。和寫(xiě)函數(shù)writeDat。的內(nèi)容。試題程序:#include<stdio.h>inta[300],b[300],cnt=0;voidreadDat();voidwriteDat();voidjsValue()}voidmain()(inti;readDat();jsValue();writeDat();printf("cnt=%d\n",ent);for(i=0;i<cnt;i++)printf(nb[%d]=%d\nn,i,b[i]);)voidreadDat(){FILE*fp;inti;fp=fopen(MIN12.DATMZnrM);for(i=0;i<300;i++)fscanf(fpz"%d,",&a[i]);fclose(fp);)voidwriteDat(){FILE*fp;inti;fp=fopen(”O(jiān)UT12.DAT",nwn);fprintf(fp,"%d\n",ent);for(i=0;i<cnt;i++)fprintf(fp,”%d,\n",b[i]);fclose(fp);)voidjsValueOIinti,j; /*定義循環(huán)控制變量*/intal,a2,a3,a4; /*定義變量保存4位數(shù)的每位數(shù)字*/inttemp: /*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<300;i++) /*逐個(gè)取每一個(gè)4位數(shù)*/(a4=a[i]/1000; /*求4位數(shù)的千位數(shù)字*/a3=a[i]%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=a[i]%100/10;/*求4位數(shù)的十位數(shù)字*/al=a[i]%10; /*求4位數(shù)的個(gè)位數(shù)字*/if(a4+a1==a3+a2)/*如果千位數(shù)加個(gè)位數(shù)等于百位數(shù)加十位數(shù)*/(b[cnt]=a[i];/*將滿(mǎn)足條件的數(shù)存入數(shù)組b中*/cnt++; /*統(tǒng)計(jì)滿(mǎn)足條件的數(shù)的個(gè)數(shù)ent*/})for(i=0;i<cnt-l;i++) /*用選擇法對(duì)數(shù)組b中的4位數(shù)按從小到大的順序進(jìn)行排序*/for(j=i+l;j<cnt;j++)if(b[i]>b[j])(temp=b[i];b[i]=b[j];b[j]=temp;)}.已知數(shù)據(jù)文件IN13.DAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:如果4位數(shù)各位上的數(shù)字均是。或2或4或6或8,則統(tǒng)計(jì)出滿(mǎn)足此條件的數(shù)的個(gè)數(shù)ent,并把這些4位數(shù)按從大到小的順序存入數(shù)組b中,最后調(diào)用寫(xiě)函數(shù)writeDat()把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸出到OUT13.DAT文件中。注意:部分源程序已給出。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat()和寫(xiě)函數(shù)writeDat()的內(nèi)容。試題程序:?include<stdio.h>#defineMAX200inta[MAX],b[MAX],ent=0;voidwriteDat();voidjsVal()voidreadDat()(inti;FILE*fp;fp=fopen(HINI3.DATn,nrn);for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclose(fp);}voidmain()(inti;readDat();jsVal();printf("滿(mǎn)足條件的數(shù)=%d\n",ent);for(i=0;i<ent;i++)printf(H%d",b[i]);printf(M\nn);writeDat();)voidwriteDat(){FILE*fp;inti;fp=fopen(MOUT13.DAT MwM);fprintf(fpz"%d\n”,ent);for(i=0;i<ent;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);)【答案】voidjsVal()(inti,j; /*定義循環(huán)控制變量*/intal,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/inttemp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<200;i++)/*逐個(gè)取每一個(gè)4位數(shù)*/(a4=a[i]/1000;/*求4位數(shù)的千位數(shù)字*/a3=a[i]%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=a[i]%100/10; /*求4位數(shù)的十位數(shù)字*/al=a[i]%10; /*求4位數(shù)的個(gè)位數(shù)字*/if(a4%2==0&&a3%2==0&&a2%2=0&&al%2==0){ /*如果各位上的數(shù)字均是0或2或4或6或8*/b[cnt]=a[i]; /*將滿(mǎn)足條件的數(shù)存入數(shù)組b中*/cnt++; /*統(tǒng)計(jì)滿(mǎn)足條件的數(shù)的個(gè)數(shù)ent*/))for(i=0;i<cnt-l:i++)/*將數(shù)組b中的數(shù)按從大到小的順序排序*/for(j=i+l;j<cnt;j++)if(b[i]<b[j])(temp=b[i];b[i]=b[j]:b[j]=temp;)14.已知數(shù)據(jù)文件IN14.DAT中存有300個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsValueO,其功能是:求出千位數(shù)上的數(shù)加百位數(shù)上的數(shù)等于十位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù)的個(gè)數(shù)ent,再把所有滿(mǎn)足此條件的4位數(shù)依次存入數(shù)組b中,然后對(duì)數(shù)組b的4位數(shù)從大到小進(jìn)行排序,最后調(diào)用寫(xiě)函數(shù)writeDat()把數(shù)組b中的數(shù)輸出到OUT14.DAT文件。例如:7153,7+1=5+3,則該數(shù)滿(mǎn)足條件,存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+l。8129,8+1#2+9,則該數(shù)不滿(mǎn)足條件,忽略。注意:部分源程序已給出。程序中已定義數(shù)組:a[300],b[300],已定義變量:cnto請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat。和寫(xiě)函數(shù)writeDat()的內(nèi)容。試題程序:#include<stdio.h>inta[300],b[300],cnt=0;voidreadDat();voidwriteDat();voidjsValue()voidmain()(inti;readDat();jsValue();writeDat();printf(,,cnt=%d\nn,ent);for(i=0;i<ent;i++)printf(Mb[%d]=%d\nn,1,b[i]);voidreadDat(){FILE*fp;inti;fp=fopen(HINI4.DATM,nrn);for(i=0;i<300;i++)fscanf(fpz"%d,",&a[i]);fclose(fp);)voidwriteDat(){FILE*fp;inti;fp=fopen(MOUT14.DAT°,nwn);fprintf(fp,M%d\nn,ent);for(i=0;i<ent;i++)fprintf(fp,"%d,\n",b[i]);fclose(fp);【答案】voidjsValue()inti,j; /*定義循環(huán)控制變量*/intal,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/inttemp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<300;i++) /*逐個(gè)取每一個(gè)4位數(shù)*/(a4=a[i]/1000; /*求4位數(shù)的千位數(shù)字*/a3=a[i]%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=a[i]%100/10;/*求4位數(shù)的十位數(shù)字*/al=a[i]%10; /*求4位數(shù)的個(gè)位數(shù)字*/if(a4+a3==a2+al) /*如果千位數(shù)字加百位數(shù)字等于十位數(shù)字加個(gè)位數(shù)字*/[b[cnt]=a[i];/*把滿(mǎn)足條件的4位數(shù)依次存入數(shù)組b中*/cnt++; /*計(jì)算滿(mǎn)足條件的數(shù)的個(gè)數(shù)*/)}for(i=0;i<cnt-l;i++) /*對(duì)數(shù)組b中的4位數(shù)按從大到小的順序進(jìn)行排序*/for(j=i+l;j<cnt;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;})15.已知數(shù)據(jù)文件inl5.dat中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:若一個(gè)4位數(shù)的千位數(shù)字上的值小于等于百位數(shù)字上的值,百位數(shù)字上的值小于等于十位數(shù)字上的值,以及十位數(shù)字上的值小于等于個(gè)位數(shù)字上的值,并且此4位數(shù)是偶數(shù),則統(tǒng)計(jì)出滿(mǎn)足此條件的數(shù)的個(gè)數(shù)ent并把這些4位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫(xiě)函數(shù)writeDal()把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸出到out15.dat文件中。注意:部分源程序已給出。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent.請(qǐng)勿改動(dòng)主函數(shù)main()、讀函數(shù)readDat()和寫(xiě)函數(shù)writeDat()的內(nèi)容。試題程序:#include<stdio.h>#defineMAX200inta[MAX]zb[MAX]zcnt=0;voidwriteDat();voidjsVal()(}voidreadDat()inti;FILE*fp;fp=fopen(ninl5.datH,nrn);for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclose(fp);)voidmain()(inti;readDat();jsVal();printf("滿(mǎn)足條件的數(shù)=%d\n",ent);for(i=0;i<cnt;i++)printf(n%d\nM,b[i]);writeDat();)voidwriteDat(){FILE*fp;inti;fp=fopen(noutl5.dat*\nwn);fprintf(fp,"%d\n",ent);for(i=0;i<cnt;i++)fprintf(fpz"%d\nnfb[i]);fclose(fp);)【答案】voidjsVal()(inti,j; /*定義循環(huán)控制變量*/intal,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/inttemp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0:i<200:i++)/*逐個(gè)取每一個(gè)4位數(shù)*/[a4=a[i]/1000;/*求4位數(shù)的千位數(shù)字*/a3=a[i]%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=a[i]%100/10;/*求4位數(shù)的十位數(shù)字*/al=a[i]%10; /*求4位數(shù)的個(gè)位數(shù)字*/if((a4<=a3)&&(a3<=a2)&&(a2<=al)&&(al%2==0))/*如果該數(shù)的千位數(shù)字小于等于百位數(shù)字,百位數(shù)字小于等于十位數(shù)字,十位數(shù)字小于等于個(gè)位數(shù)字,并且此4位數(shù)是偶數(shù)*/{b[cnt]=a[i];/*則將該數(shù)存入數(shù)組b中*/cnt++; /*并且統(tǒng)計(jì)出滿(mǎn)足條件的數(shù)的個(gè)數(shù)*/)}for(i=0;i<cnt-l;i++)/*把數(shù)組b中的4位數(shù)按從小到大的順序排列*/for(j=i+l;j<cnt:j++)if(b[i]>b[j])temp=b[i];b[i]=b[j];b[j]=temp;))16.已知數(shù)據(jù)文件IN16.DAT中存有300個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsValue(),其功能是:求出千位數(shù)上的數(shù)減百位數(shù)上數(shù)減十位數(shù)上的數(shù)減個(gè)位數(shù)上的數(shù)大于零的數(shù)的個(gè)數(shù)ent,再把所有滿(mǎn)足此條件的4位數(shù)依次存入數(shù)組b中,然后對(duì)數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用寫(xiě)函數(shù)writeDat。把數(shù)組b中的數(shù)輸出到OUT16.DAT文件中。例如:9123,9-1-2-3>0,則該數(shù)滿(mǎn)足條件,存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+l。9812,9-8-1-2<0,則該數(shù)不滿(mǎn)足條件,忽略。注意:部分源程序已給出。程序中已定義數(shù)組:a[300],b[300],已定義變量:ent,請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat。利寫(xiě)函數(shù)writeDat。的內(nèi)容。試題程序:#include<stdio.h>inta[300]fb[300],cnt=0;voidreadDat();voidwriteDat();jsValue(){}voidmain(){inti;readDat();jsValue();printf(ncnt=%d\nn,ent);writeDat();for(i=0;i<cnt;i++)printf(nb[%d]=%d\nnrirb[i]);)voidreadDat(){FILE*fp;inti;fp=fopen(MIN16.DATnznrn);for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);)voidwriteDat()(FILE*fp;inti;fp=fopen(MOUT16.DATHZnwn);fprintf(fp,"%d\n",ent);for(i=0;i<cnt;i++)fprintf(fpzn%d\nuzb[i]);fclose(fp);)【答案】voidjsValue()(inti,j; /*定義循環(huán)控制變量*/intal,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/inttemp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<300;i++)/*逐個(gè)取每一個(gè)4位數(shù)*/(a4=a[i]/1000; /*求4位數(shù)的千位數(shù)字*/a3=a[i]%l000/100; /*求4位數(shù)的百位數(shù)字*/a2=a[i]%100/10:/*求4位數(shù)的十位數(shù)字*/al=a[i]%10; *求4位數(shù)的個(gè)位數(shù)字*/if(a4-a3-a2-al>0) /*如果千位數(shù)字減百位數(shù)字減十位數(shù)字減個(gè)位數(shù)字大于零*/(b[cnt]=a[i];/*則把該數(shù)存入數(shù)組b中*/cnt++; /*統(tǒng)計(jì)滿(mǎn)足條件的數(shù)的個(gè)數(shù)*/)}for(i=0;i<cnt-l;i++) /*對(duì)數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序*/for(j=i+l;j<cnt:j++)if(b[i]>b[j])(temp=b[i];b[i]=b[j];b[j]=temp;17.已知數(shù)據(jù)文件IN17.DAT中存有300個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsValue(),其功能是:求出個(gè)位數(shù)上的數(shù)減千位數(shù)上數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)大于零的個(gè)數(shù)ent,再把所有滿(mǎn)足此條件的4位數(shù)依次存入數(shù)組b中,然后對(duì)數(shù)組b的4位數(shù)按從大到小的順序進(jìn)行排序,最后調(diào)用函數(shù)writeDat。把數(shù)組b中的數(shù)輸出到OUT17.DAT文件中。例如:1239,9-1-2-3>0,則該數(shù)滿(mǎn)足條件,存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+l。8129,9-8-1-2<0,則該數(shù)不滿(mǎn)足條件,忽略。注意:部分源程序已給出。程序中已定義數(shù)組:a[300],b[300],已定義變量:ent。請(qǐng)勿改動(dòng)主:函數(shù)main。、讀函數(shù)readDat。和寫(xiě)函數(shù)writeDat()的內(nèi)容。試題程序:?include<stdio.h>inta[300],b[300],cnt=0;voidreadDat();voidwriteDat();voidjsValue()voidmain(){inti;readDat();jsValue();writeDat();printf(ncnt=%d\nnrent);for(i=0;i<cnt;i++)printf([%d]=%d\n",izb[i]);)voidreadDat()(FILE*fp;inti;fp=fopen(r,IN17.DAT", ;for(i=0;i<300;i++)fscanf(fp,”%d,”,&a[i]);fclose(fp);)voidwriteDat()(FILE*fp;inti;fp=fopen(rrOUT17.DATf\nwn);fprintf(fp,H%d\n,rrent);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);【答案】voidjsValue()(inti,j; /*定義循環(huán)控制變量*/intal,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/inttemp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<300;i++)/*逐個(gè)取每一個(gè)4位數(shù)*/(a4=a[i]/1000; /*求4位數(shù)的千位數(shù)字*/a3=a[i]%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=a[i]%100/10; /*求4位數(shù)的十位數(shù)字*/al-a[i]%10; /*求4位數(shù)的個(gè)位數(shù)字*/if(al-a4-a3-a2>0)/*如果個(gè)位數(shù)字減千位數(shù)字減百位數(shù)字減十位數(shù)字大于零*/b[cnt]=a[i];/*則將滿(mǎn)足條件的數(shù)存入數(shù)組b中*/cnt++; /*統(tǒng)計(jì)滿(mǎn)足條件的數(shù)的個(gè)數(shù)*/for(i=0;i<cnt-l;i++) /*對(duì)數(shù)組b的4位數(shù)按從大到小的順序進(jìn)行排序*/for(j=i+l;j<cnt;j++)if(b[i]<b[j])(temp=b[i];b[i]=b[j]:b[j]=temp;}).下列程序的功能是:選出5000以下符合條件的自然數(shù)。條件是:千位數(shù)字與百位數(shù)字之和等于十位數(shù)字與個(gè)位數(shù)字之和,且千位數(shù)字與百位數(shù)字之和等于個(gè)位數(shù)字與千位數(shù)字之差的10倍。計(jì)算并輸出這些4位自然數(shù)的個(gè)數(shù)ent及這些數(shù)的和sum。請(qǐng)編寫(xiě)函數(shù)countValue。實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)writeDAT。把結(jié)果ent和sum輸出到文件OUT18.DAT中。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()和寫(xiě)函數(shù)writeDAT()的內(nèi)容。試題程序:#include<stdio.h>intentzsum;voidwriteDat();voidcountvalue()voidmain(){cnt=sum=0;countvalue();printf("滿(mǎn)足條件的自然數(shù)的個(gè)數(shù)=%“11”,€:11七);printf("滿(mǎn)足條件的自然數(shù)的值的和=%d\n”,sum);writeDAT();}writeDAT(){FILE*fp;fp=fopen("OUT18.DAT“,“w“);fprintf(fp,H%d\n%d\nHzentzsum);fclose(fp);)【答案】voidcountValue()(inti; /*循環(huán)控制變量*/intal,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/for(i=5000;i>=1000;i—)/*依次取每一個(gè)數(shù)進(jìn)行判斷*/a4=i/1000; /*求4位數(shù)的千位數(shù)字*/a3=i%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=i%100/10: /*求4位數(shù)的十位數(shù)字*/al=i%10; /*求4位數(shù)的個(gè)位數(shù)字*/if(a4+a3==a2+al&&a4+a3==(al-a4)*10){ /*千位數(shù)字與百位數(shù)字之和等于十位數(shù)字與個(gè)位數(shù)字之和,且千位數(shù)字與百位數(shù)字之和等于個(gè)位數(shù)字與千位數(shù)字之差的10倍*/cnt++; /*則統(tǒng)計(jì)滿(mǎn)足條件的數(shù)的個(gè)數(shù)*/sum+=i; /*將滿(mǎn)足條件的數(shù)求和*/})).已知數(shù)據(jù)文件IN19.DAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:把一個(gè)4位數(shù)的千位數(shù)上的值減百位數(shù)上的值再減十位數(shù)上的值最后減個(gè)位數(shù)上的值,如果得出的值大于等于零且此4位數(shù)是奇數(shù),則統(tǒng)計(jì)出滿(mǎn)足此條件的數(shù)的個(gè)數(shù)ent并把這些4位數(shù)存入數(shù)組b中,然后對(duì)數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用函數(shù)writeDat。把結(jié)果ent及數(shù)組b中的符合條件的4位數(shù)輸出到out19.dat文件中。注意:部分源程序已給出。程序中已定義數(shù)組:a[200],b[200],已定義變量:ento請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat()和寫(xiě)函數(shù)writeDat()的內(nèi)容。試題程序:?include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidwriteDat();voidjsVal()voidreadDat()(inti;FILE*fp;fp=fopen(nINI9.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclose(fp);)voidmain()(inti;readDat();jsVal();printf("滿(mǎn)足條件的數(shù)=%d\n",ent);for(i=0;i<cnt;i++)printf(M%dH,b[i]);printf("\n");writeDat();voidwriteDat()(FILE*fp;inti;fp=fopen(nout19.dat","w");fprintf(fp,"%d\n",ent);for(i=0;Kent;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);)【答案】voidjsVal()(inti,j: /*定義循環(huán)控制變量*/intal,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/inttemp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<200;i++)/*逐個(gè)取每一個(gè)4位數(shù)*/(a4=a[i]/1000; *求4位數(shù)的千位數(shù)字*/a3=a[i]%1000/100;/*求4位數(shù)的白位數(shù)字*/a2=a[i]%100/10;/*求4位數(shù)的十位數(shù)字*/al=a[i]%10; /*求4位數(shù)的個(gè)位數(shù)字*/if((a4-a3-a2-al>=0)&&al%2!=0)/*如果千位數(shù)字減百位數(shù)字再減十位數(shù)字最后減個(gè)位數(shù)字得出的值大于等于零且此4位數(shù)是奇數(shù)*/(b[cnt]=a[i];/*則將該數(shù)存入數(shù)組b中*/cnt++: /*統(tǒng)計(jì)滿(mǎn)足條件的數(shù)的個(gè)數(shù)*/})for(i=0;i<cnt-l;i++)/*對(duì)數(shù)組b中的4位數(shù)按從小到大的順序進(jìn)行排序*/for(j=i+l;j<cnt;j++)if(b[i]>b[j])(temp=b[i];b[i]=b[j];b[j]=temp;)}20.已知數(shù)據(jù)文件IN20.DAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:如果一個(gè)4位數(shù)的千位數(shù)字上的值加十位數(shù)字上的值恰好等于百位數(shù)字上的值加上個(gè)位數(shù)字上的值,并且此4位數(shù)是偶數(shù),則統(tǒng)計(jì)出滿(mǎn)足此條件的數(shù)的個(gè)數(shù)ent并把這些4位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫(xiě)函數(shù)writeDat()把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸出到OUT20.DAT文件中。注意:部分源程序已給出。程序中已定義數(shù)組:a[200],b[200],已定義變量:ento請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat。和寫(xiě)函數(shù)writeDat()的內(nèi)容。試題程序:#include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidwriteDat();voidjsVal()voidreadDat()(inti;FILE*fp;fp=fopen(nIN20.DAT","r");for(i=0;i<MAX;i++)fscanf(fpzu%dnz&a[i]);fclose(fp);)voidmain()(inti;readDat();jsVal();printf("滿(mǎn)足條件的數(shù)=%d\n”,ent);for(i=0;i<cnt;i++)printf(n%dnfb[i]);printf(n\nM);writeDat();)voidwriteDat()(FILE*fp;inti;fp=fopen(nOUT20.DAT",;fprintf(fp,"%d\n,1,ent);for(i=0;i<cnt;i++)fprintf(fp^M%d\nu,b[i]);fclose(fp);]【答案】voidjsVal()[inti,j; /*定義循環(huán)控制變量*/intal,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/inttemp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<200;i++)/*逐個(gè)取每一個(gè)4位數(shù)*/a4=a[i]/1000;/*求4位數(shù)的千位數(shù)字*/a3=a[i]%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=a[i]%100/10;/*求4位數(shù)的十位數(shù)字*/al=a[i]%10; /*求4位數(shù)的個(gè)位數(shù)字*/if((a4+a2==a3+al)&&a[i]%2!=l){/*如果千位數(shù)字加十位數(shù)字等于百位數(shù)字加個(gè)位數(shù)字,并且此數(shù)是偶數(shù)*/b[cnt]=a[i];/*則將滿(mǎn)足條件的數(shù)存入數(shù)組b中*/cnt++; /*統(tǒng)計(jì)滿(mǎn)足條件的數(shù)的個(gè)數(shù)*/)}for(i=0;i<cnt-l;i++)/*將數(shù)組b中的數(shù)按從小到大的順序排列*/for(j=i+l;j<cnt;j++)if(b[i]>b[j])(temp=b[i];b[i]=b[j];b[j]=temp;))21.已知數(shù)據(jù)文件IN21.DAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:如果一個(gè)4位數(shù)的千位數(shù)字上的值大于等于百位數(shù)字上的值,百位數(shù)字上的值大于等于十位數(shù)字上的值,以及十位數(shù)字上的值大于等于個(gè)位數(shù)字上的值,并且此4位數(shù)是奇數(shù),則統(tǒng)計(jì)出滿(mǎn)足此條件的數(shù)的個(gè)數(shù)cnl并把這些4位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫(xiě)函數(shù)writeDat()把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸出到OUT21.DAT文件中°注意:部分源程序已給出。程序中已定義數(shù)組:a[200],b[200],已定義變量:ento請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat。和寫(xiě)函數(shù)writeDat。的內(nèi)容。試題程序:?include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidwriteDat();voidjsVal()voidreadDat()(inti;FILE*fp;fp=fopen("IN21.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,n%dM,&a[i]);fclose(fp);)voidmain(){inti;readDat();jsVal();printf("滿(mǎn)足條件的數(shù)=%d\n”,ent);for(i=0;i<cnt;i++)printf(H%dn,b[i]);printf(n\nn);writeDat();)voidwriteDat(){FILE*fp;inti;fp=fopen("OUT21.DAT”,”w“);fprintf(fp,"%d\n",ent);for(i=0;i<cnt;i++)fprintf(fp^"%d\n",b[i]);fclose(fp);)【答案】voidjsVal(){inti,j; /*定義循環(huán)控制變量*/intal,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/inttemp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<200;i++)/*逐個(gè)取每一個(gè)4位數(shù)*/{a4=a[i]/1000; /*求4位數(shù)的千位數(shù)字*/a3=a[i]%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=a[i]%100/10;/*求4位數(shù)的十位數(shù)字*/al=a[i]%10;/*求4位數(shù)的個(gè)位數(shù)字*/if((a4>=a3)&&(a3>=a2)&&(a2>=al)&&al%2!=0){/*如果千位數(shù)字大于等于百位數(shù)字,百位數(shù)字大于等于十位數(shù)字,十位數(shù)字大于等于個(gè)位數(shù)字,并且此數(shù)是奇數(shù)*/b[cnt]=a[i];/*則將滿(mǎn)足條件的數(shù)存入數(shù)組b中*/cnt++;/*統(tǒng)計(jì)滿(mǎn)足條件的數(shù)的個(gè)數(shù)*/})for(i=0;i<cnt-l;i++)/*將數(shù)組b中的數(shù)按從小到大的順序排列*/for(j=i+l;j<cnt;j++)if(b[i]>b[j])(temp=b[i];b[i]=b[j];b[j]=temp;))22.已知數(shù)據(jù)文件IN22.DAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:如果一個(gè)4位數(shù)的千位數(shù)字上的值加十位數(shù)字上的值恰好等于百位數(shù)字上的值加上個(gè)位數(shù)字上的值,并且此4位數(shù)是偶數(shù),則統(tǒng)計(jì)出滿(mǎn)足此條件的數(shù)的個(gè)數(shù)ent并把這些4位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫(xiě)函數(shù)writeDat()把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸出到OUT22.DAT文件中。注意:部分源程序已給出。程序中已定義數(shù)組:a[200],b[200],已定義變量:ent。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat()和寫(xiě)函數(shù)writeDat。的內(nèi)容。試題程序:?include<stdio.h>#defineMAX200inta[MAX]zb[MAX]rcnt=0;voidwriteDat();voidjsVal())voidreadDat(){inti;FILE*fp;fp=fopen(HIN22.DATMrM);for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclose(fp);)voidmain(){inti;readDat();jsVal();printf("滿(mǎn)足條件的數(shù)=%d\n",ent);for(i=0;i<cnt;i++)printf(M%d”,b[i]);printf("\n");writeDat();)voidwriteDat(){FILE*fp;inti;fp=fopen("OUT22.DAT“,“w“);fprintf
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 時(shí)間管理與效率優(yōu)化考核試卷
- 紡織品及針織品新型面料研發(fā)考核試卷
- 藝人公關(guān)危機(jī)處理與媒體應(yīng)對(duì)技巧掌握考核試卷
- 聚合纖維的吸濕排汗性能考核試卷
- 空調(diào)器節(jié)能標(biāo)準(zhǔn)化進(jìn)程考核試卷
- 航空業(yè)跨文化溝通與談判技巧考核試卷
- 港澳臺(tái)籍人士?jī)?nèi)地旅游企業(yè)崗位聘用服務(wù)協(xié)議
- 集成式酒店模塊化精裝修材料采購(gòu)及結(jié)算合同
- 環(huán)保設(shè)施運(yùn)營(yíng)維護(hù)與升級(jí)改造協(xié)議
- 商業(yè)街區(qū)公共設(shè)施維護(hù)與運(yùn)營(yíng)管理承包合同
- 2023年工會(huì)財(cái)務(wù)知識(shí)競(jìng)賽題庫(kù)及答案(完整版)
- 北京地鐵介紹
- 經(jīng)濟(jì)學(xué)原理講義
- 倉(cāng)庫(kù)管理程序文件生產(chǎn)企業(yè)的標(biāo)準(zhǔn)倉(cāng)庫(kù)管理程序文件
- 2022年中考語(yǔ)文二輪專(zhuān)題復(fù)習(xí):散文閱讀專(zhuān)項(xiàng)練習(xí)題匯編(含答案)
- 跨越高速公路及省道施工方案
- 包頭市黃河濕地生態(tài)修復(fù)工程初步設(shè)計(jì)20100713
- 無(wú)人機(jī)智能機(jī)巢行業(yè)調(diào)研報(bào)告
- 小區(qū)物業(yè)服務(wù)合同范本
- 魔芋栽培技術(shù)講課PPT課件
- 個(gè)人外匯管理業(yè)務(wù)培訓(xùn)(共73頁(yè)).ppt
評(píng)論
0/150
提交評(píng)論