




已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2010年南開(kāi)上級(jí)100題及答案(二級(jí)C語(yǔ)言考試)1:下列程序的功能是:將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入數(shù)組xx。請(qǐng)編寫(xiě)函數(shù)num(int m,int k,int xx)實(shí)現(xiàn)函數(shù)的要求 ,最后調(diào)用函數(shù)readwriteDAT()把結(jié)果輸出到文件out.dat中。例如:若輸入17,5,則應(yīng)輸出:19,23,29,31,37。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()和函數(shù)readwriteDAT()的內(nèi)容。-類型:素?cái)?shù)。void num(int m,int k,int xx) /*標(biāo)準(zhǔn)答案*/int data=m+1;int half,n=0,I; while(1) half=data/2;for(I=2;Ihalf)xxn=data;n+;if(n=k)break;data+; 或者:void num(int m,int k,int xx)int i,j,s=0;for(i=m+1;k0;i+)for(j=2;j0;m+)if(isP(m) xxi+=m;k-; 原程序如下:#include #include void readwriteDAT() ;int isP(int m) int i ;for(i = 2 ; i m ; i+)if(m % i = 0) return 0 ;return 1 ;void num(int m,int k,int xx)main() int m, n, xx1000 ;clrscr() ;printf(nPlease enter two integers:) ;scanf(%d,%d, &m, &n ) ;num(m, n, xx) ;for(m = 0 ; m n ; m+)printf(%d , xxm) ;printf(n) ;readwriteDAT() ;system(pause);void readwriteDAT() int m, n, xx1000, i ;FILE *rf, *wf ;rf = fopen(in.dat, r) ;wf = fopen(out.dat, w) ;for(i = 0 ; i 10 ; i+) fscanf(rf, %d %d, &m, &n) ;num(m, n, xx) ;for(m = 0 ; m n ; m+) fprintf(wf, %d , xxm) ;fprintf(wf, n) ;fclose(rf) ;fclose(wf) ;2:已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù), 并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請(qǐng)考生編制一函數(shù)jsVal(),其功能是: 如果四位數(shù)各位上的數(shù)字均是0或2或4或6或8, 則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)cnt, 并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。最后main()函數(shù)調(diào)用寫(xiě)函數(shù)writeDat( )把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意: 部分源程序存在文件PROG1.C文件中。程序中已定義數(shù)組: a200, b200, 已定義變量: cnt請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat()和寫(xiě)函數(shù)writeDat()的內(nèi)容-void jsVal() /*標(biāo)準(zhǔn)答案*/int bb4;int I,j,k,flag;for (I=0;I200;I+)bb0=aI/1000; bb1=aI%1000/100;bb2=aI%100/10; bb3=aI%10;for (j=0;j4;j+)if (bbj%2=0)flag=1;else flag=0;break;if (flag=1) bcnt=aI;cnt+; for(I=0;Icnt-1;I+)for(j=I+1;jcnt;j+)if (bIbj)k=bI;bI=bj;bj=k;原程序如下:#include #define MAX 200int aMAX, bMAX, cnt = 0;void jsVal()void readDat() int i ;FILE *fp ;fp = fopen(in.dat, r) ;for(i = 0 ; i MAX ; i+) fscanf(fp, %d, &ai) ;fclose(fp) ;void main() int i ;readDat() ;jsVal() ;printf(滿足條件的數(shù)=%dn, cnt) ;for(i = 0 ; i cnt ; i+) printf(%d , bi) ;printf(n) ;writeDat() ;system(pause);writeDat() FILE *fp ;int i ;fp = fopen(out.dat, w) ;fprintf(fp, %dn, cnt) ;for(i = 0 ; i cnt ; i+) fprintf(fp, %dn, bi) ;fclose(fp) ;3:函數(shù)READDAT()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中;請(qǐng)編制函數(shù)STROR(),其函數(shù)功能是:以行為單位把字符串中的所有小寫(xiě)字母O左邊的字符串內(nèi)容移到該串的右邊存放,然后并把小寫(xiě)字母O刪除,余下的字符串內(nèi)容移到已處理字符串的左邊存放.最后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組XX中,最后調(diào)用函數(shù)WRITEDAT()把結(jié)果XX輸出到文件OUT.DAT中.例如:原文:You can create an index on any field.you have the correct record.結(jié)果: n any field.You can create an indexrd.yu have the crrect rec原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格.-類型:字符串(單詞)的倒置和刪除。void StrOR(void) /*標(biāo)準(zhǔn)答案*/int I,j,k,index,strl;char ch;for(I=0;Imaxline;I+)strl=strlen(xxI);index=strl;for(j=0;jstrl;j+)if(xxIj=o)for(k=j;k=index;j-)ch=xxIstrl-1;for(k=strl-1;k0;k-)xxIk=xxIk-1;xxI0=ch;或者:void StrOR(void) int i;char a80,*p;for(i=0;imaxline;i+) p=strchr(xxi,o);while(p) memset(a,0,80);memcpy(a,xxi,p-xxi);strcpy(xxi,p+1);strcat(xxi,a);p=strchr(xxi,o); 或者:void StrOR(void) /*我的非指針解法*/int i,righto,j,k;char tem80;for(i=0;i=0;j-)if(xxij=o) righto=j;break; for(j=righto+1;jstrlen(xxi);j+) temk+=xxij;for(j=0;jrighto;j+)if(xxij!=o) temk+=xxij;strcpy(xxi,tem);或者:注:該題要求的字符串中所有小寫(xiě)字母o左邊的字符串內(nèi)容移到該串的右邊存放,即將串中“最后”一個(gè)字母o左右兩側(cè)的內(nèi)容互換。題中第一個(gè)while()特環(huán)的作用是讓p1指向最后一個(gè)字母o。第一個(gè)ctrcat()函數(shù)的作用是將p1以后的字符都放到新串t中,第二個(gè)strcat()函數(shù)的作用是將p1以前的字符連接到新串t的后面(注意:在些之前要讓p1所指的單元成為p1前面字符串的結(jié)束位置*p1=0)。這時(shí)完成左右互換。最后一個(gè)while()循環(huán)的作用是刪除新串中的所有小寫(xiě)字母o,采用的刪除方法是不是o的字母一律留下,否則不留(即相當(dāng)于刪除。)void StrOR(void)int i;char *p1,*p2,t80;for(i=0;imaxline;i+)t0=0;p2=xxi;while(*p2)if(*p2=o) p1=p2;p2+;strcat(t,p1+1);*p1=0;strcat(t,xxi);p1=xxi;p2=t;while(*p2)if(*p2!=o) *p1+=*p2;p2+;*p1=0;或者:注:該題的主要算法是先讓兩字符指針都指向串尾,然后使一指針(p1)往前移動(dòng),當(dāng)出現(xiàn)不是字母時(shí)則表示在p1+1與p2之間是一個(gè)單詞,并將該單詞存入一變量(t1),最后將t1連接到新串中(t);接著再往前找第二個(gè)單詞,依次類推直到字符串頭。由此可知新串就是原串中各單詞的倒排。void Str0L(void)int i,k;char *p1,*p2;char t80,t180;for(i=0;i=xxi) p1-;memcpy(t1,p1+1,p2-p1);t1p2-p1=0;strcat(t,t1);strcat(t, );if(p1xxi) k=0;strcpy(xxi,t);原程序如下:# includestdio.h# includestring.h# includeconio.hchar xx5080;int maxline=0;int ReadDat(void);void WriteDat(void);void StrOR(void) void main()clrscr();if(ReadDat()printf(Cant open the file!n);return;StrOR();WriteDat();system(pause);int ReadDat(void)FILE *fp;int i=0;char *p;if(fp=fopen(in.dat,r)=NULL) return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,n);if(p) *p=0;i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;fp=fopen(out.dat,w);for(i=0;imaxline;i+)printf(%sn,xxi);fprintf(fp,%sn,xxi);fclose(fp);4:函數(shù)ReadDat( )實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中; 請(qǐng)編制函數(shù)StrOL( ), 其函數(shù)的功能是: 以行為單位對(duì)行中以空格或標(biāo)點(diǎn)符號(hào)為分隔的所有單詞進(jìn)行倒排,同時(shí)去除標(biāo)點(diǎn)符號(hào),之后把已處理的字符串(應(yīng)不含標(biāo)點(diǎn)符號(hào))仍按行重新存入字符串?dāng)?shù)組xx中。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT6.DAT中。例如: 原文: You He MeI am a student.結(jié)果: Me He Youstudent a am I原始數(shù)據(jù)文件存放的格式是: 每行的寬度均小于80個(gè)字符, 含標(biāo)點(diǎn)符號(hào)和空格。-類型:字符串(單詞)的倒置和刪除。void StrOL(void) /*標(biāo)準(zhǔn)答案*/int I,j,k,strl,l;char c;for(I=0;Imaxline;I+)for(j=0;j=A&c=a&c=z)|c= ) ;else xxIj= ; for(l=0;l=a&xxlI=A&xxlI=0)for(j=k;j=0;j-)ppj+1=ppj; pp0=xxlI; k+;I-; strcat(ch,pp);strcpy(pp, );k=1;if(I=-1)break;while(xxlIz)&I=0)for(j=k;j=0;j-)ppj+1=ppj; pp0=xxlI; k+; I-;strcat(ch,pp); strcpy(pp,);k=0;if(I=-1)break;strcpy(xxl,ch);或者:void StrOL(void) int i,j,k,m,n,ll;char yy80;for(i=0; i =0; j-) if(isalpha(xxij) k+;else for(m=1; m=k; m+)yyn+=xxij+m; k=0; if(xxij= ) yyn+= ;for(m=1; m=k; m+) yyn+=xxij+m;yyn=0; strcpy(xxi,yy);原程序如下:# includestdio.h# includestring.h# includeconio.h# includectype.hchar xx5080;int maxline=0;int ReadDat(void);void WriteDat(void);void StrOR(void)void main()clrscr();if(ReadDat()printf(Cant open the file!n);return;StrOR();WriteDat();system(pause);int ReadDat(void)FILE *fp;int i=0;char *p;if(fp=fopen(in.dat,r)=NULL) return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,n);if(p) *p=0;i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;fp=fopen(out.dat,w);for(i=0;imaxline;i+)printf(%sn,xxi);fprintf(fp,%sn,xxi);fclose(fp);5:在文件in.dat中有200個(gè)正整數(shù),且每個(gè)數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個(gè)數(shù)存放到數(shù)組aa中。請(qǐng)編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個(gè)數(shù)的后三位的大小進(jìn)行升序排列,然后取出滿足此條件的前10個(gè)數(shù)依次存入數(shù)組b中,如果后三位的數(shù)值相等,則按原先的數(shù)值進(jìn)行降序排列。最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat中。例:處理前 6012 5099 9012 7025 8088處理后 9012 6012 7025 8088 5099注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。 -void jsSort() /*標(biāo)準(zhǔn)答案*/int I,j,data;for(I=0;I199;I+)for(j=I+1;jaaj%1000)data=aaI;aaI=aaj;aaj=data;else if(aaI%1000=aaj%1000)if(aaIaaj)data=aaI;aaI=aaj;aaj=data;for(I=0;I10;I+)bbI=aaI;原程序如下:#include#include#includeint aa200,bb10;void jsSort()void main()readDat();jsSort();writeDat();system(pause);readDat()FILE *in;int i;in=fopen(in.dat,r);for(i=0; i200; i+) fscanf(in,%d,&aai);fclose(in);writeDat()FILE *out;int i;clrscr();out=fopen(out.dat,w);for(i=0; i10; i+)printf(i=%d,%dn,i+1,bbi);fprintf(out,%dn,bbi);fclose(out);6:在文件in.dat中有200個(gè)正整數(shù),且每個(gè)數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個(gè)數(shù)存放到數(shù)組aa中。請(qǐng)編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個(gè)數(shù)的后三位的大小進(jìn)行降序排列,然后取出滿足此條件的前10個(gè)數(shù)依次存入數(shù)組b中,如果后三位的數(shù)值相等,則按原先的數(shù)值進(jìn)行升序排列。最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat中。例:處理前 9012 5099 6012 7025 8088處理后 5099 8088 7025 6012 9012注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。 -void jsSort() /*標(biāo)準(zhǔn)答案*/int I,j,data;for(I=0;I199;I+)for(j=I+1;j200;j+)if (aaI%1000aaj)data=aaI;aaI=aaj;aaj=data;for(I=0;I10;I+)bbI=aaI;原程序如下:#include#include#includeint aa200,bb10;void jsSort()void main()readDat();jsSort();writeDat();system(pause);readDat()FILE *in;int i;in=fopen(in.dat,r);for(i=0; i200; i+) fscanf(in,%d,&aai);fclose(in);writeDat()FILE *out;int i;clrscr();out=fopen(out.dat,w);for(i=0; i10; i+)printf(i=%d,%dn,i+1,bbi);fprintf(out,%dn,bbi);fclose(out);7:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長(zhǎng)整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從大到小進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT10.DAT中。注意: 部分源程序存放在PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main( )、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。-void SortDat() /*標(biāo)準(zhǔn)答案*/int I,j;PRO xy;for(I=0;I99;I+)for(j=I+1;j100;j+)if(strcmp(sellI.dm,sellj.dm)0)xy=sellI;sellI=sellj;sellj=xy;else if(strcmp(sellI.dm,sellj.dm)=0)if(sellI.jesellj.je)xy=sellI; sellI=sellj; sellj=xy;原程序如下:#include#include#include#include#include#define MAX 100typedef structchar dm5; /*產(chǎn)品代碼*/char mc11; /*產(chǎn)品名稱*/ int dj; /*單價(jià)*/int sl; /*數(shù)量*/ long je; /*金額*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()void main() memset(sell,0,sizeof(sell);ReadDat();SortDat();WriteDat(); void ReadDat()FILE *fp;char str80,ch11;int i;fp=fopen(IN.DAT,r);for(i=0;i100;i+)fgets(str,80,fp);memcpy(selli.dm,str,4);memcpy(selli.mc,str+4,10);memcpy(ch,str+14,4);ch4=0;selli.dj=atoi(ch);memcpy(ch,str+18,5);ch5=0;selli.sl=atoi(ch);selli.je=(long)selli.dj*selli.sl;fclose(fp);void WriteDat(void)FILE *fp;int i;fp=fopen(OUT10.DAT,w);for(i=0;i100;i+)fprintf(fp,%s %s %4d %5d %101dn, selli.dm,selli.mc,selli.dj,selli.sl,selli.je);fclose(fp);8:函數(shù)ReadDat()實(shí)現(xiàn)從文件ENG.IN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請(qǐng)編制函數(shù)encryptChar(),按給定的替代關(guān)系對(duì)數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對(duì)應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS1.DAT中。替代關(guān)系:f(p)=p*11 mod 256 (p是數(shù)組中某一個(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ù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。-void encryptChar() /*標(biāo)準(zhǔn)答案*/int I;char *pf;for(I=0;I130|*pf*11%256=32);else*pf=*pf*11%256;pf+; 或者:void encryptChar() int i,j;char *p;for(i=0;imaxline;i+)for(j=0;jstrlen(xxi);j+) p=(xxij*11)%256;if(p130);else xxij=p; 原程序如下:#include#include#include#includeunsigned char xx5080;int maxline=0;/*文章的總行數(shù)*/int ReadDat(void);void WriteDat(void);void encryptChar()void main()clrscr();if(ReadDat()printf(數(shù)據(jù)文件ENG.IN不能打開(kāi)!n007);return;encryptChar();WriteDat();system(pause);int ReadDat(void)FILE *fp;int i=0;unsigned char *p;if(fp=fopen(eng.in,r)=NULL) return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,n);if(p)*p=0;i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;fp=fopen(ps1.dat,w);for(i=0;imaxline;i+)printf(%sn,xxi);fprintf(fp,%sn,xxi);fclose(fp);9:函數(shù)ReadDat( )實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中; 請(qǐng)編制函數(shù)SortCharD( ), 其函數(shù)的功能是: 以行為單位對(duì)字符按從大到小的順序進(jìn)行排序, 排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT2.DAT中。例: 原文: dAe,BfC.CCbbAA結(jié)果: fedCBA.,bbCCAA原始數(shù)據(jù)文件存放的格式是: 每行的寬度均小于80個(gè)字符, 含標(biāo)點(diǎn)符號(hào)和空格。注意: 部分源程序存放在PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main( )、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。-類型:字符串(單詞)的倒置和刪除。void SortCharD(void) /*標(biāo)準(zhǔn)答案*/int I,j,k,strl;char ch;for(I=0;Imaxline;I+)strl=strlen(xxI);for(j=0;jstrl-1;j+)for(k=j+1;kstrl;k+) if(xxIjxxIk)ch=xxIj; xxIj=xxIk; xxIk=ch;原程序如下:#include #include #include char xx5080 ;int maxline = 0 ; /* 文章的總行數(shù) */int ReadDat(void) ;void WriteDat(void) ;void SortCharD(void)int I,j,k,strl;char ch;for(I=0;Imaxline;I+)strl=strlen(xxI);for(j=0;jstrl-1;j+)for(k=j+1;kstrl;k+)if(xxIjxxIk)ch=xxIj; xxIj=xxIk; xxIk=ch;void main()clrscr() ;if(ReadDat() printf(數(shù)據(jù)文件IN.DAT不能打開(kāi)!n007) ;return ;SortCharD() ;WriteDat() ;system(pause);int ReadDat(void)FILE *fp ;int i = 0 ;char *p ;if(fp = fopen(IN.DAT, r) = NULL) return 1 ;while(fgets(xxi, 80, fp) != NULL) p = strchr(xxi, n) ;if(p) *p = 0 ;i+ ;maxline = i ;fclose(fp) ;return 0 ;void WriteDat(void)FILE *fp ;int i ;clrscr() ;fp = fopen(OUT2.DAT, w) ;for(i = 0 ; i maxline ; i+) printf(%sn, xxi) ;fprintf(fp, %sn, xxi) ;fclose(fp) ;10:請(qǐng)編制函數(shù)ConvertCharA(), 其函數(shù)的功能是: 以行為單位把字符串中的所有小寫(xiě)字母改寫(xiě)成該字母的下一個(gè)字母, 如果是字母z, 則改寫(xiě)成字母a,大寫(xiě)字母和其它字符保持不變。把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT3.DAT中。例: 原文: Adb.Bcdzaabck.LLhj結(jié)果: Aec.Bdeabbcdl.LLik原始數(shù)據(jù)文件存放的格式是: 每行的寬度均小于80個(gè)字符, 含標(biāo)點(diǎn)符號(hào)和空格。注意: 部分源程序存放在PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main( )、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。-類型:字符串(單詞)的倒置和刪除。void ConvertCharA(void) /*標(biāo)準(zhǔn)答案*/int I,j,str;for(I=0;Imaxline;I+)str =strlen(xxI);for(j=0;j=a&xxIj=y) xxIj+=1;原程序如下:#include #include #include char xx5080 ;int maxline = 0 ; /* 文章的總行數(shù) */int ReadDat(void) ;void WriteDat(void) ;void ConvertCharA(void) void main() clrscr() ;if(ReadDat() printf(數(shù)據(jù)文件IN.DAT不能打開(kāi)!n007) ;return ;ConvertCharA();WriteDat() ;system(pause);int ReadDat(void) FILE *fp ; int i = 0 ; char *p ;if(fp = fopen(IN.DAT, r) = NULL) return 1 ;while(fgets(xxi, 80, fp) != NULL) p = strchr(xxi, n) ;if(p) *p = 0 ; i+ ;maxline = i ; fclose(fp) ; return 0 ;void WriteDat(void)FILE *fp ; int i ;clrscr() ;fp = fopen(OUT3.DAT, w) ;for(i = 0 ; i =a&*s=A&*s=Y)*s+=1;s+;else s+;或者:void chg(char *s) int i,k;k=strlen(s);for(i=0;ik;i+) if(si=z|si=Z)si-=25;elseif(isalpha(si)si+; 原程序如下:#include #include #include #include #define N 81void readwriteDAT();void chg(char*s) main( )char aN;clrscr();printf(Enter a string : ); gets(a);printf(The original string is : ); puts(a);chg(a);printf(The string after modified : );puts (a);readwriteDAT() ;system(pause);void readwriteDAT()int i ;char aN ;FILE *rf, *wf ;rf = fopen(in.dat, r) ;wf = fopen(out.dat, w) ;for(i = 0 ; i 10 ; i+) fscanf(rf, %s, a) ;chg(a) ;fprintf(wf, %sn, a) ;fclose(rf) ;fclose(wf) ;12:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長(zhǎng)整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱從小到大進(jìn)行排列, 若產(chǎn)品名稱相同, 則按金額從小到大進(jìn)行排列.最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT5.DAT中。注意: 部分源程序存放在PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main( )、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。-void SortDat() /*標(biāo)準(zhǔn)答案*/int I,j;PRO xy;for(I=0;I99;I+)for(j=I+1;j100;j+)if(strcmp(sellI.dm,sellj.dm)0)xy=sellI;sellI=sellj;sellj=xy;else if(strcmp(sellI.dm,sellj.dm)=0)if(sellI.jesellj.je)xy=sellI; sellI=sellj; sellj=xy;原程序如下:#include#include#include#include#include#define MAX 100typedef structchar dm5
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司物流競(jìng)賽活動(dòng)方案
- 2025年文化產(chǎn)業(yè)管理專業(yè)研究生入學(xué)考試試卷及答案
- 2025年健康促進(jìn)師職業(yè)資格考試試卷及答案
- 2025年家庭教育與青少年發(fā)展考試卷及答案
- 2025年教師資格考試試卷及答案學(xué)習(xí)要點(diǎn)明確
- 與健康同行與心靈相約戶外活動(dòng)
- 訓(xùn)戰(zhàn)培訓(xùn)總結(jié)
- 護(hù)理人員心理支持
- 兩個(gè)小時(shí)的培訓(xùn)
- 造口病人并發(fā)癥的護(hù)理
- 2024年中國(guó)中式養(yǎng)生水行業(yè)發(fā)展趨勢(shì)洞察報(bào)告
- 烘焙專業(yè)職業(yè)生涯規(guī)劃書(shū)
- (高清版)JTST 273-2024 水運(yùn)工程測(cè)量定額
- 生物信息學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年華東理工大學(xué)
- 智能護(hù)理數(shù)字化驅(qū)動(dòng)醫(yī)護(hù)智能管理
- 青少年毒品預(yù)防教育課件
- 【華萊士品牌SWOT探析及營(yíng)銷策略探究(含問(wèn)卷)8700字(論文)】
- 鋼管混凝土柱計(jì)算
- 應(yīng)急演練評(píng)估表模板
- 垃圾滲濾液處理站運(yùn)維及滲濾液處理投標(biāo)方案(技術(shù)標(biāo))
- 生活垃圾焚燒系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論