版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
三級南開百題(打印版)題目1:下列程序的功能是:將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入數(shù)組xx。請編寫函數(shù)num(intm,intk,intxx[J)實(shí)現(xiàn)函數(shù)的要求,最后調(diào)用函數(shù)readwriteDATO把結(jié)果輸出到文件例如:若輸入17,5,則應(yīng)輸出:19,23,類型:素?cái)?shù)。voidnum(intm,intk,intxx[])/*標(biāo)準(zhǔn)答案*/inthalf,n=0,I;while(1)for(I=2;I<=half;I++)if(data%I==0)break;if(I>half){xx[n]=data;n++;}if(n>=k)break;data++;題目2:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsValO,其功能是:如果四位數(shù)各位上的數(shù)字均是0或2或4或6或8,則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)cnt,并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。最后main()函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:程序中已定義數(shù)組:a[200],voidjsVal()/*標(biāo)準(zhǔn)答案*/bb[2]=a[I]%100/10;for(j=0:j<4;j++)bb[1]=a[I]%1000/100;bb[3]=a[I]%10;flag=1;{flag=0;break;}}if(flag==1){b[cnt]=a[I];cnt++;}if(b[I]<b[j]){k=b[I];b[I]=b[j];b[j]=k;}}題目3:函數(shù)READDAT()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中;請編制函數(shù)STRORO,其函數(shù)功能是:以行為單位把字符串中的所有小寫字母O左邊的字符串內(nèi)除,余下的字符串內(nèi)容移到已處理字符串的左邊存放.最后把已處理的字符串仍按行重新存入字結(jié)果XX輸出到文件OUT.DAT中.例如youhavethecorrectrecord.rd.yuhavethecrrectrec原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格.類型:字符串(單詞)的倒置和刪除。voidStrOR(void)/*標(biāo)準(zhǔn)答案*/{intIj,k,index,strl;charch;for(I=0;I<maxline;I++){strl=strlen(xx[I]);index=strl;for(j=0;j<strl;j++)if(xx[I][j]=='o'){for(k=j;k<strl-1;k++)xx[I][k]=xx[I][k+1];xx[I][strl-1]='';index=j;}for(j=strl-1;j>=index;j--)for(k=strl-1;k>0;k--)xx[I][k]=xx[I][k-1];xx[I][0]=ch;}題目4:函數(shù)ReadDat()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中;請編制函數(shù)StrOL(),其函數(shù)的功能是:以行為單位對行中以空格或標(biāo)點(diǎn)符號(hào)為分隔的所有單詞進(jìn)行倒排,同時(shí)去除標(biāo)點(diǎn)符號(hào),之后把已處理的字符串(應(yīng)不含標(biāo)點(diǎn)符號(hào))仍按行重新存入字符WriteDat()把結(jié)果xx輸出到文件OUT6.DAT中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。類型:字符串(單詞)的倒置和刪除。if((c>='A'&&c<='Z)Il(c>='a'&&c<='z')llc=={charch[80]={0};charpp[80]={0};I=strl-1;k=1;x[l][I]<='z))&&I>=0)pp[j+1]=pplj];pp[0]=xx[][I};k++;I-;}strcat(ch,pp);strcpy(pp,"""");k=1;while((xx[l][I]<'A|lxx[1][I]>'z)&&I>=0)pplj+1]=pp[j];pp[0]=xx[1][I];k++;I--;}strcat(ch,pp);strcpy(pp,"""");k=0;if(I==-1)break;}題目5:在文件in.dat中有200個(gè)正整數(shù),且每個(gè)數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個(gè)數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個(gè)數(shù)的后三位的大小進(jìn)行升序排列,然后取出滿足此條件的前10個(gè)數(shù)依次存入數(shù)組b中,如果后三位的數(shù)值相等,則按原先的數(shù)值進(jìn)行降序排列。最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat例:處理前60125099901270258088處理后90126012702580885099voidjsSort()/*標(biāo)準(zhǔn)答案*/{data=aa[I];aa[I]=aa[j];aa[elseif(aa[I]%1000==if(aa[I]<aa[j]){data=aa[I];aa[I]=aa[j];aa[j]=data;}}bb[I]=aa[I];}題目6:在文件in.dat中有200個(gè)正整數(shù),且每個(gè)數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個(gè)數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個(gè)數(shù)的后三位的大小進(jìn)行降序排列,然后取出滿足此條件的前10個(gè)數(shù)依次存入數(shù)組b中,如果后三位的數(shù)值相等,則按原先的數(shù)值進(jìn)行升序排列。最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat例:處理前90125099601270258088處理后50998088702560129012--------voidjsSort)/*標(biāo)準(zhǔn)答案*/{intI,j,data;{data=aa[I];aa[I]=aa[j];aa[j]=data;}elseif(aa[I]%1000==aa[j]%1000)if(aa[I]>aa[j]){data=aa[I];aa[I]=aa[j];aa[j]=data;}}bb[I]=aa[I];}題目7:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(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é)果輸出到文件OUT10.DAT中。voidSortDat()/*標(biāo)準(zhǔn)答案*/PROxy;for(I=0;I<99;I++)for(j=I+1;j<100:j++)if(strcmp(sell[I].dm,sell[j].dm)<0){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}elseif(strcmp(sell[I].dm,sell[j].dm)==0)if(sell[I]je<sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}題目8:函數(shù)ReadDat)實(shí)現(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輸出到文件PS1.DAT中。某一個(gè)字符的ASCⅡ值,f(p)是計(jì)算后新字符的ASCⅡ值),如果計(jì)算后f(p)值小于等于32或大于130,則該字符不變,否則將f(p)所對應(yīng)的字注意:部分源程序已給出。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符。voidencryptChar()/*標(biāo)準(zhǔn)答案*/for(I=0;I<maxline;I++)while(*pf!=0*pf=*pf*11%256;}}題目9:函數(shù)ReadDat()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中;請編制函數(shù)SortCharD(),其函數(shù)的功能是:以行為單位對字符按從大到小的順序進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT2.DAT中。CCbbAAbbCCAA原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。類型:字符串(單詞)的倒置和刪除。voidSortCharD(void)/*標(biāo)準(zhǔn)答案*/charch;for(I=0;I<maxline;I++){strl=strlen(xx[I]);for(j=0;j<strl-1;j++)for(k=j+1;k<strl;k++)if(xx[I][j]<xx[I][k]){ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}題目10:請編制函數(shù)ConvertCharAO,其函數(shù)的功能是:以行為單位把字符串中的所有小寫字母改寫成該字母的下一個(gè)字母,如果是字母z,則改寫成字母a,大寫字母和其它字符保持不變。把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中。。最后mainO函數(shù)調(diào)用函數(shù)WriteDat)把結(jié)果xx輸出到文件OUT3.DAT中。abck.LLhjbcdl.LLik原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。類型:字符串(單詞)的倒置和刪除。voidConvertCharA(void)/*標(biāo)準(zhǔn)答案*/for(I=0;I<maxline;I++){str=strlen(xx[I]);for(j=0;j<str;j++)if(xx[I][j]=='z')xx[J][j]='a';elseif(xx[I][j]>='a'&&xx[I][j]<='y')xx[I][j]+=1;題目11:下列程序的功能是:把s字符串中的所有字母改寫成該字母的下一個(gè)字符,字母z改寫成字母a。要求大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不做改變。請編寫函數(shù)chg(char*s)實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)readwriteDat()把結(jié)果輸出到文件out.dat中。No.123Ayz。voidchg(char*s)/*標(biāo)準(zhǔn)答案*/if(*s=='z'll*s=="Z')elseif(*s>='a'&&*s<='y)elseif(*s>='A'&&*s<='Y')}題目12:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱從小到大進(jìn)行排列,若產(chǎn)品名稱相同,則按金額從小到大進(jìn)行排列.最終排列結(jié)果把結(jié)果輸出到文件OUT5.DAT中。voidSortDat()/*標(biāo)準(zhǔn)答案*/PROxy;for(I=0;I<99;I++)for(j=I+1;j<100;j++)if(strcmp(sell[I].dm,sell[j].dm)<0){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}elseif(strcmp(sell[I].dm,sell[j].dm)==0)if(sell[I].je<sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}題目13:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)按產(chǎn)品代碼從小到大進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDatO把結(jié)果輸出到文件OUT6.DAT中。voidSortDat()/*標(biāo)準(zhǔn)答案*/for(I=0;I<99;I++)for(j=I+1;j<100;j++)if(strcmp(sell[I].mc,sell[j].mc)>0){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}elseif(strcmp(sell[].mc,sell[j].mc)==0)if(sell[I].je<sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}題目14:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入依次從數(shù)組a中取出一個(gè)四位數(shù),如果該數(shù)連續(xù)大于該四位數(shù)以后的5個(gè)數(shù)且該數(shù)是奇數(shù),則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)cnt,并把這些四位數(shù)按從小到大的順序存入數(shù)組b中。并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)cnt。最后mainO函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。 voidjsValO/*標(biāo)準(zhǔn)答案*/intk;for(I=0;I<MAX-5;I++)flag=1;else{flag=0;break;}if(a[I]%2==0)if(flag==1){b[cnt]=a[I];cnt++;}{k=b[I];b[I]=b[j];b[j]=k;}題目15:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入一個(gè)四位數(shù)的千位數(shù)字上的值小于等于百位數(shù)字上的值,百位數(shù)字上的值小于等于十位數(shù)字上的值,十位數(shù)字上的值小于等于個(gè)位數(shù)字上的值,并且此四位數(shù)是偶數(shù),則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)cnt,并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。最后main()函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。voidjsVal()/*標(biāo)準(zhǔn)答案*/{intI,j;intal,a2,a3,a4,k;for(I=0;I<MAX;I++)a3=a[I]%100/10;a4=a[if((al<=a2)&&(a2<=a3)&&(a3<=a4)&&(a[I]%2==cnt++;}}if(b[I]>b[j]){k=b[I];b[I]=b[j];b[j]=k;}}題目16:函數(shù)ReadDat)實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)StrCharJRO,其函數(shù)的功能是:以行為單位把字符串中所有字符的ASCⅡ值右移4位,然后把右移后的字符ASCI值再加上原字符的ASCⅡ值,得到新的字符仍存入原字符串對應(yīng)的位置上。最后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT8.DAT中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。voidStrCharJR(void)/*標(biāo)準(zhǔn)答案*/{intI,j,strl;for(I=0;I<maxline;I++){strl=strlen(xx[I]);for(j=0;j<strl:j++)xx[1][j]+=xx[1][j]>>4;}}題目17:函數(shù)READDAT()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中;請編制函數(shù)CHAO,其函數(shù)功能是:以行為單位把字符串中的第一個(gè)字符的ASCII值加第二個(gè)字符的ASCⅡ值,得到第一個(gè)親朋字符,第二個(gè)字符的ASCI值加第三個(gè)字符的ASCⅡ值,得到第二個(gè)新字符,依此類推一直處理到最后第二個(gè)字符,最后一個(gè)字符的ASCⅡ值加原第一個(gè)字符的ASCⅡ值,得到最后一個(gè)新的字符,得到的新字符分別存放在原字符串對應(yīng)的位置上。最后把已處理的字符串逆轉(zhuǎn)后按行重新存入字結(jié)果XX輸出到文件OUT9.DAT中.原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格voidChA(void)/*標(biāo)準(zhǔn)答案*/charch;for(I=0;I<maxline;I++){str=strlen(xx[I]);ch=xx[I][0];xx[I][j]+=xx[I][j+1];xx[I][str-1]+=ch;for(j=0,k=str-1;j<str/2;j++,k--)xx[I][j]=xx[I][k];xx[I][k]=ch;}}voidChA(void)charp,c;xx[i][strlen(xx[i])-1]=p+}讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDatO把結(jié)果xx輸出到文件PS10.DAT中。ASCI值),如果原字符的ASCⅡ值是偶數(shù)或計(jì)算后f(p)值小于等于32,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。放的格式是:每行的寬度均小于80個(gè)字符。while(*pf!=0){if(*pf%2==0Il*pf*11%256<=32)pf++;}}}題目19:編寫一個(gè)函數(shù)findstrO,該函數(shù)統(tǒng)計(jì)一個(gè)長度為2的子字符串在另一個(gè)字符串中出現(xiàn)的aszx67asdmklo",子字符串為“as”,函數(shù)返回值為6。函數(shù)readwriteDat()的功能是實(shí)現(xiàn)從文件in.dat中讀取兩個(gè)字符穿4,并調(diào)用函數(shù)findstr(),最后把結(jié)果輸出到文件out.dat中。n=0;if(*r==*p){r++;p++;}elsebreak;if(*r==\0')n++;str++;}returnn;題目20:編寫函數(shù)jsvalue,它的功能是:求Fibonacci數(shù)列中大于t的最小的一個(gè)數(shù),結(jié)果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:最后調(diào)用函數(shù)writeDat()讀取10個(gè)數(shù)據(jù)t,分別得出結(jié)果且把結(jié)果輸出到文件out.dat例如:當(dāng)t=1000時(shí),函數(shù)值為:1597。intjsValue(intt)/*標(biāo)準(zhǔn)答案*/f2=fn;1(題目21:下列程序的功能是:利用發(fā)下所示的(1)取X1初值為0.0;(2)XO=X1,把X1的值賦給X0;(3)X1=COS(XO),求出一個(gè)新的X1;請編寫函數(shù)countvalue()實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)WRITEDAT()把結(jié)果輸出到文件x1=cos(x0);if(fabs(x0-x1)<le-6)break;}returnx1;}題目22:請編寫函數(shù)countvalue(),它的功能是:求n以內(nèi)(不包括n)同時(shí)能被3和7整數(shù)的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回,最后結(jié)果s輸出到文件out.dat中。例如若n為1000時(shí),函數(shù)值應(yīng)為:doublecountValue(intn)/*標(biāo)準(zhǔn)答案*/for(I=1;I<n;I++)if(I%3==0&&I%7==0)xy+=I;xy=sqrt((double)xy);returnxy;}doublecountvalue(intn)doublek;for(i=0:i<n;i++)if(i%3==0&&i%7==0)j+=i;k=sqrt(j);returnk;}題目23:已知在文件in.dat中存有N個(gè)(個(gè)數(shù)<200)四位數(shù)字的正整數(shù),函數(shù)readdat()讀取這N個(gè)正整數(shù)并存入數(shù)組xx中。請編制函數(shù)calvalue(),其功能要求:1、求出這N個(gè)實(shí)數(shù)的平均值aver;2、分別求出這N個(gè)實(shí)數(shù)的整數(shù)部分之和sumint以及小數(shù)部分之和sumdec,最后調(diào)用函數(shù)writedat()把所求的結(jié)果輸出到文件voidCalValue(void)/*標(biāo)準(zhǔn)答案*/doublex,sum=0;for(I=0;I<MAXNUM;I++){sumint=sumint+(int)xx[I];x=xx[I]-(int)xx[I];sumdec=sumdec+x;sum=sum+xx[I];}aver=sum/MAXNUM;}題目24:在三位整數(shù)(100至999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組中;它既是完全平方數(shù),又是兩位數(shù)字相同,例如144、676等。請編制函數(shù)實(shí)現(xiàn)此功能,滿足該條件的整數(shù)的個(gè)數(shù)通過所編制的函數(shù)返回。最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件out.dat中。jsValue(inta[10][9])/*標(biāo)準(zhǔn)答案*/inthun,ten,data;for(I=100;I<=999;I++){j=10;while(j*j<=I){if(I==j*j){hun=I/100;data=I-hun*100;ten=data/10;data=data-ten*10;if(hun==tenllhun==datallten==data){bb[k]=I;k++;}}returnk;}題目25:下列程序的功能是:尋找并輸出11至999之間的數(shù)m,它滿足m,m2和m3均為回文數(shù)。所謂回文數(shù)是指其各位數(shù)字左右對稱的整數(shù),例如121,676,94249等。滿足上述條件的數(shù)如m=11,m2=121,m3=1331皆為回文數(shù)。請編制函數(shù)intsvalue(longm)實(shí)現(xiàn)此功能,如果是回文數(shù),則函數(shù)返回1,反之則返回0。最后把結(jié)果輸出到文件out.dat中。intjsValue(longn)/*標(biāo)準(zhǔn)答案*/charxy[20];ltoa(n,xy,10);strl=strlen(xy);half=strl/2;for(I=0;I<half;I++)if(xy[I]!=xy[--strl])break;if(I>=half)return1;elsereturn0;}題目26:已知在文件in.dat中存有若干個(gè)(個(gè)數(shù)<200)四位數(shù)字的正整數(shù),函數(shù)readdatO讀取這若干個(gè)正整數(shù)并存入數(shù)組xx中。請編制函數(shù)calvalue(),其功能要求:1、求出這文件中共有多少個(gè)正整數(shù)totnum;2、求這些數(shù)右移1位后,產(chǎn)生的新數(shù)是偶數(shù)的數(shù)的個(gè)數(shù)totcnt,以及滿足此條件的這些數(shù)(右移前的值)的算術(shù)平均值totpjz,最后調(diào)用函數(shù)writedat()把所求的結(jié)果輸出到文件out.dat中。voidCalValue(void)/*標(biāo)準(zhǔn)答案*/for(I=0;I<MAXNUM;I++){if(!xx[I])break;if(xx[I]>0)totNum++;if(data%2==0){totCnt++;totPjz+=xx[I];}totPjz/=totCnt;題目27:已知數(shù)據(jù)文件IN.DAT中存有300個(gè)四位數(shù),并已調(diào)用讀函數(shù)ReadDat()把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsvalue(),其功能是:求出千位數(shù)上的數(shù)減百位數(shù)減十位數(shù)上的數(shù)減個(gè)位數(shù)上的數(shù)大于零的個(gè)數(shù)cnt,再求出所有滿足此條件的四位數(shù)平均值pjz1,以及不滿足此條件的四位數(shù)平均值pjz2,最后調(diào)用寫函數(shù)writeDat()把結(jié)果輸出到OUT.DAT文件。例如:9123,9-1-2-3>0,則該數(shù)滿足條件計(jì)算平均數(shù)不滿足條件計(jì)算平均值pjz2.注意:部分源程序已給出。程序中已定義數(shù)voidjsValue()/*標(biāo)準(zhǔn)答案*/{thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if(thou-hun-ten-data>0){b[cnt]=a[I];cnt++;}}{data=b[I];b[I]=b[j];b[j]=data;}題目28:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)以及把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新的十位數(shù)cd(新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的百位數(shù)字),如果新組成的兩個(gè)十位數(shù)ab-cd>=0且ab-cd<=10且兩個(gè)數(shù)均是奇數(shù),同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)cnt。最后mainO函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序存在文件PROG1.C文件已定義已定義voidjsVal()/*標(biāo)準(zhǔn)答案*/{intI,thou,hun,ten,data,j;intab,cd;for(I=0;I<200;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[J]%10;if((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}題目29:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)以及把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新的十位數(shù)cd(新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的百位數(shù)字),如果新組成的兩個(gè)十位數(shù)ab-cd>=10且ab-cd<=20且兩個(gè)數(shù)均是偶數(shù),同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)cnt。最后mainO函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。voidjsVal()/*標(biāo)準(zhǔn)答案*/{intI,thou,hun,ten,data,j;intab,cd;for(I=0;I<200;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;ab=10*thou+ten;cd=10*data+hun;((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0){b[cnt]=a[I];cnt++;}}{data=b[I];b[I]=b[j];b[j]=data;}題目30:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsValO,其功依次從數(shù)組a中取出一個(gè)四位數(shù),如果該數(shù)連續(xù)小于該四位數(shù)以后的5個(gè)數(shù)且該數(shù)是偶數(shù),則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)cnt,并把這些四位數(shù)按從小到大的順序存入數(shù)組b中。并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)cnt。最后main(函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。voidjsValO/*標(biāo)準(zhǔn)答案*/for(I=0;I<MAX-5;I++)if(flag==0)break;}if(flag==1){b[cnt]=a[I];cnt++;}{flag=b[I];b[I]=b[j];b[j]=flag;}}題目31:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)按產(chǎn)品代碼從大到小進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat)把結(jié)果輸出到文件OUT6.DAT中。voidSortDat()/*標(biāo)準(zhǔn)答案*/PROxy;for(I=0;I<99;I++)for(j=I+1;j<100;j++)if(sell[].je<sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}elseif(sell[I].je==sell[j].je)if(strcmp(sell[I].dm,sell[j].dm)<0){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}題目32:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)按產(chǎn)品名稱從大到小進(jìn)行排列,若產(chǎn)品名稱相同,則按金額從小到大進(jìn)行排列.最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat)把結(jié)果輸出到文件OUT7.DAT中。PROxy;for(I=0;I<MAX-1;I++)for(j=I+1;j<MAX;j++)if(strcmp(sell[I].mc,sell[j].mc)<0){xy=sell[1];sell[1]=sell[j];sell[j]=xy;}elseif(strcmp(sell[I].mc,sell[j].mc)==0)if(sell[I].je>sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}題目33:請編制函數(shù)ReadDat()實(shí)現(xiàn)從文件IN.DAT中讀取1000個(gè)十進(jìn)制整數(shù)到數(shù)組xx中;請編制函數(shù)Compute()分別計(jì)算出xx中奇數(shù)的個(gè)數(shù)odd,奇數(shù)的平均值avel,偶數(shù)的平均值ave2以及所有奇數(shù)的方差totfc的值,最后調(diào)用函數(shù)WriteDat)把結(jié)果輸出到OUT.DAT文件中。設(shè)N為奇數(shù)的個(gè)數(shù),xx[i]為奇數(shù),avel為奇數(shù)的平均值。原始數(shù)據(jù)文件存放的格式是:每行存放10個(gè)數(shù),并用逗號(hào)隔開。(每個(gè)數(shù)均大于0且小于等于2000)intReadDat(void)/*標(biāo)準(zhǔn)答案*/for(I=0;I<100;I++)fscanf(fp,""%d,"",&xx[I*10+j]);fscanf(fp,""'n"");if(feof(fp))break;}fclose(fp);return0;}voidCompute(void)for(I=0;I<1000;I++)else{even++;ave2+=xx[I];yy[even-1]=xx[I];}avel/=odd;ave2/=even;for(I=0;I<even;I++)totfc+=(yy[l]-ave2)*(yy[I]-ave2)/even;}題目34:下列程序的功能是:選取出100以上1000以內(nèi)所有個(gè)位數(shù)字與十位數(shù)字之和被10除所得余數(shù)恰是百位數(shù)字的素?cái)?shù)(如293)。計(jì)算并輸出上述這些素?cái)?shù)的個(gè)數(shù)CNT以及這些素?cái)?shù)值的和SUM。請編寫函數(shù)COUNTvalue()實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù)WRITEDAT()把結(jié)果CNT和SUM輸出到文件OUT:DAT中.voidcountValue()/*標(biāo)準(zhǔn)答案*/{intI,j,half,hun,ten,data;for(I=101;I<1000;I++)data=I%10;if(hun==(ten+data)%10)for(j=2:j<half;j++)if(I%j==0)break;if(j>=half)}題目35:某級數(shù)的前兩項(xiàng)A1=1,A2=1,以后各項(xiàng)具有如下關(guān)系:An=An-2+2An-1.下列程序的功能是:要求依次對于整數(shù)M=100,1000和10000這里Sn=Al+A2+…+An,并依次把n值存入數(shù)組單元b[0],b[1]和b[2]中,請編制jsvalue()函數(shù)來實(shí)現(xiàn)此功能,最后調(diào)用函數(shù)writeDat()把數(shù)組b[]中的值輸出到out.dat文件中。voidjsvalue()/*標(biāo)準(zhǔn)答案*/{intal=1,a2=1,n=1,an;intsum0,sum;sumO=al+a2;while(1)sum=sumO+an;if(sum0<100&&sumif(sum0<1000&&sum>1000)if(sum0<10000&&sum>10000)break;}sum0=sum;jsvalue(){intal=1,a2=1,a12,sn,k=2;sn=al+a2;while(1)if(sn<100&&sn+a12>=100)b[0]=k;if(sn<1000&&sn+a12>=1000)b[1]=k;if(sn<10000&&sn+a12>=10000){b[2]=k;break;}sn=sn+a12;al=a2;a2=a12;}題目36:函數(shù)ReadDat()實(shí)現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)某一個(gè)字符的ASCⅡ值,f(p)是計(jì)算后新字符的ASCⅡ值),如果計(jì)算后f(p)值小于等于32或f(p)對應(yīng)的字符是數(shù)字0至9,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。注意:部分源程序已給出。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符。while(*pf!=0){if((*pf*11%256>='0&&*pf*11%256<='9')Il*pf*1pf++;}}}題目37:函數(shù)ReadDatO實(shí)現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)一個(gè)字符的ASCⅡ值,f(p)是計(jì)算后新字符的ASCⅡ值),如果原字符是大寫字母或計(jì)算后f(p)值小于等于32,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。注意:部分源程序已給出。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符。while(*pf!=0)f題目38:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)按產(chǎn)品代碼從小到大進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從小到大進(jìn)行排列.最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat)把結(jié)果輸出到文件OUT9.DAT中。voidSortDat()/*標(biāo)準(zhǔn)答案*/PROxy;if(strcmp(sell[I].dm,sell[j].dm)>0){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}elseif(strcmp(sell[I].dm,sell[j].dm)==0)}題目39:對10個(gè)候選人進(jìn)行選舉,現(xiàn)有一個(gè)100條記錄的選票數(shù)據(jù)文件IN.DAT,其數(shù)據(jù)存放的格式是每條記錄的長度均為10位,第一位表示第一個(gè)人的選中情況,第二位表示第二個(gè)人的選中情況,依此類推:內(nèi)容均為字符0和1,1表示此人被選中,0表示此人未被選中,全選或不選均為無效的選票.。給定函數(shù)ReadDatO的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組xx中。請編制函數(shù)CountRsO來統(tǒng)計(jì)每個(gè)人的選票數(shù)并把得票數(shù)依次存入yy[0]到y(tǒng)y[9]中。把結(jié)果yy輸出類型:選票問題。for(I=0;I<10;I++)yy[I]=0;for(I=0;I<100;I++)while(*str)if(*str=='1'){j++;str++;}elsestr++;if(j!=0&&j!=10)while(*str)if(*str++=='1)yy[k++]+=1;elsek++;}}}題目40:已知在文件in.dat中存有若干個(gè)(個(gè)數(shù)<200)四位數(shù)字的正整數(shù),函數(shù)readdat()讀取這若干個(gè)正整數(shù)并存入數(shù)組xx中。請編制函數(shù)calvalue(),其功能要求:1、求出這文件中共有多少個(gè)正整數(shù)totnum;2、求出這些數(shù)中的各位數(shù)字之和是偶數(shù)的數(shù)的個(gè)數(shù)totcnt,以及滿足此條件的這些數(shù)的算術(shù)平均值totpjz,最后調(diào)用函數(shù)writedat))把所求的結(jié)果輸出到文件out.dat中。{intI,thou,hun,ten,data;intab,sum=0;for(I=0;I<MAXNUM;I++){if(xx[I]>0)totNum++;{thou=xx[I]/1000;hun=xx[I]%1000/100;ten=xx[I]%100/10;data=xx[I]%10;ab=thou+hun+ten+data;if(ab%2==0){totCnt++;sum=sum+xx[I];}totPjz=sum/totCnt;}題目41:下列程序的功能是:計(jì)算出自然數(shù)SIXSIX+SIX+SIX=NINE+NINE的個(gè)數(shù)cnt,以及滿寫函數(shù)countvalue()實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)writedat)把結(jié)果cnt和sum,輸出到文件out15.dat中.其中S,I,X,N,E各代表一個(gè)十while(1){if(3*1%2==0&&3*I/2>=1000&&3*I/2<=9999){cnt++;sum+=I+3*I/2;I++;}elseI++;if(I>999II3*I/2>9999)break;或者:注:由于有SIX+SIX+SIX=NINE+NINE可看出SIX的3倍必須大于等于2000(右邊是一個(gè)四位數(shù)字的數(shù)可知),因此從666開始循環(huán),再由三個(gè)數(shù)的和是個(gè)偶數(shù)(右邊為一個(gè)數(shù)的2倍可知)可循環(huán)時(shí)步長為2。再由SIX和NINE中有一個(gè)共同數(shù)字I所以得出第一個(gè)ifO判斷,還有NINE中有一共同數(shù)字N所以得出第二個(gè)voidcountValue()for(i=666;i<=999;i=i+2)if((i/10%10==(3*i/2)/100%10)&&((3*i/2)/1000=={cnt++;sum+=i+3*i/2;}題目42:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)按產(chǎn)品名稱從大到小進(jìn)行排列,若產(chǎn)品名稱相同,則按金額從大到小進(jìn)行排列.最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat)把結(jié)果輸出到文件OUT8.DAT中。for(I=0;I<99;I++)for(j=I+1;j<100;j++)if(strcmp(sell[I].mc,sell[j].mc)<0){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}elseif(strcmp(sell[I].mc,sell[j].mc)==0)if(sell[I].je<sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}題目43:函數(shù)ReadDat()實(shí)現(xiàn)從文件in.dat中讀取20行數(shù)據(jù)存放到字符串?dāng)?shù)組xx中(第行字符串長度均小于80)。請編制函數(shù)jsSort(),其函數(shù)數(shù)的字符按其ASCⅡ值從小到大的順序進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出源字符串hgfedcba則處理后字符串hafcdebgvoidjsSort()/*標(biāo)準(zhǔn)答案*/{intI,j,k,strl;for(I=0;I<20;I++){strl=strlen(xx[I]);for(j=1;j<strl-2:j=j+2)for(k=j+2;k<strl;k=k+2)if(xx[I][j]>xx[I][k]){ch=xx[I][j];xx[I][j]=xx[I][k];x」}題44:函數(shù)ReadDat)實(shí)現(xiàn)從文件in.dat中讀取20行數(shù)據(jù)存放到字符串?dāng)?shù)組xx中(第行字符串長度均小于80)。請編制函數(shù)jsSort(),其函數(shù)的xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出字符的ASCI值降序排序,排序后左邊部分與右邊部分進(jìn)行交換。如果原字符串長度為奇數(shù),則處理后字符串hgfedcbavoidjsSort()/*標(biāo)準(zhǔn)答案*/{intI,j,k,strl,half;for(I=0;I<20;I++){strl=strlen(xx[I]);half=strl/2;for(j=0;j<half-1;j++)for(k=j+1;k<half;k++){ch=xx[I][j];xx[I][j]=xx[J][k];xx[I][k]=ch;}{ch=xx[I][j];xx[I][j]=xx[J][k];xx[I]}}題目45:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入大于該四位數(shù)以前的5個(gè)數(shù)且該數(shù)是偶數(shù),則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)cnt,并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)cnt。最后main(函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。----------------voidjsVal()/*標(biāo)準(zhǔn)答案*/{intI,j,flag=0;for(I=5;I<MAX-5;I++)flag=0;if(flag==0)break;}if(flag==1){b[cnt]=a[I];cnt++;}}if(b[I]<b[j])}題目46:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入依次從數(shù)組a中取出一個(gè)四位數(shù),如果該數(shù)連續(xù)大于該四位數(shù)以前的5個(gè)數(shù)且該數(shù)是奇數(shù),但該數(shù)必須能被7整除。則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)cnt,并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)cnt。最后main()函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出注意:程序中已定義數(shù)組:a[200],b[200],voidjsVal()/*標(biāo)準(zhǔn)答案*/for(I=5;I<MAX-5;I++)flag=1;else{flag=0;break;}}if(flag==1&&a[I]%2==1&&a[I]%7==0){b[cnt]=a[I];cnt++;}}if(b[I]<b[j]){flag=b[I];b[I]=b[j];b[j]=flag;}題目47:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)金額從大到小進(jìn)行排列,若金額相等,則按產(chǎn)品代碼從小到大進(jìn)行排列.最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat)把結(jié)果輸出到文件OUT3.DAT中。for(I=0;I<MAX-1;I++)for(j=I+1;j<MAX;j++)if(sell[I].je<sell[j].je)elseif(sell[I].je==seif(strcmp(sell[I].dm,sell[j].dm)>0)題目48:已知數(shù)據(jù)文件IN.DAT中存有300個(gè)四位數(shù),并已調(diào)用讀函數(shù)READDAT)把這些數(shù)存求出千位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個(gè)數(shù)CNT,再把所有滿足條件的四位數(shù)依次存入數(shù)組bb中,然后對數(shù)組用寫函數(shù)WRITEDAT(O把數(shù)組b中的數(shù)輸出到OUT.DAT文件.數(shù)不滿足條件忽略.注意:程序中已定義數(shù)組:a[300],已定義voidjsValue()/*標(biāo)準(zhǔn)答案*/{intI,thou,hun,ten,data,j;{thou=a[I]/1000;hun=a[I]%1ten=a[I]%100/10;data=a[I]%10;if(thou+data==hun+ten){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++){data=b[I];b[I]=b[j];b[j]=data;}}題目49:已知數(shù)據(jù)文件IN.DAT中存有300個(gè)四位數(shù),并已調(diào)用讀函數(shù)ReadDat()把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsvalue(),其功能是:求出千位數(shù)上的數(shù)減百位數(shù)減十位數(shù)上的數(shù)減個(gè)位數(shù)上的數(shù)大于零的個(gè)數(shù)cnt,再求出所有滿足此條件的四位數(shù)平均值pjz1,以及不滿足此條件的四位數(shù)平均值pjz2,最后調(diào)用寫函數(shù)writeDat()把結(jié)果輸出到OUT.DAT文件。例如:9123,9-1-2-3>0,則該數(shù)滿足條件計(jì)算平則該數(shù)不滿足條件計(jì)算平均值pjz2.注意:程序中已定義數(shù)組:a[300],已定義voidjsValue()/*標(biāo)準(zhǔn)答案*/{intI,thou,hun,ten,data,n=0;{thou=a[I]/1000;hun=a[I]%ten=a[I]%100/10;data=a[I]%10;if(thou-hun-ten-data>0){cnt++;pjz1+=a[I];}}}題目50:函數(shù)ReadDat)實(shí)現(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輸條件:從字符串中間一分為二,左邊部分按字符的ASCI值升序排序,排序后左邊部分與右邊部分進(jìn)行交換。如果原字符串長度為奇數(shù),則最中間的字符不參加處理,字符仍放在原位置源字符串dcbahgfe則處理后字符串hgfeabcd類型:字符串左右排序和比較.注:先采用冒泡法對左邊部分進(jìn)行升序排序,然后將排序后的左半與右半按對應(yīng)位進(jìn)行voidjsSort)charch;for(i=0;i<20;i++){strl=strlen(xx[i]);half=strl/2;for(j=0;j<half-1;j++)for(k=j+1;k<half;k++)if(xx[i][j]>xx[i][k])/*每行的第j個(gè)位置*/xx[i][j]=xx[i][k];xx[i][k]=ch;}for(j=half-1,k=strl-1;j>=0:j--,k--){ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}}}題目51:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的百位數(shù)字),如果新組成的兩個(gè)十位數(shù)均是素?cái)?shù),同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)cnt。最后mainOb中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:程序中已定義數(shù)組:a[200],b[200],voidjsVal()/*標(biāo)準(zhǔn)答案*/{intI,thou,hun,ten,data,j;{thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;ab=10*thou+ten;cd=10*data+hun;if(isprime(ab)&&isprime(cd)&&ab!=0&&cd!=0){b[cnt]=a[I];cnt++;}}for(j=I+1;j<cnt;j++){data=b[I];b[I]=b[j];b[j]=data;}題目52:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入把千位數(shù)字和個(gè)位數(shù)字重新組成一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的個(gè)位數(shù)字),以及把十位數(shù)字和百位數(shù)字組成另一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的百位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字),如果新組成的兩個(gè)十位數(shù)均是奇數(shù)并且兩個(gè)十位數(shù)中至少有一個(gè)能被5整除,同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)cnt。最后main(函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:程序中已定義數(shù)組:a[200],b[200],voidjsVal)/*標(biāo)準(zhǔn)答案*/{intI,thou,hun,ten,data,j;intab,cd;for(I=0;I<200;I++){thou=a[I]/1000;ten=a[I]%100/10;data=a[I]%10;ab=10*thou+data;cd=10*hun+ten;if(ab%2==1&&cd%2==1&&(ab%5==0llcd%5==0)&&ab!=0&&cd!=0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}題目53:已知數(shù)據(jù)文件IN.DAT中存有300個(gè)四位數(shù),并已調(diào)用讀函數(shù)READDATO把這些數(shù)存入數(shù)組A中.請編制一函數(shù)SVALUEO,其功能是:求出個(gè)位數(shù)上的數(shù)減千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)大于零的個(gè)數(shù)cnt,再把所有滿足此條件的四位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的四位數(shù)按從大到小的順序進(jìn)行排序,最后調(diào)用寫函數(shù)WRITEDATO把數(shù)組b中的數(shù)輸出到OUT.DAT文件.例如:1239,9-1-2-3>0,則該數(shù)滿足條件存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+1.8129,9-8-1-2<0,則該數(shù)不滿足條件忽略。voidjsValue()/*標(biāo)準(zhǔn)答案*/{intI,thou,hun,ten,data,j;for(I=0;I<300;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if(data-thou-hun-ten>0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}題目54:已知數(shù)據(jù)文件IN.DAT中存有300個(gè)四位數(shù),并已調(diào)用讀函數(shù)READDATO把這些數(shù)存入數(shù)組A中.請編制一函數(shù)SVALUE(O,其功能是:求出千位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個(gè)數(shù)CNT,再把所有滿b的四位數(shù)按從大到小的順序進(jìn)行排序,最后調(diào)用寫函數(shù)WRITEDAT()把數(shù)組b中的數(shù)輸出到OUT.DAT文件.8129,8+1<>2+9,則該數(shù)不滿足條件忽略.voidjsValue()/*標(biāo)準(zhǔn)答案*/{intI,thou,hun,ten,data,j;for(I=0;I<300;I++){thou=a[I]/1000;ten=a[I]%100/10;data=a[I]%10;if(thou+hun==data+ten){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}題目55:已知數(shù)據(jù)文件IN.DAT中存有300個(gè)四位數(shù),并已調(diào)用讀函數(shù)READDATO把這些數(shù)存入數(shù)組A中.請編制一函數(shù)SVALUEO,其功能是:求出所有這些四位數(shù)是素?cái)?shù)的個(gè)數(shù)cnt,再把所有滿足此條件的四位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的四位數(shù)按從小到大的順序進(jìn)行排序,OUT.DAT文件。例如:5591是素?cái)?shù),則該數(shù)滿足條件存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+1。9812是非素?cái)?shù),則該數(shù)不滿足條件忽略。voidjsValue()/*標(biāo)準(zhǔn)答案*/if(isP(a[I])){b[cnt]=a[I];cnt++;}}題目56:函數(shù)ReadDat()實(shí)現(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中。一個(gè)字符的ASCⅡ值,f(p)是計(jì)算后新字符的ASCⅡ值),如果計(jì)算后f(p)值小于等于32或f(p)對應(yīng)的字符是小寫字母,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。注意:部分源程序已給出。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符。voidencryptChar()/*標(biāo)準(zhǔn)答案*/{intI;for(I=0;I<maxline;I++)ifwhile(*pf!=0)if{((*pf*11%256>=a'&&*pf*11%256<='z)ll*pf*11%256<=32){pf++;continue;}*pf=*pf*11%256;pf++;}}}題目57:設(shè)有n個(gè)人圍坐一圈并按順時(shí)針方向從1到n編號(hào),從第s個(gè)人開始進(jìn)行1到m的報(bào)數(shù),報(bào)數(shù)到第個(gè)m人,此人出圈,再從他的下一個(gè)人重新開始1到m的報(bào)數(shù),如此進(jìn)行下去直到所有的人都出圈為止?,F(xiàn)要求按出圈次序,每10人一組,給出這n個(gè)人的順序表。請考生編制函數(shù)Josegh()實(shí)現(xiàn)此功能并調(diào)用函數(shù)WriteDat()把結(jié)果p輸出到文件OUT.DAT中。(1)將1到n個(gè)人的序號(hào)存入一維數(shù)組p中;(2)若第i個(gè)人報(bào)數(shù)后出圈,則將p[i]置于數(shù)組的倒數(shù)第i個(gè)位置上,而原來第i+1個(gè)至倒數(shù)第i個(gè)元素依次向前移動(dòng)一個(gè)位置;部分源程序已給出。voidJosegh(void)/*標(biāo)準(zhǔn)答案*/for(I=1;I<=n;I++)p[I-1]=I;if(s1==0)s1=I;w=p[s1-1];for(j=s1:j<=I-1;j++)p[j-1]=p[j];p[I-1]=w;}注:題中第一個(gè)for()循環(huán)是先對數(shù)組p賦初值。在第二個(gè)forO中用i來控制沒出圈的總?cè)藬?shù),s1=(s1+m-1)%i的作用是找出報(bào)數(shù)后出圈人的下標(biāo),其中對i求余的作用是使報(bào)數(shù)按圈進(jìn)行(即報(bào)到尾后又從頭報(bào)),該算法在很多題目中都用到。由于求余的作用當(dāng)報(bào)數(shù)正好到最后一個(gè)時(shí)s1為0,故而要進(jìn)行if(sl==0)的判斷。內(nèi)嵌的for()循環(huán)是將出圈以后的人依次往前移。題目58:對10個(gè)候選人進(jìn)行選舉,現(xiàn)有一個(gè)100條記錄的選票數(shù)據(jù)文件IN.DAT,其數(shù)據(jù)存放的格式是每條記錄的長度均為10位,第一位表示第一個(gè)人的選中情況,第二位表示第二個(gè)人的選中情況,依此類推:內(nèi)容均為字符0和1,1表示此人被選中,0表示此人未被選中,若一張選票人數(shù)小于等于5個(gè)人時(shí)被認(rèn)為無效的選票。給定函數(shù)ReadDat)的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組xx中。請編制函數(shù)CountRsO來統(tǒng)計(jì)每個(gè)人的選票數(shù)并把得票數(shù)依次存入yy[0]到y(tǒng)y[9]中。把結(jié)果yy輸出到文件OUT.DAT中。-----類型:選票問題。for(I=0;I<10;I++)yy[I]=0;{pf=xx[I];count=0;while(*pf)if(*pf=='1){count++;pf++;}elsepf++;if(count>5)while(*pf)if(*pf=='1'){yy[j]+=1;j++;pf++;}elseif(*pf=='0){pf++;j++;}}題目59:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)以及把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新的十位數(shù)cd(新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的百位數(shù)字),如果新組成的兩個(gè)十位數(shù)ab<cd,ab必須新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)cnt。最后mainOb中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:程序中已定義數(shù)組:a[200],b[200],voidjsVal()/*標(biāo)準(zhǔn)答案*/{intI,thou,hun,ten,data,j;intab,cd;for(I=0;I<200;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;ab=10*thou+ten;cd=10*data+hun;if(((ab-cd)<0&&ab%2==1&&ab%5!=0)&&cd%2!=1&&ab!=0&&cd!=0){b[cnt]=a[I];cnt++;}}{data=b[I];b[I]=b[j];b[j]=data;}}題目60:文件in.dat中有200組數(shù)據(jù),每組有3個(gè)數(shù),每個(gè)數(shù)均是三位數(shù)。函數(shù)ReadDat()讀取這200組數(shù)據(jù)存放到結(jié)構(gòu)數(shù)組aa中,請編制函數(shù)jsSort(),其函數(shù)的功能是:要求在200組數(shù)據(jù)中找出條件為每組中的第二個(gè)數(shù)大于第一個(gè)數(shù)加第三個(gè)數(shù)的之和,其中滿足條件的個(gè)數(shù)作為函數(shù)jsSort)的返回值,同時(shí)把滿足條件的數(shù)據(jù)存入結(jié)構(gòu)數(shù)組bb中,再對bb中的數(shù)據(jù)按照每組數(shù)據(jù)的第二個(gè)數(shù)加第三個(gè)之和的大小進(jìn)行升序排列(第二個(gè)數(shù)加第三個(gè)數(shù)的和均不相等),排序后的結(jié)果仍重新存入結(jié)構(gòu)數(shù)組bb中,最后調(diào)用函數(shù)WriteDat)把結(jié)果bb輸出到文件out.dat中。intjsSort()/*標(biāo)準(zhǔn)答案*/{intI,cnt=0,j;Datach;if(aa[I].x2>aa[I].x1+aa[I].x3)if(bb[I].x2+bb[I].x3<bb[j].x2+bb[j].x3){ch=bb[I];bb[I]=bb[j];bb[j]=ch;}returncnt:}題目61:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)按金額從小到大進(jìn)行排列,若金額相等,則按產(chǎn)品代碼從大到小進(jìn)行排列.最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT2.DAT中。voidSortDat()/*標(biāo)準(zhǔn)答案*/if(strcmp(sell[I].dm,sell[j].}題目62:函數(shù)ReadDat)實(shí)現(xiàn)從文
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代企業(yè)組織結(jié)構(gòu)優(yōu)化案例分析
- 清潔劑在紡織物保養(yǎng)中的應(yīng)用研究
- Module 1(說課稿)-2023-2024學(xué)年外研版(三起)英語四年級下冊
- 現(xiàn)代辦公環(huán)境下的商務(wù)報(bào)告制作
- 游戲開發(fā)中的編程語言應(yīng)用與探索
- 3《公民意味著什么 公民身份從何而來》說課稿-2024-2025學(xué)年道德與法治六年級上冊統(tǒng)編版
- 2024秋九年級化學(xué)上冊 7.1 燃燒和滅火說課稿 (新版)新人教版
- 演講技巧全解析讓你的聲音更有力量
- 環(huán)保理念在辦公機(jī)房建設(shè)中的應(yīng)用與展望
- 生產(chǎn)計(jì)劃與調(diào)度對效率的影響研究
- 2024年度-IATF16949運(yùn)行培訓(xùn)課件
- 理解師生關(guān)系的重要性
- 中國移動(dòng)行測測評題及答案
- 統(tǒng)編版語文八年級下冊第7課《大雁歸來》分層作業(yè)(原卷版+解析版)
- 2024年湖南省普通高中學(xué)業(yè)水平考試政治試卷(含答案)
- 零售企業(yè)加盟管理手冊
- 設(shè)備維保的維修流程與指導(dǎo)手冊
- 招標(biāo)代理服務(wù)的關(guān)鍵流程與難點(diǎn)解析
- 材料預(yù)定協(xié)議
- 2023年河北省中考數(shù)學(xué)試卷(含解析)
- 《學(xué)習(xí)的本質(zhì)》讀書會(huì)活動(dòng)
評論
0/150
提交評論