




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第3套上機考試試題已知文件lN.dat中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼code(字符型4位)、產(chǎn)品名稱name(字符型10位)、單價uprice(整型)、數(shù)量amount(整型)、金額sum(長整型)5部分組成。其中:金額=單價數(shù)量。函數(shù)RData0讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編寫函數(shù)DescSort0,其功能要求:按產(chǎn)品代碼從大Nd,進行排列,若產(chǎn)品代碼相同,則按金額從大到小進行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WData0,把結(jié)果輸出到文件OUT.dat中。注意:部分程序已給出。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)RDat
2、a()和輸出數(shù)據(jù)函數(shù)WData()的內(nèi)容。 第3套試題答案及詳解【審題分析】首先我們來看看題中要求我們解決的問題有哪些。按產(chǎn)品代碼從大到小進行排列,若產(chǎn)品代碼相同,則按金額從大到小進行排列;將排列結(jié)果存入結(jié)構(gòu)數(shù)組sell巾。分析題目可知,本題中使用結(jié)構(gòu)數(shù)組sell來保存銷售記錄。產(chǎn)品代碼存儲在sell結(jié)構(gòu)數(shù)組中的code成員中,金額存儲存sum成員中?!窘忸}思路】我們可以利用兩個for循環(huán)結(jié)構(gòu)對產(chǎn)品銷售記錄(strcmp(selli.code.sellj.code)兩兩進 行循環(huán)比較,如果這個表達式返回結(jié)果值小于0,則進行兩個數(shù)據(jù)的交換,實現(xiàn)產(chǎn)品代碼從大到小進行排序。如果上面的表達式的返回值等
3、于0,說明這兩個產(chǎn)品的代碼相司,則比較seHi.sum與sellj.sum的值。如果selli.sumj.sum,則進行兩個數(shù)據(jù)的交換,實現(xiàn)金額從大到小進行排序。【參考答案】 在文件IN.dat中有200個正整數(shù),且每個數(shù)均在1000-9999之間。函數(shù)RData()讀取這200個數(shù)存放到數(shù)組0riginal中。請編寫函數(shù)numAscend(),其功能是:要求按每個數(shù)的后3位的大小進行升序排列,然后取出滿足此條件的前10個數(shù)依次存入數(shù)組result中,如果后3位的數(shù)值相等,則按原先的數(shù)值進行降序排列。最后調(diào)用函數(shù)WData(),把結(jié)果result輸出到文件OUT.dat中。例如,處理前:601
4、2 5099 9012 7025 8088處理后:9012 6012 7025 8088 5099注意:部分程序已給出。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)RData()和輸出數(shù)據(jù)函數(shù)WData()盼內(nèi)容。 【審題分析】首先我們來看看題中要求我們解決的問題有哪些。按original數(shù)組中各元素數(shù)字的后3位數(shù)的大小進行升序排列,如果數(shù)值相等,則按原先的數(shù)值進行降序排列;取出排序后的original數(shù)組中的前10個數(shù)依次存入result數(shù)組中?!窘忸}思路】根據(jù)上面的分析,編寫程序有以下幾個步驟:第1步:首先分解出數(shù)組中兩個元素的后三位,這里采用在兩次循環(huán)中求出正整數(shù)originali矛n ori
5、ginalj對1000的余數(shù)的方法;第2步:然后比較兩個數(shù)余數(shù)的大小,如果正整數(shù)0riginali和originalj對1000的余數(shù)不相同,則按照升序進行排序,如果相同,則比較originali和originalj的大小,按照降序進行排序;第3步:利用一個for循環(huán)語句把original數(shù)組中的前10個數(shù)輸出給result數(shù)組?!緟⒖即鸢浮?【易錯分析】數(shù)組originali中兩個數(shù)的位置交換要借助中間變量data?!究键c鏈接】for循環(huán)語句、正整數(shù)的求余運算。調(diào)用函數(shù)rwdata(),從IN.dat文件中讀取10組數(shù)據(jù)(m和k值),并嵌套調(diào)用primenum函數(shù)分別得出array數(shù)組。請編
6、寫函數(shù)primenum(int m,int k,int array),該函數(shù)的功能是:將緊靠m的k個素數(shù)存入數(shù)組array并在屏幕上顯示。最后把結(jié)果輸出到文件OUT.dat中。例如,若輸入3 9,則應(yīng)輸出5 7 11 13 17 19 23 29 31。注意:部分程序已經(jīng)給出。請勿改動豐函數(shù)main()和輸出數(shù)據(jù)函數(shù)rwdata()的內(nèi)容。 第1套試題答案及詳解【知識點播】素數(shù)的定義:如果一個數(shù)的正因子只有1和這個數(shù)本身,那么這個數(shù)就是素數(shù)。【審題分析】分析題目可知,題中需要解決的問題就是Primenum函數(shù)的功能問題(rwdata函數(shù)功能題中已經(jīng)給出),而Primenum函數(shù)的功能是求在指定
7、數(shù)m之后的k個素數(shù),因此本題的關(guān)鍵在于如何判斷一個數(shù)是素數(shù),之后就可以通過一個for循環(huán)來求得在m之后的k個素數(shù)了?!窘忸}思路】根據(jù)素數(shù)的定義,本題采用的算法是:首先定義一個變量Value,并把m之后的數(shù)逐個賦值給該變量:然后用2value/2數(shù)除value,如果value能被2value/2之中的任何一個整數(shù)整除,則value不是素數(shù),結(jié)束循環(huán);如果value小能被2value/2之間的任一整數(shù)整除,則退出循環(huán),然后判斷循環(huán)變量i是否大于value/2,如果大于,則value是素數(shù),并將value值賦給arrayn,然后n+;再判斷n是否大于等于k,如果大于等于k,就完成了程序要求的功能,退
8、出循環(huán),否則value加1,根據(jù)以上算法繼續(xù)進行。 【易錯分析】判斷一個數(shù)m(大于1)是否素數(shù)的簡單的算法:枚舉2到m/2之間的整數(shù),看能否被m整除,如果能整除,就不是素數(shù),否則是素數(shù)?!究键c鏈接】c語言中循環(huán)語句、if語句的應(yīng)用和素數(shù)的算法。南開第19題: 編寫一個函數(shù)findstr(),該函數(shù)統(tǒng)計一個長度為2的子字符串在另一個字符串中出現(xiàn)的次數(shù)。例如:假定輸入的字符串為asd asasdfg asd as zx67 asd mklo,子字符串為as,函數(shù)返回值為6。函數(shù)readwriteDat()的功能是實現(xiàn)從文件in.dat中讀取兩個字符穿4,并調(diào)用函數(shù)findstr(),最后把結(jié)果輸出
9、到文件out.dat中。注意:部分源程序已給出。請勿改動主函數(shù)main()和函數(shù)ReadWrite()的內(nèi)容。-int findStr(char *str,char *substr)/*請參考南開100題*/南開第2題:整數(shù)排序題#include #define MAX 200int aMAX, bMAX, cnt = 0 ;void jsVal() int i,j,qw,bw,sw,gw;for(i=0;iMAX;I+) qw=ai/1000; bw=ai/100; sw=ai0/10; gw=ai;if(qw%26amp;%26amp;qw%2=0%26amp;%26amp;bw%2=0%
10、26amp;%26amp;sw%2=0%26amp;%26amp;gw%2=0) bcnt+=ai;for(i=0;iCNT-1;I+)for(j=i+1;jCNT;J+)if(bivoid readDat()int i ;FILE *fp ;fp = fopen(in.dat, r) ;for(i = 0 ; i %26lt; MAX ; i+) fscanf(fp, %d, %26amp;ai) ;fclose(fp) ;void main()int i ;readDat() ;jsVal() ;printf(滿足條件的數(shù)=%dn, cnt) ;for(i = 0 ; i %26lt; c
11、nt ; i+) printf(%d , bi) ;printf(n) ;writeDat() ;writeDat()FILE *fp ;int i ;fp = fopen(out.dat, w) ;fprintf(fp, %dn, cnt) ;for(i = 0 ; i %26lt; cnt ; i+) fprintf(fp, %dn, bi) ;fclose(fp) ;引用 2009年計算機三級網(wǎng)絡(luò)上機南開100題(1-5)默認分類 2009-09-21 16:46 閱讀19評論0 字號: 大大 中中 小小 引用cglow 的 2009年計算機三級網(wǎng)絡(luò)上機南開100題(1-5)2009年計
12、算機三級網(wǎng)絡(luò)上機南開100題(完整版) 制作:題目1請編寫一個函數(shù)jsValue(int m,int k,int xx),該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個素數(shù)存入數(shù)組xx傳回。 最后調(diào)用函數(shù)writeDat()讀取10組數(shù)據(jù),分別得出結(jié)果且把結(jié)果輸出到文件out.dat中。 部分源程序存在文件prog1.c中。 例如:若輸入17 5 則應(yīng)輸出:19,23,29,31,37。 請勿改動主函數(shù)main()和寫函數(shù)writeDat()的內(nèi)容。#include #include void readwriteDat();int isP(int m)int i;for(i=2;i0;m+) if
13、(isP(m) xxs+=m; k-;main() int m,n,xx1000; clrscr(); printf(nPlease enter two integers:); scanf(%d%d,&m,&n); num(m,n,xx); for(m=0;mn;m+) printf(%d ,xxm); printf(n); readwriteDat();void readwriteDat()int m,n,xx1000, i;FILE *rf,*wf;rf=fopen(in.dat,r);wf=fopen(out.dat,w);for(i=0;i10;i+) fscanf(rf,%d %d,
14、&m,&n); num(m,n,xx); for(m=0;mn;m+)fprintf(wf,%d ,xxm); fprintf(wf,n);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ù)cnt,并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。最后main( )函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。 注意:部分源程序存在文
15、件prog1.c中。 程序中已定義數(shù)組:a200,b200,已定義變量:cnt 請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。#include #define MAX 200int aMAX, bMAX, cnt = 0 ;void jsVal() int i,j,qw,bw,sw,gw;for(i=0;iMAX;i+) qw=ai/1000; bw=ai/100%10; sw=ai%100/10; gw=ai%10; if(qw&qw%2=0&bw%2=0&sw%2=0&gw%2=0) bcnt+=ai; for(i
16、=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) qw=bi; bi=bj; bj=qw;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() ;
17、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( )實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串數(shù)組xx中;請編制函數(shù)StrOR( ),其函數(shù)的功能是:以行為單位依次把字符串中所有小寫字母o左邊的字符串內(nèi)容移到該串的右邊存放,然后把小寫字母o刪除,余下的字符串內(nèi)容移到已處理字符串的左邊存放,之后把已處理的字符串仍按行重新存入字符串數(shù)組xx中。最后m
18、ain()函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT5.DAT中。 原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標點符號和空格。 注意:部分源程序存放在文件prog1.c中。 請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include #include #include char xx5080 ;int maxline = 0 ; /* 文章的總行數(shù) */int ReadDat(void) ;void WriteDat(void) ;void StrOR(void)int i,righto,j,s,k;char
19、 tem80;for(i=0;i=0;j-) k=0; memset(tem,0,80); if(xxij=o) righto=j; for(s=righto+1;sstrlen(xxi);s+) temk+=xxis; for(s=0;srighto;s+) if(xxis!=o) temk+=xxis; strcpy(xxi,tem); else continue; void main()clrscr() ;if(ReadDat() printf(數(shù)據(jù)文件IN.DAT不能打開!n007) ; return ;StrOR() ;WriteDat() ;int ReadDat(void)FIL
20、E *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(OUT5.DAT, w) ;for(i = 0 ; i maxline ; i+) printf(%sn, xxi) ; fpr
21、intf(fp, %sn, xxi) ;fclose(fp) ;題目4函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串數(shù)組xx中,請編制函數(shù)StrOL(),其函數(shù)的功能是:以行為單位對行中以空格或標點符號為分隔的所有單詞進行倒排。最后把已處理的字符串(應(yīng)不含標點符號)仍按行重新存入字符串數(shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT6.DAT中。 例如:原文:You He Me I am a student.結(jié)果:Me He You student a am I 原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標點符號和空格。 部分源程
22、序存在文件prog1.c中。 請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#include #include #include #include char xx5080;int maxline=0;/*文章的總行數(shù)*/int ReadDat(void);void WriteDat(void);void StrOL(void) int i,j,k,s,m,strl;char str80;for(i=0;i=0;j-) if(isalpha(xxij) k+; else for(m=1;m=k;m+)strs+=xxij+m; k=0; if(
23、!isalpha(xxij) strs+= ; for(m=1;m=k;m+) strs+=xxij+m;strs=0; strcpy(xxi,str); void main()clrscr();if(ReadDat()printf(數(shù)據(jù)文件IN.DAT不能打開!n007);return;StrOL();WriteDat();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;
24、 i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;clrscr();fp=fopen(OUT6.DAT,w);for(i=0;imaxline;i+) printf(%sn,xxi); fprintf(fp,%sn,xxi);fclose(fp);*題目5(整數(shù)排序題)在文件in.dat中有200個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個數(shù)的后三位的大小進行升序排列,然后取出滿足此條件的前10個數(shù)
25、依次存入數(shù)組bb中,如果后三位的數(shù)值相等,則按原先的數(shù)值進行降序排列。最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat中。 例:處理前 6012 5099 9012 7025 8088 處理后 9012 6012 7025 8088 5099 部分源程序存在文件prog1.c中。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include #include #include int aa200,bb10;void jsSort()int i,j,data;for(i=0;i199;i+)for(j=i+1;jaaj%100
26、0|aai%1000=aaj%1000&aaiaaj) data=aai;aai=aaj;aaj=data;for(i=0;i10;i+) bbi=aai;void main()readDat();jsSort();writeDat();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( %d,bbi)
27、; fprintf(out,%dn,bbi);fclose(out);引用cglow 的 2009年計算機三級網(wǎng)絡(luò)上機南開100題(6-15)題目6正整數(shù)排序在文件in.dat中有200個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個數(shù)的后三位的大小進行降序排列,然后取出滿足此條件的前10個數(shù)依次存入數(shù)組b中,如果后三位的數(shù)值相等,則按原先的數(shù)值進行升序排列。最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat中。例:處理前 9012 5099 6012 7025 8088
28、 處理后 5099 8088 7025 6012 9012 注意:部分源程序已給出。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include#include#includeint aa200,bb10;void jsSort()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;void main()readDat();jsSort();writeDat();sy
29、stem(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(結(jié)構(gòu)體操作題)已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱m
30、c(字符型10位),單價dj(整型),數(shù)量sl(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat()是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從大到小進行排列,若產(chǎn)品代碼相同,則按金額從大到小進行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT6.DAT中。 部分源程序存在文件prog1.c中。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include #include #include #
31、include #include #define MAX 100typedef structchar dm5; /*產(chǎn)品代碼*/char mc11; /*產(chǎn)品名稱*/int dj; /*單價*/int sl; /*數(shù)量*/long je; /*金額*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()int i,j;PRO xy;for(i=0;i99;i+)for(j=i+1;j100;j+) if(strcmp(selli.dm,sellj.dm)0|strcmp(selli.dm,sellj.dm)=0&selli.
32、jesellj.je) xy=selli; sell i=sellj; sellj=xy;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=
33、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(OUT6.DAT,w);for(i=0;i100;i+)printf(%s %s %4d %5d %5dn, selli.dm,selli.mc,selli.dj,selli.sl,selli.je);fprintf(fp,%s %s %4d %5d %5dn, selli.dm,selli.mc,selli.d
34、j,selli.sl,selli.je);fclose(fp);*題目8(字符替換題)函數(shù)ReadDat()實現(xiàn)從文件ENG.IN中讀取一篇英文文章,存入到字符串數(shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS1.DAT中。替代關(guān)系:f(p)=p*11 mod 256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果計算后f(p)值小于等于32或大于130,則該字符不變,否則將f(p)所對應(yīng)的字符進行替代。(注意中間變量用無符號
35、整型),部分源程序存在文件prog1.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include #include #include #include unsigned char xx5080;int maxline=0;/*文章的總行數(shù)*/int ReadDat(void);void WriteDat(void);void encryptChar() int i,j;for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*11
36、%256130) continue; else xxij=xxij*11%256;void main()clrscr();if(ReadDat()printf(數(shù)據(jù)文件ENG.IN不能打開!n007);return;encryptChar();WriteDat();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(f
37、p);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()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串數(shù)組xx中,請編制函數(shù)SortCharD(),其函數(shù)的功能是:以行為單位對字符按從大到小的順序進行排序,排序后的結(jié)果仍按行重新存入字符串數(shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT2.DAT中。 例:原文:
38、dAe,BfC. CCbbAA 結(jié)果:fedCBA. bbCCAA 原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標點符號和空格。 部分源程序存在文件prog1.c中。 請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#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;
39、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不能打開!n007);return;SortCharD();WriteDat();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)
40、 p=strchr(xxi,n); if(p)*p=0; i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;fp=fopen(OUT2.DAT,w);for(i=0;imaxline;i+)printf(%sn,xxi);fprintf(fp,%sn,xxi);fclose(fp);*題目10(替換字符題)函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串數(shù)組xx中,請編制函數(shù)ConvertCharA(),其函數(shù)的功能是:以行為單位把字符串中的所有小寫字母改寫成該字母的下一個字母,如果是
41、字母z,則改寫成字母a。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不變。把已處理的字符串仍按行重新存入字符串數(shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT1.DAT中。 例:原文:Adb.Bcdza abck.LLhj 結(jié)果:Aec.Bdeab bcdl.LLik 原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標點符號和空格。 部分源程序存在文件prog1.c中。 請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#include #include #include char xx5080;int ma
42、xline=0;/*文章的總行數(shù)*/int ReadDat(void);void WriteDat(void);void ConvertCharA(void) int i,j;for(i=0;imaxline;i+) for(j=0;j=a&xxij=y) xxij+=1; void main()clrscr();if(ReadDat()printf(數(shù)據(jù)文件IN.DAT不能打開!n007);return;ConvertCharA();WriteDat();int ReadDat(void)FILE *fp;int i=0;char *p;if(fp=fopen(IN.DAT,r)=NULL)
43、 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(OUT1.DAT,w);for(i=0;imaxline;i+) printf(%sn,xxi); fprintf(fp,%sn,xxi);fclose(fp);題目11(字符串字母移位題)程序prog1.c的功能是:把 s 字符串中的所有字母改寫成該字母的下一個字母,字母z改寫成字母a。要求
44、大寫字母仍為大寫字母,小寫字母仍為小寫字母,其它字符不做改變。 請考生編寫函數(shù)chg(char *s)實現(xiàn)程序要求,最后調(diào)用函數(shù)readwriteDAT( )把結(jié)果輸出到文件bc1.out中。 例如:s 字符串中原有的內(nèi)容為:Mn.123Zxy,則調(diào)用該函數(shù)后,結(jié)果為:No.123Ayz。 注意:部分源程序存在文件prog1.c文件中。 請勿改動主函數(shù)main( )和輸出數(shù)據(jù)函數(shù)readwriteDAT()的內(nèi)容。#include #include #include #include #define N 81void readwriteDAT();void chg(char *s)int I;for(I=0;I=a&si=A&si=Y) si+=1;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() ;void readwriteDAT()int i ;char aN ;FILE *rf, *wf ;rf = fopen(bc1.in, r) ;wf = fopen(bc1.out,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧辦公樓宇管理系統(tǒng)建設(shè)實現(xiàn)節(jié)能減排與綠色發(fā)展
- 在線教育與醫(yī)療技術(shù)的跨界融合與創(chuàng)新發(fā)展
- 提升學(xué)習(xí)動力教育游戲化的應(yīng)用與探索
- 智慧城市公共交通的AI監(jiān)控與風(fēng)險控制
- 情緒智力在教學(xué)中的重要性
- 教育心理學(xué)在職業(yè)教育中的應(yīng)用前景
- 智慧醫(yī)療系統(tǒng)在醫(yī)療資源分配中的關(guān)鍵作用
- 教育心理學(xué)在校園欺凌防治中的作用
- 2025屆湖北省隨州市普通高中物理高二第二學(xué)期期末經(jīng)典模擬試題含解析
- 中職思政課課件下載
- -衛(wèi)生資格-副高-疾病控制-副高-章節(jié)練習(xí)-慢性非傳染性疾病控制-試題(單選題)(共1125題)
- 骨質(zhì)疏松病人的護理
- 高中英語全國高考考綱詞匯3600匯總
- GB/T 35068-2018油氣管道運行規(guī)范
- GB/T 13277.7-2021壓縮空氣第7部分:活性微生物含量測量方法
- 2023年婁底冷水江市廣播電視臺(融媒體中心)招聘筆試模擬試題及答案解析
- FZ/T 07019-2021針織印染面料單位產(chǎn)品能源消耗限額
- 特勞特戰(zhàn)略定位總裁課程課件
- 陳寶光-TTT課程開發(fā)與設(shè)計(講義)V2.1
- 六年級開學(xué)主題班會課件
- 公務(wù)員培訓(xùn)包過班協(xié)議書范本
評論
0/150
提交評論