上機(jī)應(yīng)試指導(dǎo)_第1頁
上機(jī)應(yīng)試指導(dǎo)_第2頁
上機(jī)應(yīng)試指導(dǎo)_第3頁
上機(jī)應(yīng)試指導(dǎo)_第4頁
上機(jī)應(yīng)試指導(dǎo)_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、上機(jī)應(yīng)試指導(dǎo),1 考試環(huán)境及規(guī)則簡介,1.1考試時間,1三級網(wǎng)絡(luò)技術(shù)上機(jī)考試時間定為60分鐘??荚嚂r間由上機(jī)考試系統(tǒng)自動進(jìn)行計(jì)時,提前5分鐘自動報警來提醒考生應(yīng)及時存盤,考試時間用完,上機(jī)考試系統(tǒng)將自動鎖定計(jì)算機(jī),考生將不能繼續(xù)進(jìn)行考試。 2當(dāng)考生登錄成功后,系統(tǒng)將自動抽取考題并且在屏幕上顯示上機(jī)須知并提示考生按“S”鍵開始考試,系統(tǒng)開始計(jì)時;如果是二次登錄,則系統(tǒng)將累計(jì)計(jì)時,考生必須在規(guī)定的時間內(nèi)完成考試內(nèi)容。當(dāng)考生超出考試所用時間時機(jī)器將自動關(guān)閉;當(dāng)考試只剩下指定時間時,屏幕上會自動報告所剩考試時間,此時考生只需按任意鍵繼續(xù)答題,不會影響考生成績。,1.2考題類型及分值,類型:程序設(shè)計(jì)題

2、滿分:100分,1.3上機(jī)操作手冊,1登錄 (1) 啟動考試程序:單擊 “開始登錄”按鈕。,1.3上機(jī)操作手冊,(2) 單擊9-1中的“開始登錄”按鈕或按回車鍵出現(xiàn)考號輸入窗口,(3) 輸入正確的準(zhǔn)考證考號、考生姓名、身份證號,再單擊“考號驗(yàn)證”按鈕或按回車鍵對輸入的考號以及姓名、身份證號進(jìn)行驗(yàn)證。,二次登錄密碼輸入,1.3上機(jī)操作手冊,2考試界面 當(dāng)考生登錄成功后,上機(jī)考試系統(tǒng)將自動在屏幕中間生成裝載試題內(nèi)容查閱工具的考試窗口,并在屏幕頂部始終顯示著考生的準(zhǔn)考證號、姓名、考試剩余時間以及可以隨時顯示或隱藏試題內(nèi)容查閱工具和退出考試系統(tǒng)進(jìn)行交卷的按鈕的窗口。 3查看題目要求 對于三級考試,在考

3、試窗口中選擇工具欄中的題目選擇按鈕“程序設(shè)計(jì)題”可以查看相應(yīng)題型的題目要求。 4尋求系統(tǒng)幫助 在“幫助”菜單欄中選擇“等級考試系統(tǒng)幫助”可以啟動考試幫助系統(tǒng),并顯示考試系統(tǒng)的使用說明,以及注意事項(xiàng)。,1.3上機(jī)操作手冊,5答題 當(dāng)考生登錄成功后,上機(jī)考試系統(tǒng)將會自動產(chǎn)生一個考生文件夾,該文件夾將存放該考生所有上機(jī)考試的考試內(nèi)容??忌荒茈S意刪除該文件夾以及該文件夾下與考試題目要求有關(guān)的文件及子文件夾。假設(shè)考生登錄的準(zhǔn)考證號為1520999999200001,則上機(jī)考試系統(tǒng)生成的考生文件夾(由準(zhǔn)考證號的前兩位數(shù)字和最后六位數(shù)字組成)將存放到K盤根目錄下的用戶目錄文件夾下,即考生文件夾為K:用戶目

4、錄文件夾15200001。,6交卷,如果考生要提前結(jié)束考試進(jìn)行交卷處理,則請?jiān)谄聊豁敳康臓顟B(tài)窗口中選擇“交卷”按鈕,上機(jī)考試系統(tǒng)將顯示是否要交卷處理的提示信息框,此時考生如果選擇“確定”按鈕,則退出上機(jī)考試系統(tǒng)進(jìn)行交卷處理,由系統(tǒng)管理員進(jìn)行評分和回收。如果考生還沒有做完試題,則選擇“取消”按鈕繼續(xù)進(jìn)行考試。 交卷處理時,系統(tǒng)首先鎖住屏幕,并顯示“系統(tǒng)正在進(jìn)行交卷處理,請稍候!”。當(dāng)系統(tǒng)完成了交卷,在屏幕上顯示“交卷正常,請監(jiān)考老師輸入結(jié)束密碼:”或“交卷異常,請監(jiān)考老師輸入結(jié)束密碼:”,這時只要輸入結(jié)束密碼便可結(jié)束考試。這個過程不刪除考生文件夾中的任何數(shù)據(jù)。如果出現(xiàn)“交卷異?!钡奶崾?,說明這個

5、考生有可能得零分或者考生文件夾有問題,要檢查這個考生的實(shí)際考試情況是否正常。如果在交卷過程中死機(jī),可以重新啟動計(jì)算機(jī),再進(jìn)行二次登錄后進(jìn)行“交卷”處理。,6交卷,考試過程中,系統(tǒng)會為考生計(jì)算剩余考試時間。在剩余5分鐘時,系統(tǒng)會顯示一個提示信息。 考試時間用完后,系統(tǒng)會鎖住計(jì)算機(jī)并提示輸入“延時”密碼。這時需要鍵入延時密碼才能解鎖計(jì)算機(jī)并恢復(fù)考試界面,考試系統(tǒng)會自動再運(yùn)行五分鐘,這時可以交卷。如果沒有進(jìn)行交卷處理,考試系統(tǒng)運(yùn)行到五分鐘后,系統(tǒng)又會鎖住計(jì)算機(jī)并提示輸入“延時”密碼。只要不進(jìn)行“交卷”處理,可以“延時”幾次。 考生完成答題過程,退出考試系統(tǒng)后,監(jiān)考人員必須進(jìn)行評分和考生成績的回收。,

6、2.典型考題分析,【例1】,已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位)、產(chǎn)品名稱mc(字符型10位)、單價dj(整型)、數(shù)量sl(整型)、金額je(長整型)幾部分組成。其中:金額單價數(shù)量。函數(shù)ReadDat()的功能是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱從小到大進(jìn)行排列,若產(chǎn)品名稱相同,則按金額從小到大進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT.DAT中。 注意:部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)Rea

7、dDat()和寫函數(shù)WriteDat()的內(nèi)容。,【試題程序】 #include #include #include #include #define MAX 100 typedef struct char dm5;/*產(chǎn)品代碼 */ char mc11;/* 產(chǎn)品名稱 */ int dj;/* 單價 */ int sl;/* 數(shù)量 */ long je;/* 金額*/ PRO; PRO sell MAX; void ReadDat(); void WriteDat(); void SortDat() void main() memset(sell,0,sizeof(sell); ReadDa

8、t(); SortDat(); WriteDat(); ,void ReadDat() FILE *fp; char str80, ch11; int i; fp fopen(IN.DAT, r); for (i 0; i 100; i) fgets(str, 80, fp); memcpy(selli.dm, str, 4); memcpy(selli.mc, str4, 10); memcpy(ch, str14, 4); ch4 0; selli.dj atoi(ch); memcpy(ch, str18, 5); ch5 0; selli.sl atoi(ch); selli.je (

9、long)selli.dj * selli.sl; fclose(fp); void WriteDat() FILE *fp; int i; fp fopen(OUT.DAT, w); for(i 0; i 100; i) fprintf(fp, %s %s %4d %5d %10ldn, selli.dm, selli.mc, selli.dj,selli.sl, selli.je); fclose(fp); ,【考點(diǎn)分析】 本題考查結(jié)構(gòu)體數(shù)組的排序??疾榈闹R點(diǎn)主要包括:結(jié)構(gòu)體成員運(yùn)算,字符串比較符,數(shù)組排序。 【解題思路】 此題屬于銷售記錄排序類題型。此類題型主要考查對結(jié)構(gòu)體數(shù)組的排序。

10、解題時,應(yīng)注意3個關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1如何按產(chǎn)品名稱從小到大排序;關(guān)鍵點(diǎn)2如果產(chǎn)品名稱相同;關(guān)鍵點(diǎn)3如何按金額從小到大排列。 數(shù)組排序可以用起泡法實(shí)現(xiàn),起泡法的思路是:將較小的值像空氣泡一樣逐漸上浮到數(shù)組的頂部,而較大的數(shù)值逐漸下沉到數(shù)組的底部。具體為第1趟用第1個記錄和第2個記錄進(jìn)行比較,如果不符合要求,就進(jìn)行交換,第2個記錄和第3個記錄比較,直到倒數(shù)第2個記錄和最后1個記錄比較完成;第2趟用第2個記錄和第3個記錄比較,然后第3個和第4個比較,依此類推。 本題在雙循環(huán)中進(jìn)行每次記錄比較時,首先用字符串比較函數(shù)strcmp比較兩個產(chǎn)品的名稱,如果返回的值大于0,則這兩個產(chǎn)品進(jìn)行數(shù)據(jù)交換;如果返回值

11、等于0,再比較兩個產(chǎn)品的金額,如果前一個產(chǎn)品的金額大于后一個產(chǎn)品的金額,則這兩個產(chǎn)品進(jìn)行數(shù)據(jù)交換。,【參考答案】 void SortDat() int i,j; /*定義循環(huán)控制變量*/ PRO temp; /*定義數(shù)據(jù)交換時的暫存變量(這里是結(jié)構(gòu)體變量)*/ for(i0;i0)/*產(chǎn)品名稱從小到大排列*/ tempselli; sellisellj; selljtemp; else if(strcmp(selli.mc,sellj.mc)0) /*若產(chǎn)品名稱相同*/ if(selli.jesellj.je) /*則按金額從小到大進(jìn)行排列*/ tempselli; sellisellj; s

12、elljtemp; ,模板一銷售記錄排序,【模板速記】 記憶口訣:一定義二循環(huán)三比較。定義指定義變量,循環(huán)指循環(huán)語句,比較是比較記錄成員大小及交換,詳見模板一。做題時,需靈活應(yīng)用模板,切勿死記硬背。 【易錯提示】 結(jié)構(gòu)型數(shù)據(jù)對成員的訪問用.成員運(yùn)算符;兩個字符串的比較用字符串比較函數(shù)strcmp。 【舉一反三】 在實(shí)際考試中,可能會稍微變化一下來考查,如題目要求變?yōu)椋喊唇痤~從大到小進(jìn)行排列,若金額相同,則按產(chǎn)品代碼從大到小進(jìn)行排列。對照模板可知,只需在解題時的條件1、假設(shè)及條件2做相應(yīng)變化即可。所以,對于本類題型,考生只需正確理解題目意思及相關(guān)算法,靈活應(yīng)用本題所給模板。 與本題類型相同的題目

13、有:上機(jī)習(xí)題第五組。這些題目都可以使用模板一來解題。,【例2】,已知數(shù)據(jù)文件IN.DAT中存有300個4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中。請編制函數(shù)jsValue(),其功能是:求出千位數(shù)上的數(shù)加個位數(shù)上的數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個數(shù)cnt,再把所有滿足此條件的4位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用寫函數(shù)writeDat()把數(shù)組b中的數(shù)輸出到OUT.DAT文件中。 例如:6712,6271,則該數(shù)滿足條件,存入數(shù)組b中,且個數(shù)cntcnt1。 8129,8912,則該數(shù)不滿足條件,忽略。 注意:部分源程序已給出。程序

14、中已定義數(shù)組:a300,b300,已定義變量:cnt。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。,【試題程序】 #include int a300, b300, cnt0; void readDat(); void writeDat(); void jsValue() void main() int i; readDat(); jsValue(); writeDat(); printf(cnt%dn, cnt); for(i0; icnt; i) printf(b%d%dn, i, bi); ,void readDat() FILE *fp; in

15、t i; fp fopen(IN.DAT, r); for(i0; i300; i) fscanf(fp, %d, &ai); fclose(fp); void writeDat() FILE *fp; int i; fp fopen(OUT.DAT, w); fprintf(fp, %dn,cnt); for(i0; icnt; i) fprintf(fp, %d,n, bi); fclose(fp); ,【考點(diǎn)分析】 本題考查對多個整數(shù)的篩選以及排序??疾榈闹R點(diǎn)主要包括:多位整數(shù)的分解算法,邏輯表達(dá)式,數(shù)組排序算法。 【解題思路】 此題屬于4位數(shù)的篩選類題,并且需求出各位數(shù)數(shù)字,再篩選排

16、序。解此類題目需主要解決3個問題:問題1如何取得4位數(shù)的各個數(shù)位數(shù)字;問題2如何通過條件(本題為千位數(shù)字加個位數(shù)字等于百位數(shù)字加十位數(shù)字)篩選出滿足條件的數(shù);問題3如何對數(shù)組中的數(shù)進(jìn)行排序。 解此類題的一般思路為:先求出每個數(shù)的各位數(shù)字,再根據(jù)各位數(shù)數(shù)字篩選出滿足條件的數(shù)存入新的數(shù)組中,最后對新數(shù)組進(jìn)行排序。對于問題1通過算術(shù)運(yùn)算取余和整除可以分解得到4位數(shù)的各個數(shù)位上的數(shù)字;問題2通過if條件判斷語句和邏輯表達(dá)式可以實(shí)現(xiàn)。問題3排序可以通過循環(huán)嵌套的起泡法來完成。 在求各位數(shù)數(shù)字時,先將每個數(shù)進(jìn)行取整運(yùn)算求出千位數(shù),將該數(shù)取余再除100取整得出百位數(shù),將該數(shù)取余再除10取整得出十位數(shù),最后將

17、該數(shù)取余得出個位數(shù)。,【參考答案】 voidjsValue() int i,j; int a1,a2,a3,a4; int temp; for(i0;ibj) tempbi; bibj; bjtemp; ,模板二4位數(shù)篩選(1)-根據(jù)各位數(shù)數(shù)字排序,【模板速記】 記憶口訣:一定義二篩選三排序。定義指定義相關(guān)變量,篩選是篩選出滿足條件的數(shù),排序則是按照要求對數(shù)組排序。詳見模板二。做題時,需靈活應(yīng)用本模板,切勿死記硬背。 【易錯提示】 分解4位數(shù)時算術(shù)運(yùn)算符的使用,4位數(shù)條件判斷時if語句中的條件表達(dá)式,起泡法排序時的條件。 【舉一反三】 在實(shí)際考試中,可能會稍微變化一下來考查,如題目要求變?yōu)椋呵?/p>

18、位數(shù)字加百位數(shù)字等于十位數(shù)字加個位數(shù)字,或者最后排序時是按照從大到小進(jìn)行排列。 對照模板可知,只需在解題時的條件1或條件2做相應(yīng)變化即可。所以,對于本類題型,考生只需正確理解題目意思及相關(guān)算法,靈活應(yīng)用本題所給模板。 與本題類型相同的題目有:上機(jī)習(xí)題第七組,這些題目都可以根據(jù)模板二來解題。,【例3】,已知數(shù)據(jù)文件IN.DAT中存有200個4位數(shù),并已調(diào)用讀函數(shù)readDat() 把這些數(shù)存入數(shù)組a中,請編制一個函數(shù)jsVal(),其功能是:把千位數(shù)字和十位數(shù)字重新組成一個新的2位數(shù)ab(新2位數(shù)的十位數(shù)字是原4位數(shù)的千位數(shù)字,新2位數(shù)的個位數(shù)字是原4位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字組

19、成另一個新的十位數(shù)cd(新2位數(shù)的十位數(shù)字是原4位數(shù)的個位數(shù)字,新2位數(shù)的個位數(shù)字是原4位數(shù)的百位數(shù)字),如果新組成兩個2位數(shù)abcd0且abcd10且兩個數(shù)均是奇數(shù),同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的4位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的4位數(shù)的個數(shù)cnt,最后調(diào)用寫函數(shù)writeDat()把結(jié)果cnt及數(shù)組b中符合條件的4位數(shù)輸出到OUT.DAT文件中。 注意:部分源程序已給出。程序中已定義數(shù)組:a200,b200,已定義變量:cnt。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。,【試題程序】 #include

20、#define MAX 200 int aMAX, bMAX, cnt 0; void writeDat(); 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(); voi

21、d 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); ,【考點(diǎn)分析】 本題考查對多個整數(shù)的篩選以及排序??疾榈闹R點(diǎn)主要包括:多位整數(shù)的分解算法,邏輯表達(dá)式,數(shù)組排序算法。 【解題思路】 此題屬于4位數(shù)的篩選類題,并且需將各位數(shù)組成新的2位數(shù),再篩選排序。解題時,需主要解決4個問題:問題1如何取得4位數(shù)的各個數(shù)位數(shù)字;問題2如何按照要求組成新的2位數(shù)字ab(本題為千位數(shù)字與十位數(shù)字),以及cd(

22、本題為個位數(shù)字與百位數(shù)字);問題3如何通過判斷條件(abcd0,abcd0&(abcd)10&ab%21&cd%21&a4!0&a1!0)。,【參考答案】 void jsVal() int i,j; /*定義循環(huán)控制變量*/ int a1,a2,a3,a4; /*定義變量保存4位數(shù)的每位數(shù)字*/ int temp; /*定義數(shù)據(jù)交換時的暫存變量*/ int ab,cd; /*存儲重新組合成的2位數(shù)*/ for(i0;i=0&(ab-cd)0且abcd10且兩個數(shù)均是奇數(shù),同時兩個新2位數(shù)的十位上的數(shù)字均不為零*/ bcntai;/*則把滿足條件的數(shù)存入數(shù)組b中*/ cnt; /*統(tǒng)計(jì)滿足條件的

23、數(shù)的個數(shù)*/ for(i0;icnt1;i)/*將數(shù)組b中的數(shù)按從大到小的順序排列*/ for(ji1;jcnt;j) if(bibj) tempbi; bibj; bjtemp; ,【模板速記】 記憶口訣:一定義二篩選三排序。定義指定義相關(guān)變量,篩選是篩選出滿足條件的數(shù),排序則是按照要求對數(shù)組排序,詳見模板三。做題時,需靈活應(yīng)用本模板,切勿死記硬背。,模板三4位數(shù)篩選(2)-組成2位數(shù)再篩選排序,【易錯提示】 分解4位數(shù)時算術(shù)運(yùn)算符的使用,if判斷語句中邏輯表達(dá)式,起泡法排序時的條件。 【舉一反三】 在實(shí)際考試中,可能會稍微變化一下來考查,如題目要求變?yōu)椋喊亚粩?shù)字和十位數(shù)字重新組成一個新的

24、2位數(shù),百位數(shù)字和十位數(shù)字組合成另一個新的2位數(shù),條件判斷時要求新2位數(shù)都是偶數(shù),或者最后排序時是按照從小到大進(jìn)行排列等等。 對照模板可知,只需在解題時對N1,N2,N3,N4部分替換,將條件1及條件2部分做相應(yīng)變化即可。所以,對于本類題型,考生只需正確理解題目意思及相關(guān)算法,靈活應(yīng)用本題所給模板。 與本題類型相同的題目有:上機(jī)習(xí)題第九組,這些題目都可以根據(jù)模板三來解題。,【例4】,已知數(shù)據(jù)文件in.dat中存有300個4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsValue(),其功能是:求出千位數(shù)上的數(shù)減百位數(shù)上數(shù)減十位數(shù)上的數(shù)減個位數(shù)上的數(shù)大于零的個數(shù)cn

25、t,再求出所有滿足此條件的4位數(shù)平均值pjz1,以及所有不滿足此條件的4位數(shù)平均值pjz2,最后調(diào)用函數(shù)writeDat()把結(jié)果cnt,pjz1,pjz2輸出到out.dat文件中。 例如:9123,91230,則該數(shù)滿足條件,計(jì)算平均值pjz1,且個數(shù)cntcnt1。 9812,98120,則該數(shù)不滿足條件,計(jì)算平均值pjz2。 注意:部分源程序已給出。程序中已定義數(shù)組:a300,已定義變量:cnt。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。,【試題程序】 #include int a300, cnt0; double pjz10.0,pjz2

26、0.0; void readDat(); void writeDat(); void jsValue() void main() readDat(); jsValue(); writeDat(); printf(cnt%dn滿足條件的平均值pjz1%7.2lfn不滿足條件的平均值 pjz2%7.2lfn,cnt,pjz1,pjz2); ,void readDat() FILE *fp; int i; fpfopen(in.dat,r); for(i0;i300;i) fscanf(fp,%d,&ai); fclose(fp); void writeDat() FILE *fp; fpfopen

27、(out.dat,w); fprintf(fp,%dn%7.2lfn%7.2lfn,cnt ,pjz1,pjz2); fclose(fp); ,【考點(diǎn)分析】 本題考查對多個整數(shù)的篩選以及求平均值??疾榈闹R點(diǎn)主要包括:多位整數(shù)的分解算法,邏輯表達(dá)式,求平均值算法。 【解題思路】 此題屬于4位數(shù)的篩選題型,并且涉及統(tǒng)計(jì)及平均值問題。解題時,需主要解決3個問題:問題1如何取得4位數(shù)的各個數(shù)位的數(shù)字;問題2如何通過判斷條件(本題為千位數(shù)減百位數(shù)減十位數(shù)減個位數(shù)的值大于0)對目標(biāo)進(jìn)行篩選,再分別統(tǒng)計(jì)出滿足和不滿足條件的數(shù)的和以及數(shù)目;問題3如何求出兩類數(shù)的平均值。 解此類題的一般思路為:先求出各位數(shù)字

28、的值,根據(jù)各位數(shù)字的屬性判斷并統(tǒng)計(jì)滿足和不滿足條件的數(shù)的個數(shù)及和值,最后用和除以個數(shù)得出相應(yīng)的平均值。與前面類型的題不同的是,在問題2篩選時,不需要將符合要求的數(shù)存入新的數(shù)組,只需用條件判斷語句分別統(tǒng)計(jì)符合條件的數(shù)的數(shù)目(cnt)及不符合條件的個數(shù)(n),以及對應(yīng)的和值(pjz1、pjz2)。問題3用和值除以對應(yīng)個數(shù)即可(pjz1/cnt,pjz2/n)。,【參考答案】 void jsValue() int i,n0;/*定義循環(huán)變量和計(jì)數(shù)器變量*/ int a1,a2,a3,a4; /*定義變量保存4位數(shù)的每位數(shù)字*/ for(i0;i0)/*如果千位數(shù)字減百位數(shù)字減十位數(shù)字減個位數(shù)字大于零

29、*/ cnt;/*統(tǒng)計(jì)滿足條件的數(shù)的個數(shù)*/ pjz1ai;/*對滿足條件的數(shù)求和*/ else n;/*統(tǒng)計(jì)不滿足條件的數(shù)的個數(shù)*/ pjz2ai;/*對不滿足條件的數(shù)求和*/ pjz1/cnt; /*求滿足條件的數(shù)的平均值*/ pjz2/n; /*求不滿足條件的數(shù)的平均值*/ ,【模板速記】 記憶口訣:一定義二統(tǒng)計(jì)三求值。定義指定義相關(guān)變量,統(tǒng)計(jì)是統(tǒng)計(jì)滿足條件的數(shù)的個數(shù)及求出和值,求值是分別求出滿足和不滿足條件的數(shù)的平均值,詳見模板四。做題時,需靈活應(yīng)用本模板,切勿死記硬背。,模板四4位數(shù)篩選(3)-統(tǒng)計(jì)及求平均值,【易錯提示】 分解4位數(shù)時算術(shù)運(yùn)算符的使用,if判斷語句中邏輯表達(dá)式。 【

30、舉一反三】 在實(shí)際考試中,可能會稍微變化一下來考查,如題目要求變?yōu)椋簵l件判斷時要求的是個位數(shù)減千位數(shù)減百位數(shù)減十位數(shù)的結(jié)果大于0。 對照模板可知,只需在解題時對 條件1部分做相應(yīng)變化即可。所以,對于本類題型,考生只需正確理解題目意思及相關(guān)算法,靈活應(yīng)用本題所給模板。 與本題類型相同的題目有:上機(jī)習(xí)題第七、十一組。這些題目都可以根據(jù)模板四來解題。,【例5】,已知IN.DAT中存有200個4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請編制一函數(shù) jsVal(),其功能是:依次從數(shù)組a中取出一個數(shù),如果該4位數(shù)連續(xù)大于該4位數(shù)以后的5個數(shù)且該數(shù)是奇數(shù),則統(tǒng)計(jì)出滿足此條件的數(shù)的個數(shù)c

31、nt,并把這些4位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù) writeDat() 把結(jié)果cnt及數(shù)組b中符合條件的4位數(shù)輸出到 OUT.DAT文件中。 注意:部分源程序已給出。程序中已定義數(shù)組:a200,b200,已定義變量:cnt。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。,【試題程序】 #include #define MAX 200 int aMAX, bMAX, cnt 0; void writeDat(); void jsVal() void readDat() int i; FILE *fp; fp fopen(IN.DAT, r

32、); for(i 0; i MAX; i) fscanf(fp, %d, &ai); fclose(fp); ,void main() int i; readDat(); jsVal(); printf(滿足條件的數(shù)%dn, cnt); for(i0; i cnt; i) printf(%d , bi); printf(n); writeDat(); void writeDat() FILE *fp; int i; fp fopen(OUT.DAT, w); fprintf(fp, %dn, cnt); for(i 0; i cnt; i) fprintf(fp, %dn, bi); fclo

33、se(fp); ,【考點(diǎn)分析】 本題考查對整數(shù)的篩選以及數(shù)組排序??疾榈闹R點(diǎn)主要包括:循環(huán)嵌套,數(shù)組排序。 【解題思路】 此題屬于4位數(shù)的篩選題型,并且需要比較相鄰的5個數(shù)大小。解題時,需主要解決2個問題:問題1如何根據(jù)判斷條件(本題為該4位數(shù)連續(xù)大于該4位數(shù)以后的5個數(shù)且該數(shù)是奇數(shù))對目標(biāo)進(jìn)行篩選,統(tǒng)計(jì)出滿足條件的個數(shù);問題2如何將這些數(shù)進(jìn)行排序。 此類題的一般解法為:依次判斷每個數(shù)是否滿足條件,滿足則個數(shù)加1,并存入新的數(shù)組,否則跳過并判斷下一個數(shù)字,判斷完后對數(shù)組進(jìn)行排序。問題1可以用循環(huán)嵌套來實(shí)現(xiàn),要篩選的數(shù)必須同時滿足兩個條件(一個條件是該4位數(shù)連續(xù)大于該4位數(shù)以后的5個數(shù),另一個

34、條件為該數(shù)為奇數(shù)),可以將第2個條件作為首要滿足條件,再依次判斷是否滿足第1個條件,滿足則個數(shù)cnt加1,并將該數(shù)存入新的數(shù)組,否則跳過并判斷下一個數(shù)字。,【參考答案】 void jsVal() int i,j; /*定義循環(huán)控制變量*/ int temp; /*定義數(shù)據(jù)交換時的暫存變量*/ for(i0;ibj) tempbi; bibj; bjtemp; ,模板五4位數(shù)的篩選(4)-4位數(shù)之間的比較,【模板速記】 記憶口訣:一定義二篩選三排序。定義指定義相關(guān)變量,篩選指選出滿足條件的數(shù)并存入數(shù)組,排序指按照要求排序,詳見模板五。做題時,需靈活應(yīng)用本模板,切勿死記硬背。,【易錯提示】 循環(huán)嵌

35、套的循環(huán)控制條件,if判斷語句中表達(dá)式,數(shù)組排列的順序。 【舉一反三】 在實(shí)際考試中,可能會稍微變化一下來考查,如題目要求變?yōu)椋簵l件判斷要求該數(shù)連續(xù)大于其前面的5個數(shù)且該數(shù)為偶數(shù),或者最后要求按照從大到小的順序進(jìn)行排列。對照模板可知,只需在解題時按照模板對條件1 條件2 條件3 條件4和循環(huán)控制條件1循環(huán)控制條件2部分做相應(yīng)變化即可。所以,對于本類題型,考生只需正確理解題目意思及相關(guān)算法,靈活應(yīng)用本題所給模板。 與本題類型相同的題目有:上機(jī)習(xí)題第八組。這些題目都可以參照模板五來解題。,【例6】,在文件IN.DAT中有200個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)readDat()的功

36、能是讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),該函數(shù)的功能是:要求按每個數(shù)的后3位的大小進(jìn)行降序排列,將排序后的前10個數(shù)存入數(shù)組bb中,如果出現(xiàn)后3位相等的數(shù),則對這些數(shù)按原始4位數(shù)據(jù)進(jìn)行升序排列。最后調(diào)用函數(shù)writeDat()把結(jié)果bb輸出到文件OUT.DAT中。 例如:處理前 9012 5099 6012 7025 8088 處理后 5099 8088 7025 6012 9012 注意:部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。,【試題程序】 #include #include #include in

37、t aa200, bb10; void readDat(); void writeDat(); void jsSort() void main() readDat(); jsSort(); writeDat(); ,void readDat() FILE *in; int i; in fopen(IN.DAT, r); for(i 0; i 200; i) fscanf(in, %d, &aai); fclose(in); void writeDat() FILE *out; int i; out fopen(OUT.DAT, w); system(CLS); for (i 0; i 10;

38、i) printf(i%d,%dn, i1, bbi); fprintf(out, %dn, bbi); fclose(out); ,【考點(diǎn)分析】 本題考查對4位整數(shù)的排序??疾榈闹R點(diǎn)主要包括:數(shù)組元素的排序算法,if判斷語句和邏輯表達(dá)式,以及求余算術(shù)運(yùn)算。 【解題思路】 此題屬于4位數(shù)排序問題。本題需主要解決3個問題:問題1如何取4位數(shù)的后3位進(jìn)行比較;問題2如何按照題目要求的條件(按照每個數(shù)的后3位的大小進(jìn)行降序排列,如果后3位相等,則按照原始4位數(shù)的大小進(jìn)行升序排列)排序;問題3如何將排完序的前10個數(shù)存到數(shù)組bb中去。 本題的解題思路為:使用雙循環(huán)對數(shù)組按條件進(jìn)行排序,然后將排完序的

39、前10個數(shù)存到數(shù)組bb中。對于問題1可以通過算術(shù)運(yùn)算的取余運(yùn)算實(shí)現(xiàn)(aai%1000);問題2通過包含if判斷語句的起泡排序法就可以實(shí)現(xiàn)。,【參考答案】 void jsSort() int i,j; /*定義循環(huán)控制變量*/ int temp;/*定義數(shù)據(jù)交換時的暫存變量*/ for(i0;iaaj) /*則按原4位數(shù)的大小進(jìn)行升序排序*/ tempaai; aaiaaj; aajtemp; for(i0;i10;i) /*將排序后的前10個數(shù)存入數(shù)組bb中*/ bbiaai; ,【易錯提示】 取4位數(shù)后三位的算法,if判斷語句中邏輯表達(dá)式的比較運(yùn)算符。 【舉一反三】 在實(shí)際考試中,可能會稍微

40、變化一下來考查,如題目要求變?yōu)椋菏紫纫蟀凑?位數(shù)的后3位進(jìn)行升序排列,當(dāng)后3位相等時,則按照原始4位數(shù)的大小進(jìn)行降序排列等等。 與本題類型相同的題目有:上機(jī)習(xí)題第三組。,【例7】,下列程序的功能是:計(jì)算出自然數(shù)SIX和NINE,它們滿足的條件是SIXSIXSIXNINENINE的個數(shù)cnt,以及滿足此條件的所有SIX與NINE的和sum。請編寫函數(shù)countValue()實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù)writeDAT()把結(jié)果cnt和sum輸出到文件OUT.DAT中。其中的S,I,X,N,E各代表一個十進(jìn)制數(shù)字。 注意:部分源程序已給出。請勿改動主函數(shù)main( )和寫函數(shù)writeDAT( )

41、的內(nèi)容。,【試題程序】 #include int cnt,sum; void writeDAT(); void countValue() void main() cntsum0; countValue(); printf(滿足條件的個數(shù)%dn,cnt); printf(滿足條件所有的SIX與NINE的和%dn,sum); writeDAT(); ,void writeDAT() FILE *fp; fpfopen(OUT.DAT, w); fprintf(fp,%dn%dn,cnt,sum); fclose(fp); ,【考點(diǎn)分析】 本題主要考查的知識點(diǎn)包括:C語言循環(huán)結(jié)構(gòu),if判斷語句和邏輯

42、表達(dá)式,以及分解多位整數(shù)的算術(shù)運(yùn)算。 【解題思路】 分析題干,本題除給出條件SIXSIXSIX NINENINE之外,還可得出2個隱含的條件:條件1:SIX和NINE分別是3位和4位的正整數(shù);條件2:SIX的十位數(shù)字等于NINE的百位數(shù)字,NINE的千位數(shù)字和十位數(shù)字相等。 本題解題思路:通過嵌套的循環(huán)結(jié)構(gòu)可以遍歷到所有的3位和4位數(shù),對于每一個3位數(shù)及4位數(shù)的組合進(jìn)行題設(shè)條件(SIXSIXSIX NINENINE)的判斷,滿足條件的對其分解得到各數(shù)位的數(shù)字,再進(jìn)一步判斷各位數(shù)字是否滿足本題隱含的條件(條件1及條件2),如果滿足則個數(shù)加1,并將該3位數(shù)及4位數(shù)添加到和值中。,【參考答案】 vo

43、id countValue() int i,j; /*定義變量分別存儲SIX(i)和NINE(j)*/ int s2; /*保存SIX的十位數(shù)字*/ int n2,n3,n4; /*保存NINE的十位,百位和千位數(shù)字*/ for(i100;i1000;i) /*遍歷所有可能是SIX的數(shù)*/ for(j1000;j10000;j) /*遍歷所有可能是NINE的數(shù)*/ if(i*3j*2) /*如果滿足條件SIXSIXSIX NINENINE */ s2i%100/10; /*計(jì)算SIX的十位數(shù)字*/ n4j/1000;/*計(jì)算NINE的千位數(shù)字*/ n3j%1000/100; /*計(jì)算NINE的

44、百位數(shù)字*/ n2j%100/10;/*計(jì)算NINE的十位數(shù)字*/ if(s2n3 & n2n4) /*判斷是否滿足條件SIX的十位數(shù)字等于NINE的百位數(shù)字,且NINE的千位數(shù)字和十?dāng)?shù)字相等*/ cnt;/*統(tǒng)計(jì)滿足條件的數(shù)的個數(shù)*/ sumij;/*求滿足此條件的所有SIX與NINE的和*/ ,【易錯提示】 隱含條件未被分析出或分析錯誤,整數(shù)數(shù)位分解的算術(shù)方法使用錯誤。 【舉一反三】 在實(shí)際考試中,可能會稍微變化一下來考查。 如題干要求改為:SIXSIXSIX NINE或者SIX*SIX NINE。對于本類題型,考生需正確理解題目意思及相關(guān)算法,靈活處理。 與本題類型相同的題目有:上機(jī)習(xí)題

45、第Z17。,【例8 】,請編制函數(shù)ReadDat( )實(shí)現(xiàn)從文件IN.DAT中讀取1000個十進(jìn)制整數(shù)到數(shù)組xx中。請編制函數(shù)Compute( )分別計(jì)算出xx中奇數(shù)的個數(shù)odd、奇數(shù)的平均值ave1、偶數(shù)的平均值ave2及所有奇數(shù)的方差totfc的值。最后調(diào)用函數(shù)WriteDat( )把結(jié)果輸出到OUT.DAT文件中。計(jì)算方差的公式如下: 設(shè)N為奇數(shù)的個數(shù)xxi為奇數(shù)ave1為奇數(shù)的平均值。 原始數(shù)據(jù)的存放格式是:每行存放10個數(shù),并用逗號隔開(每個數(shù)均大于0且小于等于2000)。 注意:部分源程序已給出。請勿改動主函數(shù)main()和輸寫函數(shù)WriteDat()的內(nèi)容。,【試題程序】 #in

46、clude #include #include #define MAX 1000 int xxMAX,odd0,even0; double ave10.0,ave20.0,totfc0.0; void WriteDat(void); int ReadDat(void) FILE *fp; if(fpfopen(IN.DAT,r)NULL) return 1; fclose(fp); return 0; void Compute(void) ,void main( ) int i; for(i0;iMAX;i) xxi0; if(ReadDat() printf(數(shù)據(jù)文件IN.DAT不能打開!0

47、07n); return; Compute(); printf( ODD%dnAVE1%fnAVE2%fnTOTFC%fn,odd,ave1,ave2,totfc); WriteDat(); void WriteDat(void) FILE *fp; fpfopen(OUT.DAT,w); fprintf(fp,%dn%lfn%lfn%lfn,odd,ave1,ave2,totfc); fclose(fp); ,【考點(diǎn)分析】 本題考查的知識點(diǎn)包括:C語言中文件讀函數(shù),if條件判斷結(jié)構(gòu),對多個整數(shù)求平均值和方差的算法等。 【解題思路】 此題屬于數(shù)學(xué)類問題。分析題干要求,得出解本題主要需解決3個問

48、題:問題1如何實(shí)現(xiàn)從已打開的文件中依次讀取數(shù)據(jù)到數(shù)組的操作,問題2如何分離并統(tǒng)計(jì)出奇數(shù)和偶數(shù)的個數(shù)及和值,并計(jì)算平均值;問題3如何計(jì)算奇數(shù)的方差。 本題的解題思路為:首先使用C語言的庫函數(shù)fscanf()將文件中的數(shù)依次讀入數(shù)組xx中,然后通過循環(huán)判斷得出需要的數(shù)據(jù)(奇數(shù)個數(shù)、偶數(shù)個數(shù)、奇數(shù)及偶數(shù)的和);最后根據(jù)題目中已給出的公式和之前保存的數(shù)據(jù)計(jì)算出奇數(shù)的方差。,【參考答案】 int ReadDat(void) FILE *fp; int i,j; /*定義計(jì)數(shù)器變量*/ if(fpfopen(IN.DAT,r)NULL) return 1; for(i0;i100;i) /*依次讀取整型數(shù)

49、據(jù)放入數(shù)組xx中*/ for(j0;j10;j) fscanf(fp,%d,&xxi*10j); fscanf(fp,n); if(feof(fp) break; /*文件讀取結(jié)束,則退出*/ fclose(fp); return 0; ,void Compute(void) int i; /*定義循環(huán)控制變量*/ int ttMAX;/*定義數(shù)組保存奇數(shù)*/ for(i0;i1000;i) if(xxi%2!0) odd; /*計(jì)算出xx中奇數(shù)的個數(shù)odd*/ ave1xxi;/*求奇數(shù)的和*/ ttodd1xxi;/*將奇數(shù)存入數(shù)組tt中*/ else even;/*計(jì)算出xx中偶數(shù)的個數(shù)

50、even*/ ave2xxi;/*求偶數(shù)的和*/ ave1/odd; /*求奇數(shù)的平均值*/ ave2/even;/*求偶數(shù)的平均值*/ for(i0;iodd;i) totfc(ttiave1)*(ttiave1)/odd; /*求所有奇數(shù)的方差*/ ,【易錯提示】 文件操作函數(shù)fscanf()和feof()的用法,if判斷語句中邏輯表達(dá)式,對方差計(jì)算公式運(yùn)用錯誤。 【舉一反三】 在實(shí)際考試中,可能會稍微變化一下來考查,如題目要求變?yōu)椋河?jì)算偶數(shù)的個數(shù)even、奇數(shù)的平均值ave1、偶數(shù)的平均值ave2及所以偶數(shù)的方差totfc。 與本題類型相似的題目有:上機(jī)習(xí)題第十組。,【例9】,下列程序的

51、功能是:在3位整數(shù)(100至999)中尋找符合下面條件的整數(shù),并依次從小到大存入數(shù)組bb中;它既是完全平方數(shù),又有兩位數(shù)字相同,例如144,676等。請編制函數(shù)int jsValue(int bb)實(shí)現(xiàn)此功能,滿足該條件的整數(shù)的個數(shù)通過所編制的函數(shù)返回。最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件OUT.DAT中。 注意:部分源程序已給出。請勿改動主函數(shù)main()和寫函數(shù)writeDat()的內(nèi)容。,【試題程序】 #include void writeDat(); int jsValue(int bb ) void main() int b20, num; num jsValue(b);

52、 writeDat(num, b); ,void writeDat(int num, int b) FILE *out; int i; out fopen(OUT.DAT, w); fprintf(out, %dn, num); for(i 0; i num; i) fprintf(out, %dn, bi); fclose(out); ,【考點(diǎn)分析】 本題考查對一定范圍內(nèi)整數(shù)的篩選。考查的知識點(diǎn)主要包括:多位整數(shù)的分解算法,完全平方數(shù)判斷方法,if判斷語句和邏輯表達(dá)式。 【解題思路】 此題屬于數(shù)學(xué)類問題。分析題干,本題需注意2個關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1判斷該數(shù)是否是完全平方數(shù);關(guān)鍵點(diǎn)2判斷該數(shù)是否有

53、兩位數(shù)數(shù)字相同。 本題的解題思路為:通過循環(huán)控制,依次判斷100至999數(shù)是否滿足關(guān)鍵點(diǎn)1(是否為完全平方數(shù))。如果是,則將該數(shù)分解出各位數(shù)數(shù)字,并判斷是否有兩位數(shù)數(shù)字相同,如果存在,則個數(shù)加1,并將該數(shù)存入數(shù)組中。,【參考答案】 int jsValue(int bb) int i,j; /*定義循環(huán)控制變量*/ int cnt0;/*定義計(jì)數(shù)器變量*/ int a3,a2,a1;/*定義變量存儲3位數(shù)每位的數(shù)字*/ for(i100;i999;i)/*在該范圍中找符合條件的數(shù)*/ for(j10; jsqrt(i);j) if(ij*j)/*如果該數(shù)是完全平方數(shù)*/ a3i/100;/*求該

54、數(shù)的百位數(shù)字*/ a2i%100/10;/*求該數(shù)的十位數(shù)字*/ a1i%10; /*求該數(shù)的個位數(shù)字*/ if(a3a2 | a3a1 | a2a1) /*若有兩位數(shù)字相同*/ bbcnti;/*則把該數(shù)存入數(shù)組bb中*/ cnt; /*統(tǒng)計(jì)滿足條件的數(shù)的個數(shù)*/ return cnt; /*返回滿足該條件的整數(shù)的個數(shù)*/ ,【易錯提示】 完全平方數(shù)的判斷方法錯誤,分解整數(shù)各個數(shù)位的方法錯誤,if判斷語句中表達(dá)式。 【舉一反三】 在實(shí)際考試中,可能會稍微變化一下來考查。對于本類題型,考生需正確理解題目意思及相關(guān)算法,靈活解題。 與本題類型相似的題目有:上機(jī)習(xí)題第Z09。,【例10】,下列程序

55、的功能是:選出1001000間的所有個位數(shù)字與十位數(shù)字之和被10除所得余數(shù)恰是百位數(shù)字的素數(shù)(如293)。計(jì)算并輸出上述這些素數(shù)的個數(shù)cnt,以及這些素數(shù)值的和sum。請編寫函數(shù)countValue()實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù)writeDAT()把結(jié)果cnt和sum輸出到文件OUT.DAT中。 注意:部分源程序已給出。請勿改動主函數(shù)main()和寫函數(shù)writeDAT()的內(nèi)容。,【試題程序】 #include int cnt, sum; #include int cnt, sum; void writeDAT(); void countValue() void main() cntsum0

56、; countValue(); printf(素數(shù)的個數(shù)%dn, cnt); printf(滿足條件素數(shù)值的和%d, sum); writeDAT(); ,void writeDAT() FILE *fp; fpfopen(OUT.DAT, w); fprintf(fp, %dn%dn, cnt, sum); fclose(fp); ,【考點(diǎn)分析】 本題考查對一定范圍內(nèi)整數(shù)的篩選。考查的知識點(diǎn)主要包括:多位整數(shù)的分解算法,素數(shù)的判斷算法,if判斷語句和邏輯表達(dá)式。 【解題思路】 此題屬于數(shù)學(xué)類問題。分析題干要求,歸納出本題的2個關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1判斷該數(shù)是否為素數(shù);關(guān)鍵點(diǎn)2判斷是否滿足條件:個位

57、數(shù)字和十位數(shù)字之和被10除所得余數(shù)等于百位數(shù)字。 本題思路為:通過循環(huán)語句,依次求出所有3位數(shù)的各位數(shù)數(shù)字,并判斷是否滿足關(guān)鍵點(diǎn)2(個位數(shù)字和十位數(shù)字之和被10除所得余數(shù)等于百位數(shù)字),如果滿足則判斷該數(shù)是否為素數(shù),如果是則個數(shù)加1,并將該數(shù)加到和值中。判斷的方法為:依次取從2到該數(shù)1/2的數(shù)去除這個數(shù),如果有一個可被整除,則不是素數(shù),如果循環(huán)后的數(shù)大于該數(shù)的一半就可以判定該數(shù)是一個素數(shù)。,【參考答案】 void countValue() int i,j; /*定義循環(huán)控制變量*/ int a3,a2,a1;/*定義變量存儲3位數(shù)每位的數(shù)字*/ int half; for(i101;ihalf

58、) /*如果是素數(shù)*/ cnt; /*計(jì)算這些素數(shù)的個數(shù)cnt*/ sumi;/*計(jì)算這些素數(shù)的和值sum*/ ,【易錯提示】 素數(shù)的判斷算法使用錯誤,分解整數(shù)各個數(shù)位的方法錯誤,if判斷語句中邏輯表達(dá)式錯誤。 【舉一反三】 在實(shí)際考試中,可能會稍微變化一下來考查。對于本類題型,考生需正確理解題目意思及相關(guān)算法。 與本題類型相似的題目有:上機(jī)習(xí)題Z08。,【例11】,函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件ENG.IN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中。請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,結(jié)果仍存入數(shù)組xx對應(yīng)的位置上,最后調(diào)用函數(shù)Wr

59、iteDat()把結(jié)果xx輸出到文件PS.DAT中。 替代關(guān)系:f(p)p*11 mod 256(p是數(shù)組xx中某一個字符的ASCII值,f(p)是計(jì)算后新字符的ASCII值),如果計(jì)算后f(p)的值小于等于32或大于130,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。 注意:部分源程序已給出。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main()、讀函數(shù)ReadDat()和寫函數(shù)WriteDat()的內(nèi)容。,試題程序】 #include #include #include #include unsigned char xx5080; int maxline 0;/* 文章的總行數(shù) */ int ReadDat(void); void WriteDat(vo

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論