2015程序設(shè)計(jì)答題分析12_第1頁(yè)
2015程序設(shè)計(jì)答題分析12_第2頁(yè)
2015程序設(shè)計(jì)答題分析12_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、2015 程序設(shè)計(jì)答題分析( 小學(xué))1. 超市為了促銷(xiāo),規(guī)定:購(gòu)物不足 60 元的按原價(jià)付款,超過(guò) 60 不足 200 的按九折付款, 超過(guò) 200 元的,超過(guò)部分按八折付款。 編程完成超市的自動(dòng)計(jì)費(fèi) 的工作,輸入購(gòu)物金額原價(jià),輸出打折后的金額。分析:這個(gè)題是一個(gè)分支結(jié)構(gòu)的多層嵌套。閱讀題目要求時(shí),對(duì)200 元以上的,超過(guò) 200 的部分是 8 折,剩下的 200 元按 9 折算。打折后可能會(huì)是小數(shù)點(diǎn), 要考慮數(shù)據(jù)類(lèi)型。Var n:real;BeginRead(n);If n>60 thenIf n<=200 thenN:=n*0.9Else n:=(n-200)*0.8+180;

2、Write(n)End.2. 輸入一個(gè)奇數(shù)n,請(qǐng)編程計(jì)算并輸出1+(1+3)+(1+3+5)+(1+3+5+n )的結(jié)果。分析:此題是簡(jiǎn)單的雙層循環(huán)。Var i,j,s,n:integer;BeginRead(n);For i:=1 to n doFor j:=1 to i doS:=s+(2*j-1);Weite(s);End.3. 李先生和他的孫子同出生于 20世紀(jì), 他的孫子與他的年齡之差為 60 歲, 李先生和他的孫子出生年份被 3,4,5,6除, 余數(shù)分別為 1,2,3,4,編程求出李先生和 他的孫子各出生在哪一年。分析:這個(gè)題用窮舉法就太累了。分析一下,一個(gè)數(shù)字被 5除余 3的話(huà),

3、這 個(gè)數(shù)的個(gè)位數(shù)只能是 3和 8,被 6除余 4的話(huà),個(gè)位數(shù)是 4、8、2、6、0,這兩 者同時(shí)滿(mǎn)足,這個(gè)年份的個(gè)位數(shù)只能是 8。只要從 1908、1918、1928、1938,這 四個(gè)數(shù)中找一個(gè)滿(mǎn)足條件同時(shí)加 60 后也滿(mǎn)足條件的就行了。4. 狼追兔子,兔子躲進(jìn)了 10 個(gè)環(huán)形分布的洞的某一個(gè)中。狼在第 1 個(gè)洞 中沒(méi)有找到兔子,就間隔 1 個(gè)洞,到第 3 個(gè)洞中去找,也沒(méi)找到兔子,就間隔 2 個(gè)洞,到第 6個(gè)洞中去找。以后狼每次多隔 1 個(gè)洞去找兔子, 。這樣狼找了 1000 次也找不到兔子。請(qǐng)問(wèn)兔子可能躲在哪個(gè)洞中?除操作的結(jié)束狀態(tài)(條件)是什么呢?而且,狼的搜索過(guò)程中,如果要間隔 11

4、 個(gè)洞時(shí),我們是否可以認(rèn)為就是間隔 1 個(gè)洞?實(shí)際上,第一個(gè)問(wèn)題應(yīng)該是當(dāng)狼回到第 1個(gè)洞,并且又上間隔 1 個(gè)洞去找 兔子時(shí),就應(yīng)該結(jié)束刪除操作,因?yàn)榇撕蟮乃阉魇侵貜?fù)以前的搜索了,此時(shí),那 些沒(méi)有被刪除過(guò)的洞就是答案。 這里,大家一定不能想當(dāng)然地認(rèn)為: 結(jié)束條件就 是只剩下一個(gè)洞的時(shí)候! 題目中并沒(méi)有說(shuō)明只有一個(gè)答案, 事實(shí)上是有四個(gè)洞的!第二個(gè)問(wèn)題也是可行的。 因?yàn)橹挥?10個(gè)洞,間隔 11個(gè)洞和間隔 1個(gè)洞的 作用是相同的。var d:array1.10 of integer;i, j,k,l:integer;beginfor i:=1 to 10 do di:=1;i:=1;j:=1;r

5、epeatdi:=0;j:=j+1;if j>10 then j:=j-10;i:=i+j;if i>10 then i:=i-10;until (i=1) and (j=1);for i:=1 to 10 do if di>0 then write(i);end.初中 1從鍵盤(pán)輸入一個(gè)小于 1000的正整數(shù) , 若此數(shù)的各位數(shù)字之和能被 7整除, 則 輸出這個(gè)數(shù)。分析:此題簡(jiǎn)單,但重點(diǎn)在“被”字上,對(duì)輸入的數(shù)分解出個(gè)、十、百位上的數(shù) 字,相加后得出的和被 7 整除。參考程序program p1;var n,m,k:integer;beginreadln(k);m:=0;wh

6、ile n<>0 dobeginm:=m+n mod 10;n:=n div 10;end;if m mod 7=0 then writeln(k);end.2. 鍵盤(pán)輸入N,求N !末尾有多少個(gè)連續(xù)的零。其中N!=1X 2X 3X N(1<=N<=1000)。算法一:從1乘到n,每乘一個(gè)數(shù)判斷一次,若后面有 0則去掉后面的0,并記 下0的個(gè)數(shù)。為了不超出數(shù)的表示范圍, 去掉與生成 0無(wú)關(guān)的數(shù),只保留有效位 數(shù),當(dāng)乘完 n 次后就得到 0 的個(gè)數(shù)。( pascal 程序如下) var i,t,n,sum:longint;begint:=0; sum:=1;readln(

7、n);for i:=1 to n dobeginsum:=sum*i;while sum mod 10=0 dobeginsum:=sum div 10;inc(t); 計(jì)數(shù)器增加 1end;sum:=sum mod 1000; 舍去與生成 0 無(wú)關(guān)的數(shù) end;writeln(t:6);end.算法二:此題中生成O的個(gè)數(shù)只與含5的個(gè)數(shù)有關(guān),n!的分解數(shù)中含5的 個(gè)數(shù)就等于末尾O的個(gè)數(shù),因此問(wèn)題轉(zhuǎn)化為直接求n!的分解數(shù)中含5的個(gè)數(shù)。 var t,n:integer;beginreadln(n);t:=0;repeatn:=n div 5 ;inc(t,n); 計(jì)數(shù)器增加 nuntil n<

8、;5;writeln(t:6);end.分析對(duì)比兩種算法就不難看出, 它們的時(shí)間復(fù)雜度分別為 O( N)、O(logN ), 算法二的執(zhí)行時(shí)間遠(yuǎn)遠(yuǎn)小于算法一的執(zhí)行時(shí)間。在信息學(xué)奧賽中, 其主要任務(wù)就是設(shè)計(jì)一個(gè)有效的算法, 去求解所給出的問(wèn) 題。如果僅僅學(xué)會(huì)一種程序設(shè)計(jì)語(yǔ)言, 而沒(méi)學(xué)過(guò)算法的選手在比賽中是不會(huì)取得 好的成績(jī)的,選手水平的高低在于能否設(shè)計(jì)出好的算法。3. 有 1 至 8 號(hào)共 8個(gè)球,其中某一個(gè)為次品,僅重量不同 (可輕可重 )。編 程,在以天平為工具,通過(guò)測(cè)重量用最少的次數(shù)挑出次品,并確定它是輕是重。 提示:可以用下面表示的比較方法來(lái)設(shè)計(jì)程序:b1+b2+b3? b4+b5+b6

9、 >=< b1+b4?b2+b5 b7?b8 bl+b4 ?b2+b5 >=< >< >=< b1?b2 b3?b1 b2?b1 b7?b1 b8?bl bl ?b2 b1?b3 b2?b1 >= => >= >= => >= >= >=b1b5b6b3b2b4b7b8b7b8b2b4b3b6blb5 重輕輕重重輕重輕輕重輕重輕重輕重 參考考生程序 program p3;var cpcode:-8.8; cpweight,zpweight,i:integer; wt:array1.8 of inte

10、ger; function finddiff(a,b,c:integer):integer; begin if a=b then if a=c then finddiff:=0 else if a>c then finddiff:=-3 else finddiff:=3 else if a>b thenif b=c then finddiff:=1 else finddiff:=-2 elseif b=c then finddiff:=-1 else finddiff:=2; end;begin write('cipin hao:'); readln(cpcode)

11、; write('cipin zhong:'); readln(cpweight); write('zhengpinzhong:'); readln(zpweight); write('cipin hao:'); for i:=1 to 8 do if i=cpcode then wti:=cpweight else wti:=zpweight; if wt1+wt2+wt3<>wt4+wt5+wt6 then beginif finddiff(wt1,wt2,wt3)=0 thenthenif finddiff(wt4,wt5,wt

12、6)>0 cpcode:=3+finddiff(wt4,wt5,wt6)else cpcode:=-3-finddiff(wt4,wt5,wt6) else cpcode:=finddiff(wt1,wt2,wt3); end elsebeginif wt7>wt8 then if wt7>wt1 then cpcode:=7 else cpcode:=-8 else if wt7=wt1 then cpcode:=8 else cpcode:=-7;end;writeln(abs(cpcode);write('Cipin: ');if cpcode<0 then writeln('QING') else writeln('ZHONG');end.4. 任意一個(gè)自然數(shù),我們可以將其平均截取成三個(gè)自然數(shù)。例如135768,可以截取成 13,57,68。如果某自然數(shù)不能平均截取 (位數(shù)不能被 3 整除 ),可將該 自然數(shù)高位補(bǔ)零后截取。 如 4128,可在高位補(bǔ)零后成為 004128,平均截取成 00, 41,28 三個(gè)數(shù)。編程從鍵盤(pán)上輸入一個(gè)自然數(shù) N(N 的位數(shù) <12),計(jì)算截取后第 一個(gè)數(shù)加第三個(gè)數(shù)減第二個(gè)數(shù)的結(jié)果。分析:此題難點(diǎn)數(shù)據(jù)類(lèi)型上,限定小于 12 位的自然數(shù)已超出

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論