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

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上2014第五屆藍(lán)橋杯JAVA本科B組試題及答案· 1. 武功秘籍  小明到X山洞探險(xiǎn),撿到一本有破損的武功秘籍(2000多頁(yè)!當(dāng)然是偽造的)。他意識(shí)到:書的第10頁(yè)和第11頁(yè)在同一張紙上,但第11頁(yè)和第12頁(yè)不在同一張紙上。 小明只想練習(xí)該書的第81頁(yè)到第92頁(yè)的武功,又不想帶著整本書。請(qǐng)問他至少要撕下多少?gòu)埣垘ё??這是個(gè)整數(shù),請(qǐng)通過瀏覽器提交該數(shù)字,不要填寫任何多余的內(nèi)容。答案:(80,81);(82,83);(84,85);(86,87);(88,89);(90,91);(92,93)· 2. 切面條  一根高筋拉面,中間切

2、一刀,可以得到2根面條。 如果先對(duì)折1次,中間切一刀,可以得到3根面條。 如果連續(xù)對(duì)折2次,中間切一刀,可以得到5根面條。 那么,連續(xù)對(duì)折10次,中間切一刀,會(huì)得到多少面條呢?答案是個(gè)整數(shù),請(qǐng)通過瀏覽器提交答案。不要填寫任何多余的內(nèi)容。答案:1025import java.util.Scanner; public class Main     public static void main(String args)        Scanner sc = 

3、new Scanner(System.in);        int n = sc.nextInt();        int num = (int)Math.pow(2, n) + 1;        System.out.println(num); /結(jié)果:2015    · 3. 猜

4、字母 把a(bǔ)bcd.s共19個(gè)字母組成的序列重復(fù)拼接106次,得到長(zhǎng)度為2014的串。 接下來(lái)刪除第1個(gè)字母(即開頭的字母a),以及第3個(gè),第5個(gè)等所有奇數(shù)位置的字母。 得到的新串再進(jìn)行刪除奇數(shù)位置字母的動(dòng)作。如此下去,最后只剩下一個(gè)字母,請(qǐng)寫出該字母。答案是一個(gè)小寫字母,請(qǐng)通過瀏覽器提交答案。不要填寫任何多余的內(nèi)容。答案:qimport java.util.Scanner;/*  該程序類似與約瑟夫環(huán)的問題*/public class Main public static void main(String args)    Scanner s

5、= new Scanner(System.in);   String str = "abcdefghijklmnopqrs"   String str1 = ""   for(int i = 0;i < 106;i+)       str1 = str1 + str;      &#

6、160;   System.out.println(str1.length();   boolean arr = new booleanstr1.length();   for(int i=0; i<arr.length; i+)        arri = true;            

7、 /下標(biāo)為TRUE時(shí)說(shuō)明字母還在圈里      int leftCount = str1.length();   int countNum = 0;   int index = 0;   while(leftCount > 1)        if(arrindex = true)    &#

8、160;        /當(dāng)在圈里時(shí)           if(countNum%2 = 0)           /下標(biāo)為偶數(shù)時(shí)              &

9、#160;arrindex = false;        /該字母退出圈子               leftCount -;              /剩余字母數(shù)目減一   

10、0;                      countNum+;                  index +;      

11、0;     /每報(bào)一次數(shù),下標(biāo)加一          if(index = str1.length()     /是循環(huán)數(shù)數(shù),當(dāng)下標(biāo)大于n時(shí),說(shuō)明已經(jīng)數(shù)了一圈,           index = 0;       &

12、#160;          /將下標(biāo)設(shè)為零重新開始。           countNum = 0;                       f

13、or(int i=0; i<str1.length(); i+)        if(arri = true)            System.out.println(i);   /輸出結(jié)果表示下標(biāo)為1023(第1024個(gè))的字母,即:q           

14、          · 4. 大衍數(shù)列標(biāo)題:大衍數(shù)列 中國(guó)古代文獻(xiàn)中,曾記載過“大衍數(shù)列”, 主要用于解釋中國(guó)傳統(tǒng)文化中的太極衍生原理。 它的前幾項(xiàng)是:0、2、4、8、12、18、24、32、40、50 . 其規(guī)律是:對(duì)偶數(shù)項(xiàng),是序號(hào)平方再除2,奇數(shù)項(xiàng),是序號(hào)平方減1再除2。 以下的代碼打印出了大衍數(shù)列的前 100 項(xiàng)。for(int i=1; i<100; i+)if(i%2=0) /填空System.out.println(i*i/2);elseSystem.out.prin

15、tln(i*i-1)/2); 請(qǐng)?zhí)顚憚澗€部分缺失的代碼。通過瀏覽器提交答案。注意:不要填寫題面已有的內(nèi)容,也不要填寫任何說(shuō)明、解釋文字。答案:i%2 = 0·   數(shù)學(xué)發(fā)展歷史上,圓周率的計(jì)算曾有許多有趣甚至是傳奇的故事。其中許多方法都涉及無(wú)窮級(jí)數(shù)。 圖1.png中所示,就是一種用連分?jǐn)?shù)的形式表示的圓周率求法。 下面的程序?qū)崿F(xiàn)了該求解方法。實(shí)際上數(shù)列的收斂對(duì)x的初始值 并不敏感。 結(jié)果打印出圓周率近似值(保留小數(shù)點(diǎn)后4位,并不一定與圓周率真值吻合)。double x = 111; for(int n = 10000; n>=0; n-)int i = 2 *

16、 n + 1;x = 2 + (i*i / x);System.out.println(String.format("%.4f", _);答案:4/(x-1)· 6. 奇怪的分式 上小學(xué)的時(shí)候,小明經(jīng)常自己發(fā)明新算法。一次,老師出的題目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (參見圖1.png) 老師剛想批評(píng)他,轉(zhuǎn)念一想,這個(gè)答案湊巧也對(duì)啊,真是見鬼!對(duì)于分子、分母都是 19 中的一位數(shù)的情況,還有哪些算式可以這樣計(jì)算呢? 請(qǐng)寫出所有不同算式的個(gè)數(shù)(包括題中舉例的)。顯然,交換分子分母后,例如:4/1 乘

17、以 5/8 是滿足要求的,這算做不同的算式。 但對(duì)于分子分母相同的情況,2/2 乘以 3/3 這樣的類型太多了,不在計(jì)數(shù)之列!注意:答案是個(gè)整數(shù)(考慮對(duì)稱性,肯定是偶數(shù))。請(qǐng)通過瀏覽器提交。不要書寫多余的內(nèi)容。答案:public class Main     public static void main(String args)        int count = 0;        

18、;for (int a = 1;a <= 9; a+)            for (int b = 1;b <= 9; b+)                if(a != b)       &

19、#160;          for (int c = 1;c <= 9;c+)                    for (int d = 1;d <= 9;d+)      

20、60;          if(c != d)             double sum1 = (double)b/a * d/c;              double sum2 = (double)(b*10 + d)/(a*10

21、 + c);                    if(sum1 = sum2)                      count+;   &#

22、160;                                                 &#

23、160;                                                 &#

24、160;                                 System.out.println(count);  /輸出結(jié)果:14        

25、0;     /* 這14組數(shù)據(jù)分別是: 2/1*4/5      4/1*5/8      6/1*3/4     6/1*4/6     9/1*5/91/2*5/4      6/2*5/6      1/4*8/5  &#

26、160;  9/4*8/9     1/6*4/31/6*6/4      2/6*6/5      1/9*9/5     4/9*9/8 PS:這些分式具有對(duì)稱性*/· 7. 撲克序列 AA, 一共4對(duì)撲克牌。請(qǐng)你把它們排成一行。 要求:兩個(gè)A中間有1張牌,兩個(gè)2之間有2張牌,兩個(gè)3之間有3張牌,兩個(gè)4之間有4張牌。4A3A24322342A3A4 請(qǐng)?zhí)顚懗鏊蟹?/p>

27、合要求的排列中,字典序最小的那個(gè)。例如:22AA3344 比 A2A23344 字典序小。當(dāng)然,它們都不是滿足要求的答案。2342A3A4請(qǐng)通過瀏覽器提交答案?!癆”一定不要用小寫字母a,也不要用“1”代替。字符間一定不要留空格。答案:2342A3A4public class 撲克序列 /這題有病,總共就兩種情況,題目還給出了    public static int count = 0;    public static void main(String args)    

28、     char num = new char8;        f(num, 0);         public static void f(char num, int i)         if(i >= num.length)  &#

29、160;         if(judge(num)                show(num);                count+;   &#

30、160;                 else             for (int j = 1; j <= 4; j+)             

31、0;   numi = (char)(j+'0');                f(num,i+1);                        

32、     public static void show(char num)         for (int i = 0; i < num.length; i+)             if(numi = '1')       

33、60;        System.out.print('A');            else                System.out.print(numi);    

34、            System.out.println();         public static boolean judge(char num)         boolean bool = new boolean5;     

35、0;  int size_A = 0, size_2 = 0, size_3 = 0, size_4 = 0;        for (int i = 0; i < num.length; i+)             if(numi = '1')size_A+;  

36、0;             if(i+2 < num.length && numi = numi+2 | i - 2 > 0 && numi-2 = numi)                    bo

37、ol0 = true;                            if(numi = '2')size_2+;             

38、60;  if(i+3 < num.length && numi = numi+3 | i - 3 > 0 && numi-3 = numi)                    bool1 = true;        &

39、#160;                   if(numi = '3')size_3+;                if(i+4 < num.length && numi = numi+4 |

40、i - 4 > 0 && numi-4 = numi)                    bool2 = true;                   

41、         if(numi = '4')size_4+;                if(i+5 < num.length && numi = numi+5 | i - 5 > 0 && numi-5 = numi)   

42、;                 bool3 = true;                              

43、;      if(size_A = 2 && size_3 = 2 && size_2 = 2 && size_4 = 2)            bool4 = true;            &

44、#160;   return bool0 && bool1 && bool2 && bool3 && bool4;    · 8. 分糖果 有n個(gè)小朋友圍坐成一圈。老師給每個(gè)小朋友隨機(jī)發(fā)偶數(shù)個(gè)糖果,然后進(jìn)行下面的游戲: 每個(gè)小朋友都把自己的糖果分一半給左手邊的孩子。 一輪分糖后,擁有奇數(shù)顆糖的孩子由老師補(bǔ)給1個(gè)糖果,從而變成偶數(shù)。 反復(fù)進(jìn)行這個(gè)游戲,直到所有小朋友的糖果數(shù)都相同為止。 你的任務(wù)是預(yù)測(cè)在已知的初始糖果情形下,老師一共需要補(bǔ)發(fā)多少

45、個(gè)糖果?!靖袷揭蟆?程序首先讀入一個(gè)整數(shù)N(2<N<100),表示小朋友的人數(shù)。 接著是一行用空格分開的N個(gè)偶數(shù)(每個(gè)偶數(shù)不大于1000,不小于2) 要求程序輸出一個(gè)整數(shù),表示老師需要補(bǔ)發(fā)的糖果數(shù)。例如:輸入32 2 4程序應(yīng)該輸出:4資源約定:峰值內(nèi)存消耗(含虛擬機(jī)) < 256MCPU消耗 < 1000ms請(qǐng)嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請(qǐng)您輸入.” 的多余內(nèi)容。所有代碼放在同一個(gè)源文件中,調(diào)試通過后,拷貝提交該源碼。注意:不要使用package語(yǔ)句。不要使用jdk1.7及以上版本的特性。注意:主類的名字必須是:Main,否則按無(wú)效代碼處理。答案:im

46、port java.util.Scanner; /求測(cè)試是否正確public class Main     public static void main(String args)        Scanner sc=new Scanner(System.in);        int n=sc.nextInt();      

47、  int a=0,b=0,count=0,x=0;        int s=new int n;        for(a=0;a<n;a+)            sa=sc.nextInt();       

48、0;        sc.close();        for(;)            for(a=0;a<n;a+)                

49、;sa=sa/2;                        b=s0;/變化前的第一個(gè)小朋友手里的糖果的一半保留            for(a=0;a<n-1;a+)     

50、;           sa=sa+sa+1;                        sn-1=sn-1+b;/將第一個(gè)小朋友的糖果給最后一個(gè)小朋友        

51、;    for(a=0,x=0;a<n;a+)                if(sa%2!=0)                    sa=sa+1;   

52、                 count+;                                

53、;else                     x+;                            

54、60;           for(a=0;a<n-1;a+)                if(sa!=sa+1)                 &

55、#160;  x=0;                                        if(x=n)     &#

56、160;          System.out.println(count);                break;                  

57、                   · 9. 地宮取寶X 國(guó)王有一個(gè)地宮寶庫(kù)。是 n x m 個(gè)格子的矩陣。每個(gè)格子放一件寶貝。每個(gè)寶貝貼著價(jià)值標(biāo)簽。 地宮的入口在左上角,出口在右下角。 小明被帶到地宮的入口,國(guó)王要求他只能向右或向下行走。 走過某個(gè)格子時(shí),如果那個(gè)格子中的寶貝價(jià)值比小明手中任意寶貝價(jià)值都大,小明就可以拿起它(當(dāng)然,也可以不拿)。 當(dāng)小明走到出口時(shí),如果他手中的寶貝恰好是k件,則

58、這些寶貝就可以送給小明。 請(qǐng)你幫小明算一算,在給定的局面下,他有多少種不同的行動(dòng)方案能獲得這k件寶貝?!緮?shù)據(jù)格式】 輸入一行3個(gè)整數(shù),用空格分開:n m k (1<=n,m<=50, 1<=k<=12) 接下來(lái)有 n 行數(shù)據(jù),每行有 m 個(gè)整數(shù) Ci (0<=Ci<=12)代表這個(gè)格子上的寶物的價(jià)值 要求輸出一個(gè)整數(shù),表示正好取k個(gè)寶貝的行動(dòng)方案數(shù)。該數(shù)字可能很大,輸出它對(duì) 取模的結(jié)果。例如,輸入:2 2 21 22 1程序應(yīng)該輸出:2再例如,輸入:2 3 21 2 32 1 5程序應(yīng)該輸出:14資源約定:峰值內(nèi)存消耗(含虛擬機(jī)) < 256MCPU消

59、耗 < 2000ms請(qǐng)嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請(qǐng)您輸入.” 的多余內(nèi)容。所有代碼放在同一個(gè)源文件中,調(diào)試通過后,拷貝提交該源碼。注意:不要使用package語(yǔ)句。不要使用jdk1.7及以上版本的特性。注意:主類的名字必須是:Main,否則按無(wú)效代碼處理。· 10. 矩陣翻硬幣 小明先把硬幣擺成了一個(gè) n 行 m 列的矩陣。 隨后,小明對(duì)每一個(gè)硬幣分別進(jìn)行一次 Q 操作。 對(duì)第x行第y列的硬幣進(jìn)行 Q 操作的定義:將所有第 i*x 行,第 j*y 列的硬幣進(jìn)行翻轉(zhuǎn)。 其中i和j為任意使操作可行的正整數(shù),行號(hào)和列號(hào)都是從1開始。 當(dāng)小明對(duì)所有硬幣都進(jìn)行了

60、一次 Q 操作后,他發(fā)現(xiàn)了一個(gè)奇跡所有硬幣均為正面朝上。 小明想知道最開始有多少枚硬幣是反面朝上的。于是,他向他的好朋友小M尋求幫助。 聰明的小M告訴小明,只需要對(duì)所有硬幣再進(jìn)行一次Q操作,即可恢復(fù)到最開始的狀態(tài)。然而小明很懶,不愿意照做。于是小明希望你給出他更好的方法。幫他計(jì)算出答案?!緮?shù)據(jù)格式】 輸入數(shù)據(jù)包含一行,兩個(gè)正整數(shù) n m,含義見題目描述。 輸出一個(gè)正整數(shù),表示最開始有多少枚硬幣是反面朝上的?!緲永斎搿? 3【樣例輸出】1【數(shù)據(jù)規(guī)?!繉?duì)于10%的數(shù)據(jù),n、m <= 103;對(duì)于20%的數(shù)據(jù),n、m <= 107;對(duì)于40%的數(shù)據(jù),n、m <= 1015;對(duì)于1

61、0%的數(shù)據(jù),n、m <= 101000(10的1000次方)。資源約定:峰值內(nèi)存消耗(含虛擬機(jī)) < 256MCPU消耗 < 2000ms請(qǐng)嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請(qǐng)您輸入.” 的多余內(nèi)容。所有代碼放在同一個(gè)源文件中,調(diào)試通過后,拷貝提交該源碼。注意:不要使用package語(yǔ)句。不要使用jdk1.7及以上版本的特性。注意:主類的名字必須是:Main,否則按無(wú)效代碼處理。答案:import java.util.Scanner; public class 矩陣翻硬幣     public static void

62、main(String args)         Scanner reader = new Scanner(System.in);        int n = reader.nextInt();        int m = reader.nextInt();       &

63、#160;reader.close();        int count = 0;        int num = new intnm;        for(int i = 0; i< n; i+)          

64、  for(int j = 0; j < n; j+)                numij = 1;                        

65、    for(int i = 0; i< n-1; i+)            for(int j = 0; j < m-1; j+)                Q(num,i+1,j+1);                            for(int i = 0; i< n; i+)      

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論