2014第五屆藍(lán)橋杯C-C++本科B組試題及答案要點(diǎn)_第1頁
2014第五屆藍(lán)橋杯C-C++本科B組試題及答案要點(diǎn)_第2頁
2014第五屆藍(lán)橋杯C-C++本科B組試題及答案要點(diǎn)_第3頁
2014第五屆藍(lán)橋杯C-C++本科B組試題及答案要點(diǎn)_第4頁
2014第五屆藍(lán)橋杯C-C++本科B組試題及答案要點(diǎn)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2014第五屆藍(lán)橋杯 ac+缽科B組試題及答案1 .標(biāo)題:啤酒和飲料啤酒每罐2.3元,飲料每罐1.9元。小明買了若干啤酒和飲料,一共花了82.3元。我們還知道他買的啤酒比飲料的數(shù)量少,請你計(jì)算他買了幾罐啤酒。注意:答案是一個(gè)整數(shù)。請通過瀏覽器提交答案。解答:#includeint main() int x,y;double m=0;for(x=0,y=42;xy;) y = (int)(82.3-2.3*x)/1.9;m= 2.3*x+1.9*y;if(m=82.3)break;x = x+1;y = y-2; printf(%dn%dn,x,y);return 0; 2 .標(biāo)題:切面條一根高

2、筋拉面,中間切一刀,可以得到2根面條。如果先對折1次,中間切一刀,可以得到 3根面條。如果連續(xù)對折2次,中間切一刀,可以得到 5根面條。那么,連續(xù)對折10次,中間切一刀,會(huì)得到多少面條呢?答案是個(gè)整數(shù),請通過瀏覽器提交答案。不要填寫任何多余的內(nèi)容。解答:#include#include int main()printf (%d pow ( 2.0 ,10.0 ) + 1);return 0;3 .標(biāo)題:李白打酒話說大詩人李白,一生好飲。幸好他從不開車。一天,他提著酒壺,從家里出來,酒壺中有酒2斗。他邊走邊唱:無事街上走,提壺去打酒。逢店加一倍,遇花喝一斗。這一路上,他一共遇到店5次,遇到花10

3、次,已知最后一次遇到的是花,他正好把酒喝光了。請你計(jì)算李白遇到店和花的次序,可以把遇店記為a,遇花記為b。則:babaabbabbabbbb就是合理的次序。像這樣的答案一共有多少呢?請你計(jì)算出所有可能方案的個(gè)數(shù)(包含題目 給出的)。注意:通過瀏覽器提交答案。答案是個(gè)整數(shù)。不要書寫任何多余的內(nèi)容。解答:#includeint sum=0;int f(int a,int b,int c)if(a0)f(a-1,b,c*2);if(b0)f(a,b-1,c-1);if(a=0&b=0&c=1) sum=sum+1;return sum;int main()f(5,9,2);printf(%d,sum

4、);4 .標(biāo)題:史豐收速算史豐收速算法的革命性貢獻(xiàn)是:從高位算起,預(yù)測進(jìn)位。不需要九九表,徹底顛覆了傳統(tǒng)手算!速算的核心基礎(chǔ)是:1位數(shù)乘以多位數(shù)的乘法。其中,乘以7是最復(fù)雜的,就以它為例。因?yàn)椋?/7是個(gè)循環(huán)小數(shù):0.142857,如果多位數(shù)超過142857,就要進(jìn)1同理,2/7, 3/7, . 6/7也都是類似的循環(huán)小數(shù),多位數(shù)超過n/7,就要進(jìn)n下面的程序模擬了史豐收速算法中乘以7的運(yùn)算過程。乘以7的個(gè)位規(guī)律是:偶數(shù)乘以2,奇數(shù)乘以2再加5,都只取個(gè)位。乘以7的進(jìn)位規(guī)律是:滿 142857.進(jìn) 1,滿 285714.進(jìn) 2,滿 428571.進(jìn) 3,滿 571428.進(jìn) 4,滿 71428

5、5.進(jìn) 5,滿 857142.進(jìn) 6請分析程序流程,填寫劃線部分缺少的代碼。241876844562801/計(jì)算個(gè)位int ge_wei(int a)if(a % 2 = 0)return (a * 2) % 10;elsereturn (a * 2 + 5) % 10;/計(jì)算進(jìn)位int jin_wei(char* p)char* level口 = “142857”,“285714”,428571,571428,714285,857142;char buf7;buf6 = 0;strncpy(buf,p,6);int i;for(i=5; i=0; i-)int r = strcmp(leve

6、li, buf);if(r0) return i+1;while(r=0)p += 6;strncpy(buf,p,6);r = strcmp(leveli, buf);if(r 0) printf(%d, head);char* p = s;while(*p)int a = (*p-0);int x = (ge_wei(a) + jin_wei(p+1) % 10;printf(%d,x);p+;printf(n);int main()f(428571428571);f(34553834937543);return 0;注意:通過瀏覽器提交答案。只填寫缺少的內(nèi)容,不要填寫任何多余的內(nèi)容(例如

7、:說明性文字)解答:if(r0)return5 .標(biāo)題:打印圖形小明在X星球的城堡中發(fā)現(xiàn)了如下圖形和文字:rank=3rank=5*ran=6*小明開動(dòng)腦筋,編寫了如下的程序,實(shí)現(xiàn)該圖形的打印。#define N 70void f(char aN, int rank, int row, int col)if(rank=1)arowcol = *;return;int w = 1;int i;for(i=0; irank-1; i+) w *= 2;f(a, rank-1, row+w/2, col);f(a, rank-1, row+w/2, col+w);int main()char aNN

8、;int i,j;for(i=0;iN;i+)for(j=0;jN;j+) aij=;f(a,6,0,0);for(i=0; iN; i+)for(j=0; jN; j+) printf(%c,aij);printf(n);return 0;請仔細(xì)分析程序邏輯,填寫缺失代碼部分。(比如說明通過瀏覽器提交答案。注意不要填寫題目中已有的代碼。也不要寫任何多余內(nèi)容性的文字)解答:f(a, rank - 1, row,col+w/2);6 .標(biāo)題:奇怪的分式上小學(xué)的時(shí)候,小明經(jīng)常自己發(fā)明新算法。一次,老師出的題目是:1/4 乘以8/5小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (參見

9、圖l.png )老師剛想批評他,轉(zhuǎn)念一想,這個(gè)答案湊巧也對啊,真是見鬼! 對于分子、分母都是 19中的一位數(shù)的情況,還有哪些算式可以這樣計(jì)算呢? 請寫出所有不同算式的個(gè)數(shù)(包括題中舉例的)。顯然,交換分子分母后,例如: 4/1乘以5/8 是滿足要求的,這算做不同的算式。但對于分子分母相同的情況,2/2乘以3/3 這樣的類型太多了,不在計(jì)數(shù)之列 !注意:答案是個(gè)整數(shù)(考慮對稱性,肯定是偶數(shù))。請通過瀏覽器提交。不要書寫多余的內(nèi)容。解答:#include int main(void) int i,j,k,l; int z; for(i=1;i10;i+) for(j=1;j10;j+) for(k

10、=1;k10;k+) for(l=1;l10;l+) if(i!=j&k!=l) if(float )i*k/(j*l)=(float(i*10+k)/(j*10+l)printf(%d/%d,%d/%dn”,i,j,k,l); z+; printf(%d,z);return 0;7 .標(biāo)題:六角填數(shù)如圖1.png】所示六角形中,填入 112的數(shù)字。使得每條直線上的數(shù)字之和都相同。圖中,已經(jīng)替你填好了3個(gè)數(shù)字,請你計(jì)算星號(hào)位置所代表的數(shù)字是多少?請通過瀏覽器提交答案,不要填寫多余的內(nèi)容。答案:108 .標(biāo)題:螞蟻感冒長100厘米的細(xì)長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只

11、能沿著桿子向前爬,速度是1厘米/秒。當(dāng)兩只螞蟻碰面時(shí),它們會(huì)同時(shí)掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。并且在和其它螞蟻碰面時(shí),會(huì)把感冒傳染給碰到的螞蟻。請你計(jì)算,當(dāng)所有螞蟻都爬離桿子時(shí),有多少只螞蟻患上了感冒?!緮?shù)據(jù)格式】第一行輸入一個(gè)整數(shù) n (1 n 50),表示螞蟻的總數(shù)。接著的一行是n個(gè)用空格分開的整數(shù) Xi (-100 Xi 100), Xi的絕對值,表示螞蟻離開桿子左邊端點(diǎn)的距離。正值表示頭朝右,負(fù)值表示頭朝左,數(shù)據(jù)中不會(huì)出現(xiàn)0值,也不會(huì)出現(xiàn)兩只螞蟻占用同一位置。其中,第一個(gè)數(shù)據(jù)代表的螞蟻感冒了。要求輸出1個(gè)整數(shù),表示最后感冒螞蟻的數(shù)目。例如,輸入:35 -2 8程序

12、應(yīng)輸出:1再例如,輸入:5-10 8 -20 12 25程序應(yīng)輸出:3資源約定:峰值內(nèi)存消耗 256MCPU 消耗 1000ms請嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:請您輸入”的多余內(nèi)容。所有代碼放在同一個(gè)源文件中,調(diào)試通過后,拷貝提交該源碼。注意:main 函數(shù)需要返回0注意:只使用ANSI C/ANSI C+標(biāo)準(zhǔn),不要調(diào)用依賴于編譯環(huán)境或操作系統(tǒng)的特殊函數(shù)。注意:所有依賴的函數(shù)必須明確地在源文件中#include ,不能通過工程設(shè)置而省略常用頭文件。提交時(shí),注意選擇所期望的編譯器類型。解答:思路為將螞蟻的碰撞理解為互相穿過#includeint main()int n,m=1;int

13、i,j=0,k=0;int a100,b100,c100;scanf(%d,&n);for(i=0;in;i+)scanf(%d”,&ai);for(i=0;in;i+)if(ai0) bj=-ai; j+;elseck=ai;k+;if(a10)a1=-a1;for(i=0;ia1) m+;for(i=0;ik;i+)if(cia1) m+;printf(%dn,m);9 .標(biāo)題:地宮取寶X 國王有一個(gè)地宮寶庫。是 n x m 個(gè)格子的矩陣。每個(gè)格子放一件寶貝。每個(gè)寶貝貼著價(jià) 值標(biāo)簽。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個(gè)格子時(shí),如果那

14、個(gè)格子中的寶貝價(jià)值比小明手中任意寶貝價(jià)值都大,小明就可以拿起它(當(dāng)然,也可以不拿)。當(dāng)小明走到出口時(shí),如果他手中的寶貝恰好是k件,則這些寶貝就可以送給小明。請你幫小明算一算,在給定的局面下,他有多少種不同的行動(dòng)方案能獲得這k件寶貝。【數(shù)據(jù)格式】輸入一行 3個(gè)整數(shù),用空格分開: n m k (1=n,m=50, 1=k=12)接下來有n行數(shù)據(jù),每行有 m個(gè)整數(shù)Ci (0=Ci=12)代表這個(gè)格子上的寶物的價(jià)值要求輸出一個(gè)整數(shù),表示正好取k個(gè)寶貝的行動(dòng)方案數(shù)。該數(shù)字可能很大,輸出它對1000000007 取模的結(jié)果。例如,輸入:2 2 21 22 1程序應(yīng)該輸出:2再例如,輸入:2 3 21 2

15、32 1 5程序應(yīng)該輸出:14資源約定:峰值內(nèi)存消耗 256MCPU 消耗 1000ms請嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:請您輸入”的多余內(nèi)容。所有代碼放在同一個(gè)源文件中,調(diào)試通過后,拷貝提交該源碼。注意:main 函數(shù)需要返回0注意:只使用ANSI C/ANSI C+標(biāo)準(zhǔn),不要調(diào)用依賴于編譯環(huán)境或操作系統(tǒng)的特殊函數(shù)。#include 不能通過工程設(shè)置而省略常注意:所有依賴的函數(shù)必須明確地在源文件中 用頭文件。提交時(shí),注意選擇所期望的編譯器類型。解答:#include int n, m, k, count = 0, map5151;void dfs(int x, int y, int

16、max, int num)if (x = n | y = m | num k)return;else if (x = n - 1 & y = m - 1)if (num = k) count+;else if (num = k - 1 & mapn - 1m - 1 max) count+;count %= 1000000007;elseif (mapxy max)dfs(x + 1, y, mapxy, num + 1);dfs(x, y + 1, mapxy, num + 1);dfs(x + 1, y, max, num); dfs(x, y + 1, max, num);int mai

17、n(void)int i, j;scanf(%d%d%d, &n, &m, &k);for (i = 0; i n; i+) for (j = 0; j m; j+) scanf(%d, &mapij);dfs(0, 0, 0, 0);printf(%dn, count);return 0;10.標(biāo)題:小朋友排隊(duì)n 個(gè)小朋友站成一排?,F(xiàn)在要把他們按身高從低到高的順序排列,但是每次只能交換位置 相鄰的兩個(gè)小朋友。每個(gè)小朋友都有一個(gè)不高興的程度。開始的時(shí)候,所有小朋友的不高興程度都是0。如果某個(gè)小朋友第一次被要求交換,則他的不高興程度增加1 ,如果第二次要求他交換,則他的不高興程度增加 2 (即不

18、高興程度為 3),依次類推。當(dāng)要求某個(gè)小朋友第k次交換時(shí),他的不高興程度增加 ko請問,要讓所有小朋友按從低到高排隊(duì),他們的不高興程度之和最小是多少。如果有兩個(gè)小朋友身高一樣,則他們誰站在誰前面是沒有關(guān)系的?!緮?shù)據(jù)格式】輸入的第一行包含一個(gè)整數(shù)n,表示小朋友的個(gè)數(shù)。第二行包含n個(gè)整數(shù)H1 H2Hn,分別表示每個(gè)小朋友的身高。輸出一行,包含一個(gè)整數(shù),表示小朋友的不高興程度和的最小值。例如,輸入:3 3 2 1程序應(yīng)該輸出:【樣例說明】首先交換身高為 3和2的小朋友,再交換身高為3和1的小朋友,再交換身高為2和1的小朋友,每個(gè)小朋友的不高興程度都是3,總和為9。【數(shù)據(jù)規(guī)模與約定】對于10%的數(shù)據(jù),1=n=10 ;對于30%的數(shù)據(jù),1=n=1000 ;對于 50%的數(shù)據(jù),1=n=10000 ;對于 100%的數(shù)據(jù),1=n=100000 , 0=Hi=1000000 。資源約定:峰值內(nèi)存消耗 256MCPU 消耗 1000ms請嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:請您輸入”的多余內(nèi)容。所有代碼放在同一個(gè)源文件中,調(diào)試通過后,拷貝提交該源碼。注意:main 函數(shù)需要返回0注意:只使用ANSI C/ANSI C+標(biāo)準(zhǔn),不要調(diào)用依賴于編譯環(huán)境或操作系統(tǒng)的特殊函數(shù)。注意:所有依賴的函數(shù)必須明確地在源文件中#include ,不能通過工程設(shè)置而省略常用頭文件。提交時(shí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論