2014年第五届蓝桥杯预赛题目及答案_第1页
2014年第五届蓝桥杯预赛题目及答案_第2页
2014年第五届蓝桥杯预赛题目及答案_第3页
免费预览已结束,剩余26页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2014年第五届蓝桥杯预赛题目第一题标题:啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。注意:答案是一个整数。请通过浏览器提交答案。不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。第二题标题:切面条一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。第三题标题:李白打酒话说大诗人李

2、白,一生好饮。幸好他从不开车。一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。这一路上,他一共遇到店 5次,遇到花10次,已知最后一次遇到的是花,他正好把酒 喝光了。请你计算李白遇到店和花的次序,可以把遇店记为 a,遇花记为b。贝U: babaabbabbabbbb就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。注意:通过浏览器提交答案。答案是个整数。不要书写任何多余的内容。第四题标题:史丰收速算史丰收速算法的革命性贡献是:从高位算起,预测进位。统手算!不需要九九表,彻底颠覆了传速算的核心基础是

3、:1位数乘以多位数的乘法。其中,乘以7是最复杂的,就以它为例。因为,1/7是个循环小数:0.142857.,如果多位数超过142857,就要进1同理,2/7, 3/7,6/7也都是类似的循环小数,多位数超过n/7,就要进nF面的程序模拟了史丰收速算法中乘以7的运算过程。乘以7的个位规律是:偶数乘以 2,奇数乘以2再加5,都只取个位。乘以7的进位规律是:满142857进1,满285714进2,满428571进3,满571428进4,满714285进5,满857142进6请分析程序流程,填写划线部分缺少的代码。/计算个位int ge_wei (int a)if(a % 2 = 0)return (

4、a * 2) % 10;elsereturn (a * 2 + 5) % 10;int jin _wei(char* p)char* level = "142857","285714","428571","571428","714285","857142"char buf7;buf6 = '0:strn cpy(buf,p,6);int i;for(i=5; i>=0; i-)int r = strcmp(leveli, buf); if(r<0) ret

5、urn i+1; while(r=0)p += 6;strn cpy(buf,p,6);r = strcmp(leveli, buf);if(r<0) return i+1;填空return 0;多位数乘以7void f(char* s)int head = jin _wei(s);if(head > 0) pri ntf("%d", head);char* p = s;while(*p)int a = (*p-'0');int x = (ge_wei(a) + jin _wei(p+1) % 10; prin tf("%d"

6、,x);p+;prin tf("n");int mai n()f("428571428571"); f("34553834937543"); return 0;注意:通过浏览器提交答案。只填写缺少的内容,不要填写任何多余的内容(例如:说明性 文字)第五题标题:打印图形小明在X星球的城堡中发现了如下图形和文字:ran k=3+* +* * *芈*ran k=5ran=6+ * * * *席* * * *半 半*来 * *+ *+*+ * * +* *水* *+ +半*+* * * * * +* * * * * * * *+* +* *+

7、 * +* *水* *木+ *水*水* * * * * * *水*M:*半半+* * * *+ +* * +* * * *4:*+* +*水水+ *半t+ + + + * *+ +* + *4r"t*Jp半+*半半*半半!小明开动脑筋,编写了如下的程序,实现该图形的打印。#defi ne N 70 void f(char aN, i nt rank, int row, int col) if(ran k=1)arowcol = '*' return;int w = 1;int i;for(i=0; i<rank-1; i+) w *= 2;f(a, ran k-

8、1, row+w/2, col);f(a, ran k-1, row+w/2, col+w);int mai n()char aNN;int i,j;for(i=0;i<N;i+)for(j=0;j<N;j+) aij=''f(a,6,0,0);for(i=0; i<N; i+)for(j=0; j<N; j+) pri ntf("%c",aij);prin tf("n");return 0;请仔细分析程序逻辑,填写缺失代码部分。(比如通过浏览器提交答案。注意不要填写题目中已有的代码。也不要写任何多余内容说明性的文

9、字)第六题标题:奇怪的分式上小学的时候,小明经常自己发明新算法。一次,老师出的题目是:1/4乘以8/5小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.p ng)老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼!对于分子、分母都是 19中的一位数的情况,还有哪些算式可以这样计算呢?显然,交换分子分母后,例如: 4/1乘以5/8是满足要求的,这算做不同的算式。但对于分子分母相同的情况,2/2乘以3/3这样的类型太多了,不在计数之列!注意:答案是个整数(考虑对称性,肯定是偶数)。请通过浏览器提交。不要书写多余的内容。】M 3=184545醫饌辭劉分母'第七题标

10、题:六角填数如图【l.png】所示六角形中,填入 112的数字。使得每条直线上的数字之和都相同。图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?请通过浏览器提交答案,不要填写多余的内容。第八题 标题:蚂蚁感冒长100厘米的细长直杆子上有 n只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。【数据格式】第一行输入一个整数 n (1 < n < 50

11、),表示蚂蚁的总数。接着的一行是n个用空格分开的整数 Xi (-100 < Xi < 100), Xi的绝对值,表示蚂蚁离开 杆子左边端点的距离。正值表示头朝右,负值表示头朝左,数据中不会出现0值,也不会出现两只蚂蚁占用同一位置。其中,第一个数据代表的蚂蚁感冒了。要求输出1个整数,表示最后感冒蚂蚁的数目。例如,输入:35 -2 8程序应输出:1再例如,输入:5-10 8 -20 12 25程序应输出:3资源约定:峰值内存消耗 < 256MCPU 消耗 < 1000ms所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:main函数需要返回0注意:只使用ANSI

12、 C/ANSI C+ 标准,不要调用依赖于编译环境或操作系统的特殊函数。注意:所有依赖的函数必须明确地在源文件中#inelude <xxx>,不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。第九题标题:地宫取宝X国王有一个地宫宝库。是n x m个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。请

13、你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝。【数据格式】输入一行3个整数,用空格分开:n m k (1<=n,m<=50, 1<=k<=12)接下来有n行数据,每行有 m个整数Ci (0<=Ci<=12)代表这个格子上的宝物的价值要求输出一个整数,表示正好取k个宝贝的行动方案数。该数字可能很大,输出它对1000000007取模的结果。例如,输入:2 2 21 22 1程序应该输出:2再例如,输入:2 3 21 2 32 1 5程序应该输出:14资源约定: 峰值内存消耗 < 256MCPU 消耗 < 1000ms请严格

14、按要求输出,不要画蛇添足地打印类似:“请您输入”的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:main函数需要返回0注意:只使用ANSI C/ANSI C+ 标准,不要调用依赖于编译环境或操作系统的特殊函数。 注意:所有依赖的函数必须明确地在源文件中#inelude <xxx>,不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。第十题标题:小朋友排队n个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。如果某个小朋友第一

15、次被要求交换,则他的不高兴程度增加 1,如果第二次要求他交换,则他的不高兴程度增加 2(即不高兴程度为 3),依次类推。当要求某个小朋友第 k次交换时, 他的不高兴程度增加 k。请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。如果有两个小朋友身高一样,则他们谁站在谁前面是没有关系的。【数据格式】第二行包含n个整数H1 H2Hn,分别表示每个小朋友的身高。 输出一行,包含一个整数,表示小朋友的不高兴程度和的最小值。例如,输入:33 2 1程序应该输出:9【样例说明】首先交换身高为3和2的小朋友,再交换身高为 3和1的小朋友,再交换身高为 2和1 的小朋友,每个小朋友的不高兴程

16、度都是3,总和为9。【数据规模与约定】对于10%的数据,1<=*=10 ;对于30%的数据,1<=n<=1000 ;对于50%的数据,1<=*=10000 ;对于 100% 的数据,1<=n<=100000,0<=Hi<=1000000。资源约定:峰值内存消耗 < 256MCPU 消耗 < 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入”的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:main函数需要返回0注意:只使用ANSI C/ANSI C+ 标准,不要调用依赖于编译环境或操作系统的特殊

17、函数。注意:所有依赖的函数必须明确地在源文件中#inelude <xxx>,不能通过工程设置而省略常用头文件。参考答案1#in elude <cstdio>using n amespace std;int mai n()for(i nt i = 1; i * 2.3 <= 82.3; i+)for(i nt j = i + 1; i * 2.3 + j * 1.9 <= 82.3; j+)if(i * 2.3 + j * 1.9 >= 82.3 - 0.000001 && i * 2.3 + j * 1.9 <=82.3 + 0.

18、000001)prin tf("%d %dn", i, j);return 0;2#in elude <cstdio>using n amespace std;int mai n()int num = 2;for(i nt i = 1; i <= 10; i+)num = num * 2 - 1;prin tf("%d: %dn", i, num);return 0;3#in elude <cstdio>using n amespace std;int sum = 0;char str100;int Fun (i nt no

19、w, int i, i nt a, int b)if(now < 0 | i > 16 | (now = 0 && i < 16)return 0;if(now = 0)if(i = 16 && a = 5 && b = 10)sum+;for(i nt j = 0; j < 15; j+) putchar(strj);putchar(IO);stri - 1 = 'a'Fun(now * 2, i + 1, a + 1, b);stri - 1 = 'b'Fun(now - 1, i +

20、1, a, b + 1);int mai n()str15 = '0:Fu n(2, 1,0, 0);prin tf("sum = %dn", sum); return 0;4#in elude <stdio.h> #i nclude <stri ng.h>计算个位int ge_wei (int a) if(a % 2 = 0)return (a * 2) % 10;elsereturn (a * 2 + 5) % 10;计算进位in t ji n_wei(char* p)char*level"142857","

21、285714","428571","571428","714285","857142"char buf7;buf6 = '0:strncpy(buf,p,6);int i;for(i=5; i>=0; i-)int r = strcmp(leveli, buf);if(r<0) retur n i+1;while(r=O)p += 6;strn cpy(buf,p,6);r = strcmp(leveli, buf);if(r<0) return i+1;else if(r =

22、0) return i; / 填空return 0;多位数乘以7void f(char* s)int head = jin _wei(s);if(head > 0) pri ntf("%d", head);char* p = s;while(*p)int a = (*p-'0');int x = (ge_wei(a) + jin _wei(p+1) % 10;prin tf("%d",x);P+;prin tf("n");int mai n()f("428571428571");f("

23、;142857");return 0;5#i nclude <stdio.h>#defi ne N 70void f(char aN, i nt rank, int row, i nt col)if(ran k=1)arowcol = '*' return;int w = 1;int i;for(i=0; i<ra nk-1; i+)w *= 2;f(a, rank - 1, row, col + w / 2);f(a, ran k-1, row+w/2, col);f(a, ran k-1, row+w/2, col+w); int mai n()

24、char aNN;int i,j;for(i=0;i<N;i+) for(j=0;j<N;j+) aij=''f(a,6,0,0);for(i=0; i<N; i+)for(j=0; j<N; j+)prin tf("%c",aij);prin tf("n");return 0;6#in elude <cstdio>using n amespace std;int sum = 0;int mai n()for(i nt a = 1; a <= 9; a+)for(i nt b = 1; b <

25、;= 9; b+)for(i nt c = 1; c <= 9; c+)for(i nt d = 1; d <= 9; d+)if(a = b && c = d)con ti nue;int na = a * 10 + c, nb = b * 10 + d;if(a * 1.0 / b * c * 1.0 / d >= na * 1.0 / nb - 0.000001&&0.000001)nb);a * 1.0 / b * c * 1.0 / d <= na * 1.0 / nb + pri ntf("%d/%d * %d/%d

26、 = %d/%dn", a, b, c, d, na, sum+;prin tf("sum = %d", sum);return 0;7#in elude <cstdio>using n amespace std;int arr15, have15;int Fun (i nt i)if(i = 13)in t result6;resultO = arr1 + arr2 + arr3 + arr4, result1 = arr4 arr5 + arr6 + arr7;result2 = arr7 + arr8 + arr9 + arr1, result3

27、 = arr10 + arr3 + arr5 + arr11;result4 = arr11 + arr6 + arr8 + arr12, result5 = arr12 +arr9 + arr2 + arr10;int end = 1;for(i nt m = 0; m < 6; m+)for(i nt n 二 m + 1; n < 6; n+) if(resultm != result n ) end = 0;if(end)for(i nt i = 1; i <= 12; i+)prin tf("%d ", arri);putchar(10);for(

28、i nt i = 1; i <= 12; i+)prin tf("%d ", havei);putchar(10);getchar();if(i = 1 | i = 7 | i = 10)Fun(i + 1);if(!(i = 1 | i = 7 | i = 10)for(i nt j = 1; j <= 12; j+)if(!havej)arri = j;havej = 1;Fun(i + 1);havej = 0;int mai n()arr1 = 8; arr7 = 3; arr10 = 1;have1 = have3 = have8 = 1;Fun (1

29、);return 0;8#in elude <cstdio>#in clude <cmath> using n amespace std; struct Tint dree, flag;;T arr100;int size = 0;int mai n()int n, t;sea nf("%d", &n);for(i nt i = 0; i < n; i+)sea nf("%d", &t);if(i = 0)arrO.flag = 1; arrsize+.drec = t;int sum = 1, no wHa

30、ve = n;while (no wHave > 0)for(i nt i = 0; i < size; i+) if(arri.dree > 0)arri.drec += 1;elsearri.drec += 1;if(abs(arri.drec) < 0 | abs(arri.drec) > 100) no wHave-;for(i nt i = 0; i < size; i+)for(i nt j = i + 1; j < size; j+)if(abs(arrj.drec) = abs(arri.drec)if(arri.flag = 1 |

31、arrj.flag = 1)if(arri.flag + arrj.flag = 1)sum+;arri.flag = arrj.flag = 1;arrj.drec = 0 - arrj.drec;arri.drec = 0 - arri.drec;prin tf("%d", sum); return 0;#in elude <cstdio>#in clude <cmath>#in clude <algorithm>#in clude <cstri ng> using n amespace std; int map5555;

32、int n, m, k, sum = 0;int DFS(i nt x, int y, int big, int no wHave)if(no wHave > k)return 0;if(x = n && y = m)if(no wHave = k | no wHave = k - 1 && map n m > big)sum+;sum %= 1000000007;if(x + 1 <= n)if(mapxy > big)DFS(x + 1, y, mapxy, no wHave + 1);DFS(x + 1, y, big, no wHave);if(y + 1 <= m)if(mapxy > big)DFS(x, y + 1, m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论