全國(guó)計(jì)算機(jī)三級(jí)數(shù)據(jù)庫(kù)技術(shù)上機(jī)試題道_第1頁(yè)
全國(guó)計(jì)算機(jī)三級(jí)數(shù)據(jù)庫(kù)技術(shù)上機(jī)試題道_第2頁(yè)
全國(guó)計(jì)算機(jī)三級(jí)數(shù)據(jù)庫(kù)技術(shù)上機(jī)試題道_第3頁(yè)
全國(guó)計(jì)算機(jī)三級(jí)數(shù)據(jù)庫(kù)技術(shù)上機(jī)試題道_第4頁(yè)
全國(guó)計(jì)算機(jī)三級(jí)數(shù)據(jù)庫(kù)技術(shù)上機(jī)試題道_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 .【考點(diǎn)分析】本題考查對(duì)4位整數(shù)的排序??疾榈闹R(shí)點(diǎn)主要包括:數(shù)組元素的排序算法,if判斷語(yǔ)句和邏輯表達(dá)式,以及求余算術(shù)運(yùn)算。【解題思路】此題屬于4位數(shù)排序問題。本題需主要解決3個(gè)問題:?jiǎn)栴}1如何取4位數(shù)的后3位進(jìn)行比較;問題2如何按照題目要求的條件(按照每個(gè)數(shù)的后3位的大小進(jìn)行降序排列,如果后3位相等,則按照原始4位數(shù)的大小進(jìn)行升序排列)排序;問題3如何將排完序的前10個(gè)數(shù)存到數(shù)組bb中去。本題的解題思路為:使用雙循環(huán)對(duì)數(shù)組按條件進(jìn)行排序,然后將排完序的前10個(gè)數(shù)存到數(shù)組bb中。對(duì)于問題1可以通過算術(shù)運(yùn)算的取余運(yùn)算實(shí)現(xiàn)(aai%1000)問題2通過包含if判斷語(yǔ)句的起泡排序法就可以實(shí)現(xiàn)。

2、【參考答案】voidjsSort()int i,j;/*定義循環(huán)控制變量*/int temp;/* 定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<199;i+)/* 用選擇法對(duì)數(shù)組進(jìn)行排序 */for(j=i+1;j<200;j+)if(aai%1000<aaj%1000)/*按照每個(gè)數(shù)的后3位大小進(jìn)行降序排序*/temp=aai;aai=aaj;aaj=temp;elseif(aai%1000=aaj%1000)/*如果后3位數(shù)相等*/if(aai>aaj)/*則要按原4位數(shù)的值進(jìn)行升序排序*/temp=aai;aai=aaj;aaj=temp;for(i=0;i&

3、lt;10;i+)/*將排序后的前1亦數(shù)存入數(shù)組b中*/bbi=aai;【易錯(cuò)提示】取4位數(shù)后三位的算法,if判斷語(yǔ)句中邏輯表達(dá)式的比較運(yùn)算符。2 .【考點(diǎn)分析】本題主要考查的知識(shí)點(diǎn)包括:C語(yǔ)言循環(huán)結(jié)構(gòu),if判斷語(yǔ)句和邏輯表達(dá)式,以及分解多位整數(shù)的算術(shù)運(yùn)算?!窘忸}思路】分析題干,本題除給出條件"SIX+SIX+SIX=NINE+NINE"之外,還可得出2個(gè)隱含的條件:條件1:SIX和NINE分別是3位和4位的正整數(shù);條件2:SIX的十位數(shù)字等于NINE的百位數(shù)字,NINE的千位數(shù)字和十位數(shù)字相等。本題解題思路:通過嵌套的循環(huán)結(jié)構(gòu)可以遍歷到所有的3位和4位數(shù),對(duì)于每一個(gè)3位數(shù)

4、及4位數(shù)的組合進(jìn)行題設(shè)條件(SIX+SIX+SIX=NINE+NINE)的判斷,滿足條件的對(duì)其分解得到各數(shù)位的數(shù)字,再進(jìn)一步判斷各位數(shù)字是否滿足本題隱含的條件(條件1及條件2),如果滿足則個(gè)數(shù)加1,并將該3位數(shù)及4位數(shù)添加到和值中。【參考答案】voidcountValue()inti,j;ints2;intn2,n3,n4;for(i=100;i<1000;i+)(for(j=1000;j<10000;j+)(if(i*3=j*2)(s2=i%100/10;n4=j/1000;n3=j%1000/100;n2=j%100/10;if(s2=n3&&n2=n4)(cn

5、t+;sum+=i+j;【易錯(cuò)提示】隱含條件未被分析出或分析錯(cuò)誤,整數(shù)數(shù)位分解的算術(shù)方法使用錯(cuò)誤。3 .【考點(diǎn)分析】本題考查的知識(shí)點(diǎn)包括:C語(yǔ)言中文件讀函數(shù),if條件判斷結(jié)構(gòu),對(duì)多個(gè)整數(shù)求平均值和方差的算法等?!窘忸}思路】此題屬于數(shù)學(xué)類問題。分析題干要求,得出解本題主要需解決3個(gè)問題:?jiǎn)栴}1如何實(shí)現(xiàn)從已打開的文件中依次讀取數(shù)據(jù)到數(shù)組的操作,問題2如何分離并統(tǒng)計(jì)出奇數(shù)和偶數(shù)的個(gè)數(shù)及和值,并計(jì)算平均值;問題3如何計(jì)算奇數(shù)的方差。本題的解題思路為:首先使用C語(yǔ)言的庫(kù)函數(shù)fscanf(照文件中的數(shù)依次讀入數(shù)組xx中,然后通過循環(huán)判斷得出需要的數(shù)據(jù)(奇數(shù)個(gè)數(shù)、偶數(shù)個(gè)數(shù)、奇數(shù)及偶數(shù)的和);最后根據(jù)題目中已

6、給出的公式和之前保存的數(shù)據(jù)計(jì)算出奇數(shù)的方差?!緟⒖即鸢浮縤ntReadDat(void)FILE*fp;inti,j;/*計(jì)數(shù)器變量*/if(fp=fopen("IN.DAT","r")=NULL)return1;for(i=0;i<100;i+)/*依次讀取整型數(shù)據(jù)放入數(shù)組xx中*/for(j=0;j<10;j+)fscanf(fp,"%d,",&xxi*10+j);fscanf(fp,"n");if(feof(fp)break;/*文件讀取結(jié)束,則退出*/fclose(fp);return0

7、;voidCompute(void)int i;/* 定義循環(huán)控制變量*/int ttMAX ;/* 定義數(shù)組保存奇數(shù)*/for(i=0;i<1000;i+)if(xxi%2!=0)odd+;/*計(jì)算出xx中奇數(shù)的個(gè)數(shù)odd*/ave1+=xxi;/*求奇數(shù)的和*/ttodd1=xxi;/*將奇數(shù)存入數(shù)組tt中*/elseeven+;/*計(jì)算出xx中偶數(shù)的個(gè)數(shù)even*/ave2+=xxi;/*求偶數(shù)的和*/int i,j;/* 定義循環(huán)控制變量*/ave2/=even;/*求偶數(shù)的平均值*/for(i=0;i<odd;i+)totfc+=(ttiave1)*(ttiave1)/o

8、dd;/*求所有奇數(shù)的方差*/【易錯(cuò)提示】文件操作函數(shù)fscanf(并口feof()的用法,if判斷語(yǔ)句中邏輯表達(dá)式,對(duì)方差計(jì)算公式運(yùn)用錯(cuò)誤。4. 【考點(diǎn)分析】本題考查對(duì)一定范圍內(nèi)整數(shù)的篩選??疾榈闹R(shí)點(diǎn)主要包括:多位整數(shù)的分解算法,完全平方數(shù)判斷方法,if判斷語(yǔ)句和邏輯表達(dá)式?!窘忸}思路】此題屬于數(shù)學(xué)類問題。分析題干,本題需注意2個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1判斷該數(shù)是否是完全平方數(shù);關(guān)鍵點(diǎn)2判斷該數(shù)是否有兩位數(shù)數(shù)字相同。本題的解題思路為:通過循環(huán)控制,依次判斷100至999數(shù)是否滿足關(guān)鍵點(diǎn)1(是否為完全平方數(shù))。如果是,則將該數(shù)分解出各位數(shù)數(shù)字,并判斷是否有兩位數(shù)數(shù)字相同,如果存在,則個(gè)數(shù)加1,并將該

9、數(shù)存入數(shù)組中?!緟⒖即鸢浮縤ntjsValue(intbb)int cnt=0;int a3,a2,a1;for(i=100;i<=999;i+)for(j=10;j<=sqrt(i);j+)if(i=j*j)a3=i/100;a2=i%100/10;a1=i%10;if(a3=a2 | a3=a1bbcnt=i;cnt+;/*定義計(jì)數(shù)器變量*/*定義變量存儲(chǔ)三位數(shù)每位的數(shù)字*/*在該范圍中找符合條件的數(shù)*/*如果該數(shù)是完全平方數(shù)*/*求該數(shù)的百位數(shù)字*/*求該數(shù)的十位數(shù)字*/*求該數(shù)的個(gè)位數(shù)字*/|a2=a1)/*有兩位數(shù)字相同*/*則把該數(shù)存入數(shù)組bb中*/*統(tǒng)計(jì)滿足條件的數(shù)的

10、個(gè)數(shù)*/returncnt;/*返回滿足該條件的整數(shù)的個(gè)數(shù)*/【易錯(cuò)提示】完全平方數(shù)的判斷方法錯(cuò)誤,分解整數(shù)各個(gè)數(shù)位的方法錯(cuò)誤,if判斷語(yǔ)句中表達(dá)式。5. 【考點(diǎn)分析】本題考查對(duì)一定范圍內(nèi)整數(shù)的篩選??疾榈闹R(shí)點(diǎn)主要包括:多位整數(shù)的分解算法,素?cái)?shù)的判斷算法,if判斷語(yǔ)句和邏輯表達(dá)式?!窘忸}思路】此題屬于數(shù)學(xué)類問題。分析題干要求,歸納出本題的2個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1判斷該數(shù)是否為素?cái)?shù);關(guān)鍵點(diǎn)2判斷是否滿足條件:個(gè)位數(shù)字和十位數(shù)字之和被10除所得余數(shù)等于百位數(shù)字。本題思路為:通過循環(huán)語(yǔ)句,依次求出所有3位數(shù)的各位數(shù)數(shù)字,并判斷是否滿足關(guān)鍵點(diǎn)2(個(gè)位數(shù)字和十位數(shù)字之和被10除所得余數(shù)等于百位數(shù)字),如果

11、滿足則判斷該數(shù)是否為素?cái)?shù),如果是則個(gè)數(shù)加1,并將該數(shù)加到和值中。判斷的方法為:依次取從2到該數(shù)1/2的數(shù)去除這個(gè)數(shù),如果有一個(gè)可被整除,則不是素?cái)?shù),如果循環(huán)后的數(shù)大于該數(shù)的一半就可以判定該數(shù)是一個(gè)素?cái)?shù)?!緟⒖即鸢浮縱oidcountValue()int i,j;/* 定義循環(huán)控制變量*/inthalf;inta3,a2,a1;for(i=101;i<1000;i+)a3=i/100;a2=i%100/10;a1=i%10;if(a3=(a2+a1)%10)數(shù)字*/half=i/2;for(j=2;j<=half;j+)if(i%j=0)break;if(j>half)/*定義

12、變量存儲(chǔ)3位數(shù)每位的數(shù)字*/*在該范圍內(nèi)尋找符合條件的數(shù)*/*求百位數(shù)字*/*求十位數(shù)字*/*求個(gè)位數(shù)字*/*如果個(gè)位數(shù)字與十位數(shù)字之和被/*進(jìn)一步判斷該數(shù)是否為素?cái)?shù)*/*如果不是素?cái)?shù),則跳出循環(huán),接著判斷下一個(gè)數(shù)*/*如果是素?cái)?shù)*/cnt+;/*計(jì)算這些素?cái)?shù)的個(gè)數(shù)cnt*/sum+=i;/*計(jì)算這些素?cái)?shù)值的和sum*/【易錯(cuò)提示】素?cái)?shù)的判斷算法使用錯(cuò)誤,分解整數(shù)各個(gè)數(shù)位的方法錯(cuò)誤,if判斷語(yǔ)句中邏輯表達(dá)式錯(cuò)誤。6. 【考點(diǎn)分析】本題考查結(jié)構(gòu)體數(shù)組的排序??疾榈闹R(shí)點(diǎn)主要包括:結(jié)構(gòu)體成員運(yùn)算,字符串比較符,數(shù)組排序?!窘忸}思路】此題屬于銷售記錄排序類題型。此類題型主要考查對(duì)結(jié)構(gòu)體數(shù)組的排序。解

13、題時(shí),應(yīng)注意3個(gè)關(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個(gè)記錄和第2個(gè)記錄進(jìn)行比較,如果不符合要求,就進(jìn)行交換,第2個(gè)記錄和第3個(gè)記錄比較,直到倒數(shù)第2個(gè)記錄和最后1個(gè)記錄比較完成;第2趟用第2個(gè)記錄和第3個(gè)記錄比較,然后第3個(gè)和第4個(gè)比較,依此類推。本題在雙循環(huán)中進(jìn)行每次記錄比較時(shí),首先用字符串比較函數(shù)strcmp比較兩個(gè)產(chǎn)品的名稱,如果返回的值大

14、于0,則這兩個(gè)產(chǎn)品進(jìn)行數(shù)據(jù)交換;如果返回值等于0,再比較兩個(gè)產(chǎn)品的金額,如果前一個(gè)產(chǎn)品的金額大于后一個(gè)產(chǎn)品的金額,則這兩個(gè)產(chǎn)品進(jìn)行數(shù)據(jù)交換。voidSortDat()int i,j;PRO temp;/*定義循環(huán)控制變量*/*定義數(shù)據(jù)交換時(shí)的暫存變量(這里是PRO類型的結(jié)構(gòu)體變量)*/for(i=0;i<99;i+)/* 利用選擇法進(jìn)行排序 */for(j=i+1;j<100;j+)if(strcmp(selli.mc,sellj.mc)>0)/*按產(chǎn)品名稱從小到大進(jìn)行排列*/temp=selli;selli=sellj;sellj=temp;elseif(strcmp(se

15、lli.mc,sellj.mc)=0)/*若產(chǎn)品名稱相同*/if(selli.je>sellj.je)/*則按金額從小到大進(jìn)行排列*/temp=selli;selli=sellj;sellj=temp;模板一銷售記錄排序【模板速記】記憶口訣:一定義二循環(huán)三比較。定義指定義變量,循環(huán)指循環(huán)語(yǔ)句,比較是比較記錄成員大小及交換,詳見模板一。做題時(shí),需靈活應(yīng)用模板,切勿死記硬背?!疽族e(cuò)提示】結(jié)構(gòu)型數(shù)據(jù)對(duì)成員的訪問用"."成員運(yùn)算符;兩個(gè)字符串的比較用字符串比較函數(shù)strcmp。7. 【考點(diǎn)分析】本題考查對(duì)多個(gè)整數(shù)的篩選以及排序。考查的知識(shí)點(diǎn)主要包括:多位整數(shù)的分解算法,邏輯表

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

17、千位數(shù),將該數(shù)取余再除100取整得出百位數(shù),將該數(shù)取余再除10取整得出十位數(shù),最后將該數(shù)取余得出個(gè)位數(shù)。【參考答案】voidjsValue()inti,j;/*定義循環(huán)控制變量*/inta1,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/int temp;/* 定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<300;i+)/* 逐個(gè)取每一個(gè)4位數(shù)*/a4=ai/1000;/*求4位數(shù)的千位數(shù)字*/a3=ai%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=ai%100/10;/*求4位數(shù)的十位數(shù)字*/a1=ai%10;/*求4位數(shù)的個(gè)位數(shù)字*/if(a4+a1=a3+a2)/*

18、如果千位數(shù)加個(gè)位數(shù)等于百位數(shù)加十位數(shù)*/bcnt=ai;/*將滿足條件的數(shù)存入數(shù)組b中*/cnt+;/*統(tǒng)計(jì)滿足條件的數(shù)的個(gè)數(shù)cnt*/for(i=0;i<cnt-1;i+)/*用選擇法對(duì)數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序*/for(j=i+1;j<cnt;j+)if(bi>bj)temp=bi;bi=bj;bj=temp;【模板速記】記憶口訣:一定義二篩選三排序。定義指定義相關(guān)變量,篩選是篩選出滿足條件的數(shù),排序則是按照要求對(duì)數(shù)組排序。詳見模板二。做題時(shí),需靈活應(yīng)用本模板,切勿死記硬背?!疽族e(cuò)提示】分解4位數(shù)時(shí)算術(shù)運(yùn)算符的使用,4位數(shù)條件判斷時(shí)if語(yǔ)句中的條件表達(dá)式,起

19、泡法排序時(shí)的條件。模板二4位數(shù)篩選(1)-根據(jù)各位數(shù)數(shù)字排序8. 【考點(diǎn)分析】本題考查對(duì)多個(gè)整數(shù)的篩選以及排序??疾榈闹R(shí)點(diǎn)主要包括:多位整數(shù)的分解算法,邏輯表達(dá)式,數(shù)組排序算法?!窘忸}思路】此題屬于4位數(shù)的篩選類題,并且需將各位數(shù)組成新的2位數(shù),再篩選排序。解題時(shí),需主要解決4個(gè)問題:?jiǎn)栴}1如何取得4位數(shù)的各個(gè)數(shù)位數(shù)字;問題2如何按照要求組成新的2位數(shù)字ab(本題為千位數(shù)字與十位數(shù)字),以及cd(本題為個(gè)位數(shù)字與百位數(shù)字);問題3如何通過判斷條件(abcd>=0,abcd<=10,a麻口cd都為奇數(shù),a麻口cd都不為0)篩選出滿足條件的數(shù),并統(tǒng)計(jì)出滿足條件的數(shù)的個(gè)數(shù);問題4如何對(duì)

20、數(shù)組中的數(shù)進(jìn)行從小到大的排序。解此類題的一般思路為:先求出每個(gè)數(shù)的各位數(shù)字,再根據(jù)各位數(shù)數(shù)字組成2位數(shù)的條件篩選出滿足要求的數(shù)存入新的數(shù)組中,最后對(duì)新數(shù)組進(jìn)行排序。本類題和前一類題的不同之處在于篩選的判斷條件不同。問題2由加法和乘法得出的各位數(shù)字組成新的2位數(shù)(本題為:ab=10*a4+a2,cd=10*a1+a3);問題3的條件可以由邏輯表達(dá)式實(shí)現(xiàn)(本題為:(abcd)>=0&&(abcd)<=10&&ab%2=1&&cd%2=1&&a4!=0&&a1!=0)?!緟⒖即鸢浮縱oidjsVal()int

21、i,j;/*定義循環(huán)控制變量*/inta1,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/inttemp;/*定義數(shù)據(jù)交換時(shí)的暫存變量*/intab,cd;/*存儲(chǔ)重新組合成的十位數(shù)*/for(i=0;i<200;i+)/* 逐個(gè)取每一個(gè)4位數(shù)*/a4=ai/1000;/*求4位數(shù)的千位數(shù)字*/a3=ai%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=ai%100/10;/*求4位數(shù)的十位數(shù)字*/a1=ai%10;/*求4位數(shù)的個(gè)位數(shù)字*/ab=10*a4+a2;/*把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)ab*/cd=10*a1+a3;/*把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新

22、的十位數(shù)cd*/if(ab-cd)>=0&&(ab-cd)<=10&&ab%2=1&&cd%2=1&&a4!=0&&a1!=0)/*如果ab-cd>=0且ab-cd<=10且兩個(gè)數(shù)均是奇數(shù)同時(shí)兩個(gè)新十位數(shù)的十位上的數(shù)字均不為零*/bcnt=ai;/*則把滿足條件的數(shù)存入數(shù)組b中*/cnt+;/*統(tǒng)計(jì)滿足條件的數(shù)的個(gè)數(shù)*/for(i=0;i<cnt-1;i+)/*將數(shù)組b中的數(shù)按從大到小的順序排列*/for(j=i+1;j<cnt;j+)if(bi<bj)temp=bi;bi

23、=bj;bj=temp;【模板速記】記憶口訣:一定義二篩選三排序。定義指定義相關(guān)變量,篩選是篩選出滿足條件的數(shù),排序則是按照要求對(duì)數(shù)組排序,詳見模板三。做題時(shí),需靈活應(yīng)用本模板,切勿死記硬背。模板三4位數(shù)篩選(2)-組成2位數(shù)再篩選排序【易錯(cuò)提示】分解4位數(shù)時(shí)算術(shù)運(yùn)算符的使用,if判斷語(yǔ)句中邏輯表達(dá)式,起泡法排序時(shí)的條件。9. 【考點(diǎn)分析】本題考查對(duì)多個(gè)整數(shù)的篩選以及求平均值??疾榈闹R(shí)點(diǎn)主要包括多位整數(shù)的分解算法,邏輯表達(dá)式,平均值的計(jì)算方法?!窘忸}思路】此題屬于4位數(shù)的篩選題型,并且涉及統(tǒng)計(jì)及平均值問題。解題時(shí),需主要解決3個(gè)問題:問題1如何取得4位數(shù)的各個(gè)數(shù)位數(shù)字;問題2如何通過判斷條件

24、(本題為千位數(shù)上的數(shù)加百位數(shù)上的數(shù)等于十位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù))對(duì)目標(biāo)進(jìn)行篩選,再分別統(tǒng)計(jì)出滿足和不滿足條件的數(shù)的和以及數(shù)目;問題3分別求出兩類數(shù)的平均值。本題與上題解題思想相同,不同之處在于問題2的判斷條件改為:千位數(shù)上的數(shù)加百位數(shù)上的數(shù)等于十位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù)(a4+a3=a2+a1)。inti,n=0;/*定義循環(huán)變量和計(jì)數(shù)器變量*/inta1,a2,a3,a4;/*定義變量保存4位數(shù)的每位數(shù)字*/for(i=0;i<300;i+)/*逐個(gè)取每一個(gè)4位數(shù)*/a4=ai/1000;/*求4位數(shù)的千位數(shù)字*/a3=ai%1000/100;/*求4位數(shù)的百位數(shù)字*/a2=ai%1

25、00/10;/*求4位數(shù)的十位數(shù)字*/a1=ai%10;/*求4位數(shù)的個(gè)位數(shù)字*/if(a4+a3=a2+a1)/*如果千位數(shù)加百位數(shù)等于十位數(shù)加個(gè)位數(shù)*/cnt+;/*統(tǒng)計(jì)滿足條件的數(shù)的個(gè)數(shù)*/pjz1+=ai;/*將滿足條件的數(shù)求和*/elsen+;/*否則統(tǒng)計(jì)不滿足條件的數(shù)的個(gè)數(shù)*/pjz2+=ai;/*將不滿足條件的數(shù)求和*/pjz1/=cnt;/*求滿足條件的數(shù)的平均值*/pjz2/=n;/*求不滿足條件的數(shù)的平均值*/【模板速記】記憶口訣:一定義二統(tǒng)計(jì)三求值。定義指定義相關(guān)變量,統(tǒng)計(jì)是統(tǒng)計(jì)滿足條件的數(shù)的個(gè)數(shù)及求出和值,求值是分別求出滿足和不滿足條件的數(shù)的平均值,詳見模板四。做題時(shí),

26、需靈活應(yīng)用本模板,切勿死記硬背。模板四4位數(shù)篩選(3)-統(tǒng)計(jì)及求平均值【易錯(cuò)提示】分解4位數(shù)時(shí)算術(shù)運(yùn)算符的使用;if判斷語(yǔ)句中邏輯表達(dá)式。10.【考點(diǎn)分析】本題考查對(duì)整數(shù)的篩選以及數(shù)組排序??疾榈闹R(shí)點(diǎn)主要包括:C語(yǔ)言循環(huán)結(jié)構(gòu),邏輯表達(dá)式,數(shù)組排序?!窘忸}思路】此題屬于4位數(shù)的篩選題型。分析題干要求,本題要求實(shí)現(xiàn)jsVal()函數(shù)的功能,歸納可以得出2個(gè)問題:問題1如何通過判斷條件(該4位數(shù)連續(xù)小于該4位數(shù)以后的5個(gè)數(shù)且該數(shù)是偶數(shù))篩選出滿足條件的數(shù),同時(shí)統(tǒng)計(jì)其個(gè)數(shù);問題2如何將這些數(shù)按照從小到大的順序排列。通過問題分析,得出解此題的思路為:先根據(jù)題目中的條件篩選出滿足條件的數(shù)并存入新的數(shù)組中

27、,再對(duì)新數(shù)組進(jìn)行排序。對(duì)于問題1通過if條件判斷語(yǔ)句和邏輯表達(dá)式可以實(shí)現(xiàn);問題2排序可以通過循環(huán)嵌套的起泡法實(shí)現(xiàn)。【參考答案】voidjsVal()inti,j;/*定義循環(huán)控制變量*/inttemp;/*定義數(shù)據(jù)交換是的暫存變量*/for(i=0;i<MAX-5;i+)/*逐個(gè)取每個(gè)4位數(shù)*/if(ai<ai+1&&ai<ai+2&&ai<ai+3&&ai<ai+4&&ai<ai+5&&ai%2=0)/*如果當(dāng)前數(shù)是偶數(shù)且小于后面連續(xù)5個(gè)數(shù)*/bcnt=ai;/*將滿足條件的數(shù)

28、存入數(shù)組b中*/cnt+;/*并統(tǒng)計(jì)滿足條件的數(shù)的個(gè)數(shù)*/for(i=0;i<cnt-1;i+)/*利用選擇法對(duì)b數(shù)組中的元素進(jìn)行從小到大的排序*/for(j=i+1;j<cnt;j+)if(bi>bj)temp=bi;bi=bj;bj=temp;模板五4位數(shù)的篩選(4)-4位數(shù)之間的比較【模板速記】記憶口訣:一定義二篩選三排序。定義指定義相關(guān)變量,篩選指選出滿足條件的數(shù)并存入數(shù)組,排序指按照要求排序,詳見模板五。做題時(shí),需靈活應(yīng)用本模板,切勿死記硬背?!疽族e(cuò)提示】循環(huán)嵌套的循環(huán)控制條件,if判斷語(yǔ)句中表達(dá)式,數(shù)組排列的順序。11. 【考點(diǎn)分析】本題考查對(duì)字符數(shù)組中的字符進(jìn)行

29、計(jì)算以及替換??疾榈闹R(shí)點(diǎn)主要包括:字符串?dāng)?shù)組的訪問,字符ASCII碼的位運(yùn)算,if判斷結(jié)構(gòu)以及邏輯表達(dá)式?!窘忸}思路】首先通讀題目,得知此題屬于字符計(jì)算問題;其次分析題干要求,本題要求實(shí)現(xiàn)StrCharJL(兩數(shù)的功能,分析后可以歸納出3個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1如何對(duì)字符數(shù)組的元素逐一訪問;關(guān)鍵點(diǎn)2如何對(duì)字符的ASCII碼做左移的位運(yùn)算;關(guān)鍵點(diǎn)3如何根據(jù)條件(移位后的ASCII值小于等于32或大于100附計(jì)算結(jié)果進(jìn)行判斷,并分別對(duì)滿足與不滿足條件的情況進(jìn)行處理。接著分析每一步的解決方法,關(guān)鍵點(diǎn)1通過字符串處理函數(shù)strlen®l取字符串的長(zhǎng)度,再通過獲得的長(zhǎng)度使用下標(biāo)法對(duì)字符數(shù)組的元素逐

30、一訪問;關(guān)鍵點(diǎn)2可以直接又t字符的ASCII碼進(jìn)行位運(yùn)算次鍵點(diǎn)3通過if判斷結(jié)構(gòu)和邏輯表達(dá)式即可實(shí)現(xiàn)功能?!緟⒖即鸢浮縱oidStrCharJL(void)inti,j;/*定義循環(huán)控制變量*/intstr;charch;for(i=0;i<maxline;i+)/*以行為單位獲取字符*/str=strlen(xxi);/*求得當(dāng)前行的字符串長(zhǎng)度*/for(j=0;j<str;j+)ch=xxij<<4;if(ch<=32|ch>100)continue;/*如果左移4位后字符的ASCII值小于等于3減大于100,則原字符保持不變*/elsexxij+=4;

31、/*否則就把左移后的字符ASCII值加上原字符的ASCII*/【易錯(cuò)提示】根據(jù)字符ASCII碼的位計(jì)算;if判斷語(yǔ)句中的邏輯表達(dá)式12. 【考點(diǎn)分析】本題考查對(duì)字符數(shù)組中的字符計(jì)算??疾榈闹R(shí)點(diǎn)主要包括:字符用數(shù)組的訪問,字符ASCII碼的算術(shù)運(yùn)算,if判斷結(jié)構(gòu)以及邏輯表達(dá)式?!窘忸}思路】首先通讀題目,得知此題屬于字符計(jì)算問題;其次分析題干要求,本題要求實(shí)現(xiàn)ChA(void)函數(shù)的功能,分析后可以歸納出3個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1如何對(duì)字符數(shù)組的元素逐一訪問;關(guān)鍵點(diǎn)2按照要求取每個(gè)位置的字符和其下一個(gè)字符相加,并將結(jié)果作為該位置上的新字符,需要注意的是,末尾位置的新字符是該位原字符和第1個(gè)原字符相加的

32、結(jié)果;關(guān)鍵點(diǎn)3最后要將所得的結(jié)果逆序保存。接著分析每一步的解決方法,對(duì)于關(guān)鍵點(diǎn)1通過字符串處理函數(shù)strlent取字符串的長(zhǎng)度,再通過獲得的長(zhǎng)度用下標(biāo)法對(duì)字符數(shù)組的字符元素逐一訪問;關(guān)鍵點(diǎn)2在遍歷訪問字符時(shí),可以直接取下一個(gè)位置的字符進(jìn)行運(yùn)算,在進(jìn)行計(jì)算之前需要首先保存第1個(gè)位置的字符,以作為計(jì)算最后位置新字符的條件;關(guān)鍵點(diǎn)3可以通過for循環(huán)對(duì)數(shù)組從首尾同時(shí)遍歷的算法實(shí)現(xiàn)。【參考答案】voidChA(void)inti,j,k;/*定義循環(huán)控制變量*/intstr;/*存儲(chǔ)字符串的長(zhǎng)度*/char ch,temp;/* 定義字符暫存變量*/for(i=0;i<maxline;i+)/*

33、 以行為單位獲取字符*/str=strlen(xxi);/* 求得當(dāng)前行的字符串長(zhǎng)度*/ch=xxi0;/* 將第一個(gè)字符暫存入ch*/for(j=0;j<str-1;j+)/*將該字符的ASCII值賦值為下一個(gè)字符的ASCII值加1,得到新的字符*/xxij+=xxij+1;xxistr-1+=ch;/*將最后一個(gè)字符的ASCII值與第一個(gè)字符的ASCII值相加,得到最后一個(gè)新的字符*/forO=0,k=str-1;j<str/2;j+,k-)/*將字符串逆轉(zhuǎn)后仍按行重新存入字符串?dāng)?shù)組xx中*/temp=xxij;xxij=xxik;xxik=temp;【易錯(cuò)提示】最后一個(gè)字符的

34、計(jì)算,逆序存儲(chǔ)算法的選擇。13. 【考點(diǎn)分析】本題考查對(duì)字符串的查找和統(tǒng)計(jì)。考查的知識(shí)點(diǎn)包括:指針對(duì)字符用的訪問方法,C語(yǔ)言循環(huán)嵌套結(jié)構(gòu)?!窘忸}思路】首先通讀題目,得知此題屬于字符串處理問題;其次分析題干要求,本題要求實(shí)現(xiàn)findStr(char*str,char*sunstr)函數(shù),該函數(shù)需要實(shí)現(xiàn)在一個(gè)字符串中查找另一個(gè)字符串,并統(tǒng)計(jì)出現(xiàn)次數(shù)的功能,分析后可以歸納出實(shí)現(xiàn)功能的3個(gè)關(guān)鍵點(diǎn);關(guān)鍵點(diǎn)1如何實(shí)現(xiàn)對(duì)字符串中字符的遍歷;關(guān)鍵點(diǎn)2如何實(shí)現(xiàn)對(duì)子字符串的查找功能;關(guān)鍵點(diǎn)3如何統(tǒng)計(jì)子串其出現(xiàn)的次數(shù)。接著分析每一步的解決方法。對(duì)于關(guān)鍵點(diǎn)1使用循環(huán)和指針的方式可以實(shí)現(xiàn)對(duì)字符串的訪問;關(guān)鍵點(diǎn)2通過嵌套

35、的循環(huán)可以實(shí)現(xiàn)查找功能,具體方法是,外層循環(huán)控制對(duì)主串的遍歷,內(nèi)層是對(duì)子串的遍歷,當(dāng)主串中當(dāng)前字符和子串第1個(gè)字符相同時(shí),繼續(xù)判斷其后的字符是否和子串的下一個(gè)字符相同,依次類推,則每次內(nèi)層循環(huán)遍歷過子串就表示找到一次;關(guān)鍵點(diǎn)3每找到一次子串的同時(shí),累加一個(gè)記數(shù)器,作為出現(xiàn)次數(shù)的統(tǒng)計(jì)結(jié)果?!緟⒖即鸢浮縤ntfindStr(char*str,char*substr)intn=0;/*定義計(jì)數(shù)器變量,統(tǒng)計(jì)出現(xiàn)次數(shù)*/char*p,*r;/*定義指針變量來分別指向兩個(gè)字符串*/while(*str)/*如果字符串沒有結(jié)束,則一直循環(huán)下去*/p=str;/*指針p指向字符串首地址*/r=substr;/

36、*指針r指向子字符串首地址*/while(*r)/*若子字符串沒有結(jié)束,則循環(huán)繼續(xù)*/則繼續(xù)比較下if(*r=*p)/*如果子字符串的第一個(gè)字符等于字符串中的該字符,一個(gè)字符*/r+;p+;elsebreak;/* 否則退出循環(huán)*/if(*r='0')/* 如果子字符串在字符串中出現(xiàn)了一次*/n+;/*則n加1,進(jìn)行統(tǒng)計(jì)*/str+;/*指向字符串中的下一個(gè)字符*/returnn;/*返回統(tǒng)計(jì)結(jié)果n*/【易錯(cuò)提示】遍歷字符串時(shí)指針的使用;查找子串的算法使用。14. 【考點(diǎn)分析】本題考查對(duì)字符數(shù)組中字符排序。考查的知識(shí)點(diǎn)包括:字符串?dāng)?shù)組的訪問,數(shù)組排序算法?!窘忸}思路】首先通讀題

37、目,得知此題屬于字符排序問題;其次分析題干要求,本題要求實(shí)現(xiàn)SortCharD(而數(shù),該函數(shù)需要實(shí)現(xiàn)將字符數(shù)組中的元素排序的算法。分析后可以歸納出實(shí)現(xiàn)該功能的關(guān)鍵點(diǎn)是:如何按照字符從大到小的順序?qū)?shù)組中的字符進(jìn)行排序。這可以通過循環(huán)嵌套的起泡法來實(shí)現(xiàn)。【參考答案】voidSortCharD()int i,j,k;/*定義循環(huán)控制變量*/intstr;/*存儲(chǔ)字符串的長(zhǎng)度*/chartemp;/*定義數(shù)據(jù)交換時(shí)的暫存變量*/for(i=0;i<maxline;i+)/*以行為單位獲取字符*/str=strlen(xxi);/*求得當(dāng)前行的字符串長(zhǎng)度*/for(j=0;j<str-1;

38、j+)/*對(duì)字符按從大到小的順序進(jìn)行排序*/for(k=j+1;k<str;k+)if(xxij<xxik)temp=xxij;xxij=xxik;xxik=temp;【易錯(cuò)提示】排序時(shí)if結(jié)構(gòu)中的邏輯表達(dá)式。15.【考點(diǎn)分析】本題考查選票的統(tǒng)計(jì)??疾榈闹R(shí)點(diǎn)主要包括:C語(yǔ)言循環(huán)結(jié)構(gòu),if條件判斷結(jié)構(gòu)和邏輯表達(dá)式,二維數(shù)組操作?!窘忸}思路】首先通讀題目,得知此題屬于選票的統(tǒng)計(jì)題型;其次分析題干要求,本題要求實(shí)現(xiàn)CountRs(void而數(shù)的功能,該函數(shù)需要統(tǒng)計(jì)出10除選票數(shù)據(jù),并將統(tǒng)計(jì)結(jié)果保存入數(shù)組yy中;接著歸納出本題有2個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1如何統(tǒng)計(jì)每張選票的選擇情況;關(guān)鍵點(diǎn)2根據(jù)

39、題目給出的條件"一張選票選中人數(shù)小于等于5個(gè)人時(shí)則被認(rèn)為無效"判斷選票是否有效。首先,對(duì)數(shù)組y”£素初始化為0;接著通過一個(gè)循環(huán)嵌套結(jié)構(gòu)依次判斷每張選票數(shù)據(jù)的十個(gè)選舉標(biāo)志,同時(shí)每張選票的投票數(shù)量,對(duì)于不滿足條件的選票數(shù)據(jù)直接跳過,并統(tǒng)計(jì)有效選票的投票情況到數(shù)組yy中。【參考答案】voidCountRs(void)inti,j;/*定義循環(huán)控制變量*/intcnt;/*用來存儲(chǔ)每張選票中選中人數(shù),以判斷選票是否有效*/for(i=0;i<10;i+)/* 初始化數(shù)組yy*/yyi=0;for(i=0;i<100;i+)/* 依次取每張選票進(jìn)行統(tǒng)計(jì)*/cn

40、t=0;/*初始化計(jì)數(shù)器變量*/for(j=0;j<10;j+)/*統(tǒng)計(jì)每張選票的選中人數(shù)cnt*/if(xxij='1')cnt+;if(cnt>5)/*當(dāng)cnt值大于5時(shí)為有效選票*/for(j=0;j<10;j+)/*統(tǒng)計(jì)有效選票*/if(xxij='1')yyj+;模板七選票問題【模板速記】記憶口訣:一定義二初始化三統(tǒng)計(jì)。定義指定義相關(guān)變量,初始化指初始化數(shù)組,統(tǒng)計(jì)是統(tǒng)計(jì)每個(gè)人選票的數(shù)量,詳見模板七。做題時(shí),需靈活應(yīng)用本模板,切勿死記硬背?!疽族e(cuò)提示】數(shù)組yy*初始化,判斷選票是否有效的邏輯表達(dá)式錯(cuò)誤16. 【考點(diǎn)分析】本題考查的知識(shí)點(diǎn)

41、主要包括:結(jié)構(gòu)體成員的訪問,元素的排序,if判斷結(jié)構(gòu)和邏輯表達(dá)式?!窘忸}思路】此題屬于結(jié)構(gòu)體的篩選排序問題。分析題干要求,可以歸納出3個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1通過條件"每組數(shù)據(jù)中第2個(gè)數(shù)大于第1個(gè)數(shù)和第3個(gè)數(shù)之和"對(duì)每組數(shù)據(jù)進(jìn)行判斷;關(guān)鍵點(diǎn)2保存滿足條件的數(shù)到新數(shù)組中并統(tǒng)計(jì)其數(shù)量;關(guān)鍵點(diǎn)3對(duì)新數(shù)組中的數(shù)再按照第2個(gè)數(shù)和第3個(gè)數(shù)之和的大小進(jìn)行降序排列;關(guān)鍵點(diǎn)4函數(shù)的返回值為之前統(tǒng)計(jì)的滿足的數(shù)據(jù)的組數(shù)。接著分析具體的解決方法,首先通過if判斷結(jié)構(gòu)和邏輯表達(dá)式實(shí)現(xiàn)對(duì)所有結(jié)構(gòu)的篩選,保存并統(tǒng)計(jì)個(gè)數(shù),然后通過起泡法完成排序,最后函數(shù)返回組數(shù)。【參考答案】intjsSort()int i,j

42、;/*定義循環(huán)控制變量*/int cnt=0;/* 定義計(jì)數(shù)器變量*/Data temp;*/*定義數(shù)據(jù)交換時(shí)的暫存變量,這里是一個(gè)Dat聯(lián)型for(i=0;i<200;i+)if(aai.x2>aai.x1+aai.x3)/*如果第二個(gè)數(shù)大于第一個(gè)數(shù)加第三個(gè)數(shù)之和*/bbcnt=aai;/*則把該組數(shù)據(jù)存入結(jié)構(gòu)數(shù)組bb中*/cnt+;/*同時(shí)統(tǒng)計(jì)滿足條件的數(shù)據(jù)的個(gè)數(shù)*/for(i=0;i<cnt-1;i+)/*對(duì)結(jié)構(gòu)數(shù)組bb中的數(shù)據(jù)按照每組數(shù)據(jù)的第二個(gè)數(shù)加第三個(gè)數(shù)之和的大小進(jìn)行降序排列*/for(j=i+1;j<cnt;j+)if(bbi.x2+bbi.x3<b

43、bj.x2+bbj.x3)temp=bbi;bbi=bbj;bbj=temp;returncnt;/*返回滿足條件數(shù)據(jù)的組數(shù)*/【易錯(cuò)提示】第i個(gè)人是否報(bào)數(shù)到m;用表達(dá)式(S1+m1)%i判斷。17. 【考點(diǎn)分析】本題考查對(duì)多個(gè)整數(shù)的右移、統(tǒng)計(jì)以及求平均值??疾榈闹R(shí)點(diǎn)主要包括:位移算法,邏輯表達(dá)式,求平均值的算法?!窘忸}思路】本題是數(shù)學(xué)類題。本題的解題思路是:首先利用一個(gè)for循環(huán)來依次從數(shù)組中取得各數(shù),由于題目要求數(shù)組中正整數(shù)的個(gè)數(shù),如果取得的數(shù)大于零,這時(shí)就給變量totNum(正整數(shù)的個(gè)數(shù))累加1,然后把該正整數(shù)右移一位后的結(jié)果臨時(shí)保存在變量data中,再判斷產(chǎn)生的新數(shù)是否是偶數(shù)。如果是

44、,就給變量totCnt(符合判斷條件的正整數(shù)個(gè)數(shù))累加1,并把原數(shù)的值累加到變量totPjz中,當(dāng)所有符合判斷條件的數(shù)都被找出后,再對(duì)totPjz求平均值?!緟⒖即鸢浮縱oidCalValue(void)inti;/*定義循環(huán)控制變量*/intdata;/*用于保存處理后產(chǎn)生的新數(shù)*/for(i=0;i<200;i+)/*逐個(gè)取數(shù)組xx中的數(shù)進(jìn)行統(tǒng)計(jì)*/if(xxi>0)/* 判斷是否正整數(shù)*/totNum+;/*統(tǒng)計(jì)正整數(shù)的個(gè)數(shù)*/data=xxi>>1;/*將數(shù)右移一位*/if(data%2=0)/*如果產(chǎn)生的新數(shù)是偶數(shù)*/totCnt+;/*統(tǒng)計(jì)這些數(shù)的個(gè)數(shù)*/t

45、otPjz+=xxi;/*并將滿足條件的原數(shù)求和*/totPjz/=totCnt;/*求滿足條件的這些數(shù)(右移前的值)的算術(shù)平均值*/【易錯(cuò)提示】位移運(yùn)算表達(dá)式的使用。18. 【考點(diǎn)分析】本題考查對(duì)多個(gè)整數(shù)的篩選、統(tǒng)計(jì)以及計(jì)算平均值,考查的知識(shí)點(diǎn)只要包括:多位整數(shù)的數(shù)位分解算法,邏輯表達(dá)式,計(jì)算平均值的算法。首先通讀題目,得知此題屬于4位數(shù)的篩選題型;其次分析題干要求,本題要求補(bǔ)充main中空白部分,進(jìn)一步分析,可以歸納出3個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1如何找出數(shù)組中最大數(shù)的值并統(tǒng)計(jì)其個(gè)數(shù);關(guān)鍵點(diǎn)2如何通過條件"可以被7或3整除"在數(shù)組中篩選出滿足條件的數(shù);關(guān)鍵點(diǎn)3如何計(jì)算平均值。接著

46、分析每一步的解決方法,對(duì)于關(guān)鍵點(diǎn)1通過循環(huán)使用起泡法找出其中最大的數(shù),同時(shí)統(tǒng)計(jì)其個(gè)數(shù);關(guān)鍵點(diǎn)2通過if判斷結(jié)構(gòu)和邏輯表達(dá)式可以實(shí)現(xiàn);關(guān)鍵點(diǎn)3通過之前找到滿足條件的數(shù)的和及其個(gè)數(shù)計(jì)算出平均值?!緟⒖即鸢浮縱oidmain()inti,k,cnt,xxN,max;floatpj;FILE*fw;longj=0;system("CLS");fw=fopen("out.dat","w");read_dat(xx);max=xx0;for(i=1,k=0;i<N;i+)if(xxi>max)max=xxi;/*求出數(shù)組xx中最大數(shù)m

47、ax*/if(xxi%3=0|xxi%7=0)j+=xxi;/*求出數(shù)組xx中值能被3整除或能被7整除的數(shù)的總和*/k+;for(i=0,cnt=0;i<N;i+)if(xxi=max)cnt+;/*求出數(shù)組xx中最大數(shù)max1勺個(gè)數(shù)*/pj=(float)(j*100/k)/100;/*求出數(shù)組xx中值能被姬除或能被7整除的數(shù)的平均值*/printf("nnmax=%d,cnt=%d,pj=%6.2fn",max,cnt,pj);fprintf(fw,"%dn%dn%6.2fn",max,cnt,pj);fclose(fw);【易錯(cuò)提示】對(duì)數(shù)進(jìn)行

48、篩選時(shí)的邏輯表達(dá)式。19. 【考點(diǎn)分析】本題考查對(duì)字符數(shù)組中字符計(jì)算和替換??疾榈闹R(shí)點(diǎn)主要包括:字符串?dāng)?shù)組的訪問,字符ASCII碼的算術(shù)運(yùn)算,if判斷結(jié)構(gòu)以及邏輯表達(dá)式?!窘忸}思路】此題屬于字符計(jì)算問題。分析題干要求,可以歸納出3個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1如何對(duì)字符數(shù)組的元素逐個(gè)訪問;關(guān)鍵點(diǎn)2如何根據(jù)給出的函數(shù)替代關(guān)系"f(p)=p*11mod256對(duì)字符進(jìn)行計(jì)算;關(guān)鍵點(diǎn)3根據(jù)條件(本題為“小于等于32或?qū)?yīng)的字符是大寫字母")對(duì)計(jì)算結(jié)果進(jìn)行判斷,并分別對(duì)滿足與不滿足條件的情況進(jìn)行處理。解此類題的一般思路為:首先通過字符串處理函數(shù)strlent取字符串的長(zhǎng)度,根據(jù)獲得的長(zhǎng)度使用下

49、標(biāo)法逐一對(duì)字符數(shù)組的元素進(jìn)行訪問;然后按照題目給出的函數(shù)關(guān)系式直接對(duì)字符進(jìn)行算術(shù)運(yùn)算;最后通過if判斷結(jié)構(gòu)和邏輯表達(dá)式判斷計(jì)算結(jié)果是否滿足條件,分別對(duì)兩種情況進(jìn)行處理?!緟⒖即鸢浮縱oidencryChar()intstr;/*存儲(chǔ)字符串的長(zhǎng)度*/charch;/*存儲(chǔ)當(dāng)前取得的字符*/for(i=0;i<maxline;i+)/*以行為單位獲取字符*/str=strlen(xxi);/*求得當(dāng)前行的字符串長(zhǎng)度*/for(j=0;j<str;j+)ch=xxij*11%256;/*依次取各行的所有字符*/if(ch<=32|(ch>='A'&&a

50、mp;ch<='Z')/*如果計(jì)算的值小于等于32或?qū)?yīng)的字符是大寫字母*/continue;/*則不作改變*/elsexxij=ch;/*否則用新字符取代原有字符*/【模板速記】記憶口訣:一定義二替換。定義指定義相關(guān)變量,替換指按題目要求及替代關(guān)系對(duì)字符替換。詳見模板六。做題時(shí),需靈活應(yīng)用本模板,切勿死記硬背。模板六字符操作類(1)-字符串替代【易錯(cuò)提示】根據(jù)函數(shù)替代關(guān)系對(duì)字符進(jìn)行運(yùn)算;if判斷結(jié)構(gòu)中的邏輯表達(dá)式。20. 【考點(diǎn)分析】本題考查對(duì)字符串中字符的替換??疾榈闹R(shí)點(diǎn)主要包括:字符串?dāng)?shù)組的訪問,字符之間的比較和替換,if判斷結(jié)構(gòu)以及邏輯表達(dá)式?!窘忸}思路】此題屬

51、于字符替換題型,分析題干要求,可以歸納出2個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1如何實(shí)現(xiàn)對(duì)字符數(shù)組的元素逐一訪問;關(guān)鍵點(diǎn)2如何根據(jù)條件"把所有的小寫字母改寫成該字母的下一個(gè)字母"對(duì)字符進(jìn)行替換。接著分析具體的解決方法,首先通過字符串處理函數(shù)strlen®!取字符串的長(zhǎng)度,根據(jù)獲得的長(zhǎng)度使用下標(biāo)法對(duì)字符數(shù)組的元素逐一訪問,判斷每個(gè)字符是否小寫字符,直接將字符替換為其下一個(gè)字符,其中對(duì)于小寫字母"z",要將其替換成小寫字母"a",這些可以通過if判斷結(jié)構(gòu)和邏輯表達(dá)式來完成?!緟⒖即鸢浮縱oidConvertCharA(void)int i,j;/*

52、 定義循環(huán)控制變量*/intstr;/*存儲(chǔ)字符串的長(zhǎng)度*/for(i=0;i<maxline;i+)/*以行為單位獲取字符*/str=strlen(xxi);/*求得當(dāng)前行的字符串的長(zhǎng)度*/for(j=0;j<str;j+)if(xxij>='a'&&xxij<='z')/*如果是小寫字母*/if(xxij='z')xxij尸a'/*如果是小寫字母z,則改寫成字母a*/elsexxij+=1;/*其他的小寫字母則改寫為該字母的下一個(gè)字母*/【易錯(cuò)提示】對(duì)字符數(shù)組進(jìn)行逐元素訪問;if判斷語(yǔ)句中邏輯表

53、達(dá)式。21.【考點(diǎn)分析】本題考查對(duì)整數(shù)的篩選及數(shù)組排序??疾榈闹R(shí)點(diǎn)主要包括:C語(yǔ)言循環(huán)結(jié)構(gòu),邏輯表達(dá)式等?!窘忸}思路】此題屬于2位數(shù)的篩選題。分析題干要求,本題要求實(shí)現(xiàn)jsVal()函數(shù)的功能,歸納可以得出2個(gè)問題:問題1如何根據(jù)判斷條件(數(shù)組琲口b中相同下標(biāo)位置的數(shù)必須符合一個(gè)是偶數(shù),另一個(gè)是奇數(shù))篩選出滿足條件的數(shù),同時(shí)統(tǒng)計(jì)其個(gè)數(shù),問題2如何將這些數(shù)按從小到大的書序排列。通過問題分析,得出解此題的思路為:先根據(jù)題目中的條件篩選出滿足條件的數(shù)并存入新的數(shù)組中,再對(duì)新數(shù)組進(jìn)行排序。對(duì)于問題1通過if條件判斷語(yǔ)句和邏輯表達(dá)式可以實(shí)現(xiàn)。問題2排序可以通過循環(huán)嵌套的起泡法實(shí)現(xiàn)。【參考答案】voidjsVal()inti,j;/*定義循環(huán)變量*/inttemp;/*用于存儲(chǔ)排序中的中間變量*/for(i=0;i<=MAX-1;i+)/*循環(huán)查找符合條件的元素*/if(ai%2=0)&&(bi%2!=0)|(ai%2!=0)&&(bi%2=0)/*判斷數(shù)組琲口b中相同下標(biāo)位置的數(shù)是否符合一個(gè)是偶數(shù),另一個(gè)是奇數(shù)*/ci=(ai<<8)+bi;/*ai按二進(jìn)制左移8位再加上b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論