2015年蓝桥杯C组试题及答案

上传人:宝路 文档编号:2634278 上传时间:2017-07-26 格式:DOC 页数:32 大小:102.50KB
返回 下载 相关 举报
2015年蓝桥杯C组试题及答案_第1页
第1页 / 共32页
2015年蓝桥杯C组试题及答案_第2页
第2页 / 共32页
2015年蓝桥杯C组试题及答案_第3页
第3页 / 共32页
2015年蓝桥杯C组试题及答案_第4页
第4页 / 共32页
2015年蓝桥杯C组试题及答案_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《2015年蓝桥杯C组试题及答案》由会员分享,可在线阅读,更多相关《2015年蓝桥杯C组试题及答案(32页珍藏版)》请在金锄头文库上搜索。

1、2014 年蓝桥杯 c 语言试题及答案发布时间:2015-04-091. 标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。有一次,老师出的题目是:36 x 495 = ?他却给抄成了:396 x 45 = ?但结果却很戏剧性,他的答案竟然是对的!因为 36 * 495 = 396 * 45 = 17820类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54假设 a b c d e 代表 19 不同的 5 个数字(注意是各不相同的数字,且不含 0)能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?请你利用计算机

2、的优势寻找所有的可能,并回答不同算式的种类数。满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。答案直接通过浏览器提交。注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。答案:1422. 标题: 振兴中华小明参加了学校的趣味运动会,其中的一个项目是:跳格子。地上画着一些格子,每个格子里写一个字,如下所示:(也可参见 p1.jpg)从我做起振我做起振兴做起振兴中起振兴中华比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。要求跳过的路线刚好构成“从我做起振兴中华”这句话。请你帮助小明

3、算一算他一共有多少种可能的跳跃路线呢?答案是一个整数,请通过浏览器直接提交该数字。答案:353. 题目标题: 猜年龄美国数学家维纳(N.Wiener)智力早熟,11 岁就上了大学。他曾在19351936 年应邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个 4 位数。我年龄的 4 次方是个 6 位数。这 10 个数字正好包含了从 0 到 9 这 10 个数字,每个都恰好出现 1 次。”请你推算一下,他当时到底有多年轻。通过浏览器,直接提交他那时的年龄数字。注意:不要提交解答过程,或其它的说明文字。答案:184. 标题: 幻方

4、填空幻方是把一些数字填写在方阵中,使得行、列、两条对角线的数字之和都相等。欧洲最著名的幻方是德国数学家、画家迪勒创作的版画忧郁中给出的一个 4 阶幻方。他把 1,2,3,.16 这 16 个数字填写在 4 x 4 的方格中。如图 p1.jpg 所示,即:16 ? ? 13? ? 11 ?9 ? ? *? 15 ? 1表中有些数字已经显露出来,还有些用?和*代替。请你计算出? 和 * 所代表的数字。并把 * 所代表的数字作为本题答案提交。答案是一个整数,请通过浏览器直接提交该数字。答案:125. 题目标题:公约数公倍数我们经常会用到求两个整数的最大公约数和最小公倍数的功能。下面的程序给出了一种算

5、法。函数 myfunc 接受两个正整数 a,b经过运算后打印出 它们的最大公约数和最小公倍数。此时,调用 myfunc(15,20)将会输出:360/ 交换数值void swap(int *a,int *b)int temp;temp=*a;*a=*b;*b=temp;void myfunc(int a, int b)int m,n,r;if(am=a;n=b;r=a%b;while(r!=0)a=b;b=r;r=a%b;printf(%dn,b); / 最大公约数printf(%dn, _); / 最小公倍数请分析代码逻辑,并推测划线处的代码,通过网页提交。答案: m*n/b6.标题:三部排

6、序一般的排序有许多经典算法,如快速排序、希尔排序等。但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。比如,对一个整型数组中的数字进行分类排序:使得负数都靠左端,正数都靠右端,0 在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过 1 次线性扫描就结束战斗!以下的程序实现了该目标。其中 x 指向待排序的整型数组,len 是数组的长度。void sort3p(int* x, int len)int p = 0;int left = 0;int right = len-1;while(p0)int t = xri

7、ght;xright = xp;xp = t;right-;else_; /填空位置如果给定数组:25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0则排序后为:-3,-2,-16,-5,0,0,0,21,19,33,25,16,18,25请分析代码逻辑,并推测划线处的代码,通过网页提交答案:p+7. 标题:核桃的数量小张是软件项目经理,他带领 3 个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足 1,2 条件的最小数量(节

8、约闹革命嘛)程序从标准输入读入:a b ca,b,c 都是正整数,表示每个组正在加班的人数,用空格分开(a,b,c n * 2 + 3)i = n * 4 + 6 - i;if (j n * 2 + 3)j = n * 4 + 6 - j;if (i = i - 2) return 1;if (j % 2 = 1 & j != i - 1) return 1;return 0;int main()int n;scanf(%d, &n);int i, j;for (i = 1; i = n | j = m | ntagij = 1)return 0;ntagij = 1;if (tagij !=

9、 t)return 0;count+;count += find(i - 1, j, t, ntag);count += find(i + 1, j, t, ntag);count += find(i, j - 1, t, ntag);count += find(i, j + 1, t, ntag);return count;int isbad()int i, j, k = 0;int t = tag00;int ntag1NN = 0;int ntag2NN = 0;int ge1 = find(0, 0, t, ntag1);for (i = 0; i = n | j = m | tagi

10、j = 1)return 1;tagij = 1;int b = isbad();tagij = 0;return b;void go(int i, int j, int k, int count)if (bad(i, j) | count k)r = k;tagij = 1;count -= numij;go(i - 1, j, k, count);go(i + 1, j, k, count);go(i, j - 1, k, count);go(i, j + 1, k, count);tagij = 0;int main()scanf(%d %d, &m, &n);int i, j;int

11、half = 0;for (i = 0; i = num00 * 2)half /= 2;go(0, 0, 0, half);if (r = 100)r = 0;printf(%d, r);return 0;隔行变色Excel 表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式。小明设计的样式为:第 1 行蓝色,第 2 行白色,第 3 行蓝色,第 4 行白色,.现在小明想知道,从第 21 行到第 50 行一共包含了多少个蓝色的行。请你直接提交这个整数,千万不要填写任何多余的内容。立方尾不变有些数字的立方的末尾正好是该数字本身。比如:1,4,5,6,9,24,25,.请你计算

12、一下,在 10000 以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。请提交该整数,不要填写任何多余的内容。三羊献瑞观察下面的加法算式:祥 瑞 生 辉+ 三 羊 献 瑞-三 羊 生 瑞 气(如果有对齐问题,可以参看【图 1.jpg】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。请你填写“三羊献瑞”所代表的 4 位数字(答案唯一),不要填写任何多余内容。格子中输出StringInGrid 函数会在一个指定大小的格子中打印指定的字符串。要求字符串在水平、垂直两个方向上都居中。如果字符串太长,就截断。如果不能恰好居中,可以稍稍偏左或者偏上一点。下面的程序

13、实现这个逻辑,请填写划线部分缺少的代码。#include #include void StringInGrid(int width, int height, const char* s)int i,k;char buf1000;strcpy(buf, s);if(strlen(s)width-2) bufwidth-2=0;printf(+);for(i=0;i #includeint main()int i, j;for ( i = 1; i, 不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。打印大 X小明希望用星号拼凑,打印出一个大 X,他要求能够控制笔画的宽度和整个

14、字的高度。为了便于比对空格,所有的空白位置都以句点符来代替。要求输入两个整数 m n,表示笔的宽度,X 的高度。用空格分开(0, 不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。垒骰子赌圣 atm 晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。假设有 m 组互斥现象,每组 中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm 想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,

15、当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。由于方案数可能过多,请输出模 109 + 7 的结果。不要小看了 atm 的骰子数量哦输入格式第一行两个整数 n mn 表示骰子数目接下来 m 行,每行两个整数 a b ,表示 a 和 b 数字不能紧贴在一起。输出格式一行一个数,表示答案模 109 + 7 的结果。样例输入2 11 2样例输出544数据范围对于 30% 的数据: n , 不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。蓝桥杯 c 语言试题 2015发布时间:2015-04-09第一题:假设有两种微生物 X 和 YX 出生后每隔 3 分钟分裂一次 (数目加倍),Y 出生后每隔 2 分钟分裂一次(数目加倍) 。一个新出生的 X,半分钟之后吃掉 1 个 Y,并且,从此开始,每隔 1 分钟吃 1 个 Y。现在已知有新出生的 X=10, Y=89,求 60 分钟后 Y 的数目。如果 X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60 分钟后 Y 的数目。第二题:ABCDE * ? = EDCBA“ABCDE 代表不同的数字

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号