2016第七届蓝桥杯CC++-B组题解

合集下载

蓝桥杯大赛青少年创意编程Scratch初级组模拟题

蓝桥杯大赛青少年创意编程Scratch初级组模拟题

一、单选题(每题20分)1、(难度系数1)在舞台添加小猫角色,它的所有设置均为默认设置。

舞台布局和程序运行结果如下图所示。

舞台布局程序运行结果运行以下哪段程序后,可以得到以上结果。

()A BC D以上程序都不对2、(难度系数2)小猫看到远处好久不见的朋友,于是跳起来说“你好!”想引起朋友的注意,执行以下程序后,小猫说“你好!”一共几秒?()A 0B 2 C4 D 83、(难度系数3)当角色执行完这段程序后,舞台可能出现的图形是?()A、正三角形B、正四边形C、正六边形D、正八边形4、(难度系数4)执行完这段程序后,变量b的值可能是?()A、11B、65C、130D、60655、(难度系数5)小红想做一个月亮围绕地球旋转的动画,如图,舞台有两个角色:“地球”“月球”,并写如下程序,小红希望运行程序后,月球以地球为中心做圆周运动。

()A、B、B、D、1、难度系数2,满分50分准备工作:导入背景库中的“bedroom2”,并导入角色库中的“Abby”“Candy”角色。

编程实现:Abby打扫完房间,房间停电了,Abby点上了一根蜡烛。

想象停电后,点上蜡烛的效果。

图1.“关灯以前”图2.“关灯后”1、程序开始运行时,显示如图1.“关灯以前”2、2秒以后,背景变暗,屏幕左边的墙上出现比小猫自身还要大的影子,如图2.“关灯后”。

3、之后一直保持图2效果4、蜡烛、Abby、影子之间和大小应大致正确。

将程序保存在桌面,命名为“1.sb2”评判标准:10分:程序运行后,按图1的效果显示并保持至少2秒钟;30分:在10分的基础上,能按图2的要求背景变暗,出现Abby阴影;50分:在30分的基础上,背景中的圣诞树仍可见,蜡烛、Abby、影子之间的位置关系基本正确,Abby和影子的大小关系符号逻辑。

2、难度系数3,满分50分编程实现:今天天气多云,小熊在海边散步,他的头顶飘来一朵云,一阵风吹来,云飘走了,越飘越远,最后消失在空中。

蓝桥杯第七届cc初赛试题及答案

蓝桥杯第七届cc初赛试题及答案

蓝桥杯第七届cc初赛试题及答案蓝桥杯第七届CC初赛试题及答案1. 选择题1.1 以下哪个选项是C语言中定义数组的正确方式?A) int array[10];B) int array[];C) int [10] array;D) int array=10;答案:A1.2 以下哪个关键字用于定义一个结构体?A) structB) unionC) enumD) typedef答案:A1.3 在C语言中,哪个运算符用于取地址?A) *B) &C) %D) #答案:B2. 填空题2.1 在C语言中,关键字________用于定义一个函数。

答案:void2.2 如果一个变量的值是10,那么表达式sizeof(&variable)的结果是________。

答案:4(或根据系统不同,可能是8)2.3 在C语言中,________运算符用于定义一个指针。

答案:*3. 编程题3.1 编写一个C语言程序,计算并输出100以内所有偶数的和。

答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```3.2 编写一个C语言程序,实现字符串的反转。

答案:```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```4. 简答题4.1 请解释C语言中指针和引用的区别。

蓝桥杯题-基础练习(带答案).doc

蓝桥杯题-基础练习(带答案).doc

基础练习21-基础练习Sine之舞问题描述最近町为他的奶牛们开设了数学分析课,FJ知道若耍学好这门课,必须有一个好的三角函数基本功。

所以他准备和奶牛们做-个“SineZ舞”的游戏,寓教于乐,提高奶牛们的计算能力。

不妨设An=sin(l - sin (2+sin (3 - sin (4+... sin(n))...)Sn二(…(Al+n)A2+n-1)A3+.・• +2)An+lFJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。

输入格式仅冇一个数:N<201。

输出格式请输出相应的表达式Sn,以一个换行符结束。

输出屮不得含有多余的空格或换行、回车符。

样例输入3样例输出((sin(l)+3)sin(l-sin(2))+2)sin(l-sin(2 + sin(3)))+1解答:import java.util.Seanner;public class Main{* @param args*/public static void main(String[] args) {// TODO Auto-generated method stubSeanner seanner=new Seanner(System.in);System.out.pri ntln (sflnteger.parsel nt(sca nner.n extLi ne()), 1));//System.out.print(sin(3, 1));}static String s(int n」nt i)讦(i==n) return ""+An(n)+"+"+(n-i+l);}else {return ,,("+An(i)+"+"+(n-i+l)+,,)"+""+s(n, i+l)+"";}}static String An(int n){return sin(n, 1);}static String sin(int n,int i){if(i==n){return ”sin(”+n+")”;}else {if(i%2==0)return "sin("+i+"+"+sin(n z i+l)+")";//(int)Math.pow(-lJ)else {return "sin("+i+"-"+sin(n/ i+l)+,,)'^;}}}}2 2-基础练习FJ的字符串FJ在沙盘上写了这样一些字符串:Al = “A”A2 = “ABA”A3 = “ABACABA”A4 = a ABACABADABACABA v• • • • • •你能找出其屮的规律并写所有的数列AN吗?输入格式仅有一个数:N W 26。

蓝桥杯做对几道题就可以拿奖

蓝桥杯做对几道题就可以拿奖

蓝桥杯做对几道题就可以拿奖
参加“蓝桥杯”比赛并不是做对几道题就可以拿奖的,选手能否获奖主要以选手所提交的程序的运行结果为依据(大于90%),同时会参考选手程序的编码风格、逻辑性、可读性等方面。

一般题目的难度主要集中于对算法的设计和逻辑的组织上。

理论上,选手不可能通过猜测或其它非编程的手段获得问题的解。

选手给出的解法应具有普遍性,不能只适用于题目的示例数据(当然,至少应该适用于题目的示例数据)。

为了测试选手给出解法的性能,评分时用的测试用例可能包含大数据量的压力测试用例,选手选择算法时要充分考虑可行性的问题。

蓝桥杯青少年组python编程模拟题(turtle)12题

蓝桥杯青少年组python编程模拟题(turtle)12题

1、实现下述功能使用 turtle 库的函数,绘制三个彩色的圆,圆的颜色按顺序如图:圆的半径从里至外分别是 20、50、100。

效果如下图所示。

turtle使用2、库绘制四个同心圆套圈,最小的圆圈半径为10像素,不同圆圈之间的半径差是像素,效果如下图所50示。

3、使用 turtle 库的函数绘制 10 层螺旋状放大的类正方形,类正方形边长从 0 度方向、 边长为 1 像素开始,每条边长度比前一条边增加 2 个像素,画笔逆时针旋转 91 度。

效果如下图所示。

4、使用turtle库绘制下面的 5 行圆圈图案,第一行 5 个圆圈,向下逐行递减,第 5 行 1 个圆圈。

圆圈居中排列,半径为 20 像素。

效果如下图所示。

和 turtle.seth() 函数绘制嵌套 10 层的螺旋六边形,六边形边长从 1 像素开始,第一条边从 0 度方向开始,边长按照 3 个像素递增,效果如下图所示。

数和 turtle.circle() 函数绘制一个星星图形,圆弧的半径为 90,如下图所示。

7、请使用 turtle 库绘制太阳花,太阳花边长为200,内角为30,画笔颜色为红色,填充颜色为黄色,图形效果如下:8、请写代码替换横线,不修改其它代码,实现一下功能:使用turtle 库的turtle.fd()函数和turtle.seth()函数绘制一个方向为100像素长度的,十字形,效果如图所示。

9、完成如下功能。

根据列表保存的数据采用 Turtle 库画图直方图,显示输出在屏幕上,效果如下图所示。

Ls=[69,292,33,131,61,254]10、完成如下功能。

利用 random 库和 turtle 库,在屏幕上绘制5个圆圈,圆圈的半径和圆心的坐标由 randint()函数产生,圆心的 X 和Y 坐标范围在 [-100,100]字间;半径的大小范围在[20,50]之意,圆圈的颜色随机在 color 列表里选择。

效果如下图所示。

蓝桥杯JavaB历年竞赛真题详解

蓝桥杯JavaB历年竞赛真题详解

蓝桥杯JavaB历年竞赛真题详解
✌ 2021年第⼗⼆届省赛-题⽬+题解
题⽬序号名称题⽬类型分值
题⽬1结果填空5
题⽬2结果填空5
题⽬3结果填空10
题⽬4结果填空10
题⽬5结果填空15
题⽬6编程⼤题15
题⽬7编程⼤题20
题⽬8编程⼤题20
题⽬9编程⼤题25
题⽬10编程⼤题25✌ 2020年第⼗⼀届省赛-题⽬+题解
题⽬序号名称题⽬类型分值
题⽬1结果填空5
题⽬2结果填空5
题⽬3结果填空10
题⽬4结果填空10
题⽬5结果填空15
题⽬6编程⼤题15
题⽬7编程⼤题20
题⽬8编程⼤题20
题⽬9编程⼤题25
题⽬10编程⼤题25✌ 2019年第⼗届省赛-题⽬+题解
题⽬序号名称题⽬类型分值
题⽬1结果填空5
题⽬2结果填空5
题⽬3结果填空10
题⽬4结果填空10
题⽬5结果填空15
题⽬6编程⼤题15
题⽬7编程⼤题20
题⽬8编程⼤题20
题⽬9编程⼤题25
题⽬10编程⼤题25
题⽬10编程⼤题25✌ 2018年第九届省赛-题⽬+题解
题⽬序号名称题⽬类型分值
题⽬1结果填空5
题⽬2结果填空5
题⽬3结果填空10
题⽬4结果填空10
题⽬5结果填空15
题⽬6编程⼤题15
题⽬7编程⼤题20
题⽬8编程⼤题20
题⽬9编程⼤题25
题⽬10编程⼤题25。

蓝桥杯试题及答案

蓝桥杯试题及答案

蓝桥杯试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A2. 下列哪个不是Python的内置数据类型?A. intB. floatC. stringD. list答案:D二、填空题1. 在C语言中,定义一个整型变量的关键字是________。

答案:int2. 在JavaScript中,用于定义函数的关键字是________。

答案:function三、简答题1. 请简述什么是算法的时间复杂度,并给出一个例子。

答案:算法的时间复杂度是指算法执行时间随输入规模增长的变化趋势。

例如,对于一个简单的线性搜索算法,如果数组中有n个元素,最坏情况下需要比较n次,因此其时间复杂度是O(n)。

2. 请解释什么是栈,并给出一个栈的应用场景。

答案:栈是一种后进先出(LIFO)的数据结构,允许在一端进行数据的添加和删除操作。

一个常见的栈的应用场景是函数调用的实现,在编程中,每当调用一个函数,就会将函数的返回地址和局部变量压入栈中,待函数执行完毕后再从栈中弹出。

四、编程题1. 编写一个函数,实现对一个整数数组进行排序。

答案:```javapublic static void sort(int[] array) {for (int i = 0; i < array.length - 1; i++) {for (int j = 0; j < array.length - i - 1; j++) {if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}}```2. 编写一个程序,实现计算一个字符串中所有元音字母的数量。

答案:```pythondef count_vowels(s):vowels = "aeiouAEIOU"return sum(1 for char in s if char in vowels)# 示例print(count_vowels("Hello World")) # 输出应该是 3```五、案例分析题1. 描述一个场景,其中使用二叉搜索树(BST)比使用数组更有效,并解释原因。

蓝桥杯数学公式

蓝桥杯数学公式

蓝桥杯数学公式蓝桥杯数学公式,这可真是个让人又爱又恨的话题!就拿我曾经遇到的一个事儿来说吧。

有一次,我在给学生们讲解蓝桥杯相关的数学知识,其中涉及到一个复杂的公式。

当时班里有个叫小明的孩子,瞪着大眼睛,一脸迷茫地看着黑板上的公式,那表情仿佛在说:“这是啥呀?外星密码吗?”我看着他那可爱又无奈的样子,心里既觉得好笑,又暗下决心一定要让他弄明白。

蓝桥杯里的数学公式,那可真是五花八门,啥样的都有。

比如说等差数列求和公式,Sn = n(a1 + an)/2 。

这公式看起来简单,可真要用起来,还得仔细琢磨琢磨。

就像你要计算一堆连续的数字相加,比如 1到 100 的和,直接代入公式,瞬间就能得出结果,是不是感觉挺神奇的?再说说等比数列的通项公式 an = a1 * q^(n - 1) ,这里面的 q 是公比。

想象一下,你有一堆按照一定比例增长或者减少的数字,用这个公式就能轻松找到任意一项的值。

还有像二次函数的顶点坐标公式 (-b/2a, (4ac - b²)/4a) ,这个在解决很多几何和实际问题中可有用了。

比如说要建一个面积最大的矩形花园,给定周长,就能通过这个公式算出矩形的长和宽,从而得到最大面积。

还有三角函数的那些公式,像正弦函数 sin A = 对边/斜边,余弦函数 cos A = 邻边/斜边。

这在解决三角形的各种问题中,那可是大显身手。

回到小明同学这儿,为了让他搞懂那个复杂的公式,我可是想尽了办法。

我给他打比方,举例子,还让他自己动手推导。

终于,他的眼睛里不再是迷茫,而是透露出一丝恍然大悟的光芒,那一刻,我心里别提多有成就感了!在蓝桥杯的世界里,数学公式就像是一把把神奇的钥匙,能打开一扇扇通往知识宝藏的大门。

但要掌握这些钥匙可不容易,得下功夫,多练习,多思考。

比如说排列组合的公式,C(n, m) = n! / [m!(n - m)!] 。

这个在计算可能性的问题时经常用到。

就像从一堆不同的水果中选出几种,有多少种选法,就得靠它来算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一题煤球数目有一堆煤球,堆成三角棱锥形。

具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

这道题坑死了,第一次看堆成三角棱锥形,草稿本画半天都没画出个三角棱锥。

后来单独看每句话才知道每层一个三角形叠起来就是三角棱锥。

我去。

看懂题目这个题目就很简单了,每层的个数是上层的个数加上层数,意思就是An = An-1 + n,然而题目是求的前100层一共多少煤球。

所以是Sn.代码双重for循环就出来了。

答案是:1717001.#include<stdio.h>2.int main()3.{4.int a[101] ={0};5.for(int i = 1 ; i < 101 ; i ++)6. a[i] = a[i-1] + i;7.int ans = 0;8.for(int j = 1 ; j < 101 ; j ++)9. ans += a[j];10. printf("%d\n",ans);11.return 0;12.}第二题:生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。

现在算起来,他一共吹熄了236根蜡烛。

请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

呵呵,水题,但是出题人不严谨啊!!!怎么就不能考虑万一他今年236岁呢....好了不说了强迫症犯了。

蓝桥杯这种不像acm的题目的,能暴力直接暴力。

不用想太多。

直接从1~236 枚举start, end 分别表示他开始过生日的年龄和今年的年龄,然后计算之间吹蜡烛的总和如果等于236就输出start ,end. 答案是:261.#include<stdio.h>2.int main()3.{4.int start,end;5.for(start = 1 ; start < 236 ; start ++)6. {7.for( end = start ; end < 236 ; end ++ )8. {9.int sum = 0;10.for(int i = start; i <= end; i ++)11. sum += i;12.if( sum == 236)13. {14. printf("start : %d end : %d\n",start,end);15. }16. }17. }18.return 0;19.}第三题:凑算式B DEFA + — + -——— = 10C GHI(如果显示有问题,可以参见【图1.jpg】)这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。

这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。

这个题不多说了,直接暴力生成9的全排列然后去验证等式是否成立,只是验证的时候如果防止精度问题可以通分把除法变成乘法。

答案是:291.#include<stdio.h>2.int ans = 0;3.int num[10];4.bool visit[10];5.6.void Solve()7.{8.double sum = num[0] + (double)num[1] / num[2] + (double)(num[3]*100+num[4]*10+num[5])/(num[6]*100+num[7]*10+num[8]);9.if(sum == 10)10. {11. ans ++;12. }13.}14.15.void dfs(int index)16.{17.if(index == 9)18. {19. Solve();20.return ;21. }22.for(int i = 1 ; i < 10 ; i ++)23. {24.if(!visit[i])25. {26. visit[i] = true;27. num[index] = i;28. dfs(index+1);29. visit[i] = false;30. }31. }32.}33.34.int main()35.{36. dfs(0);37. printf("%d\n",ans);38.return 0;39.}第四题:快速排序排序在各种场合经常被用到。

快速排序是十分常用的高效率的算法。

其思想是:先选一个“标尺”,用它把整个队列过一遍筛子,以保证:其左边的元素都不大于它,其右边的元素都不小于它。

这样,排序问题就被分割为两个子区间。

再分别对子区间排序就可以了。

下面的代码是一种实现,请分析并填写划线部分缺少的代码。

#include <stdio.h>void swap(int a[], int i, int j){int t = a[i];a[i] = a[j];a[j] = t;}int partition(int a[], int p, int r){int i = p;int j = r + 1;int x = a[p];while(1){while(i<r && a[++i]<x);while(a[--j]>x);if(i>=j) break;swap(a,i,j);}______________________;return j;}void quicksort(int a[], int p, int r){if(p<r){int q = partition(a,p,r);quicksort(a,p,q-1);quicksort(a,q+1,r);}}int main(){int i;int a[] = {5,13,6,24,2,8,19,27,6,12,1,17};int N = 12;quicksort(a, 0, N-1);for(i=0; i<N; i++) printf("%d ", a[i]);printf("\n");return 0;}注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。

这个题目如果接触过快排,了解过快速排序的原理的应该是送分题目,只不过快排单步(就是将一堆数按照某个数作为基准数分成左右两堆)这个实现方式有几种代码表现。

在这里答案是swap(a,p,j).第五题:抽签X星球要派出一个5人组成的观察团前往W星。

其中:A国最多可以派出4人。

B国最多可以派出2人。

C国最多可以派出2人。

....那么最终派往W星的观察团会有多少种国别的不同组合呢?下面的程序解决了这个问题。

数组a[] 中既是每个国家可以派出的最多的名额。

程序执行结果为:DEFFFCEFFFCDFFFCDEFFCCFFFCCEFFCCDFFCCDEFBEFFFBDFFFBDEFFBCFFFBCEFFBCDFFBCDEF....(以下省略,总共101行)#include <stdio.h>#define N 6#define M 5#define BUF 1024void f(int a[], int k, int m, char b[]){int i,j;if(k==N){b[M] = 0;if(m==0) printf("%s\n",b);return;}for(i=0; i<=a[k]; i++){for(j=0; j<i; j++) b[M-m+j] = k+'A';______________________; //填空位置}}int main(){int a[N] = {4,2,2,1,1,3};char b[BUF];f(a,0,M,b);return 0;}仔细阅读代码,填写划线部分缺少的内容。

注意:不要填写任何已有内容或说明性文字。

这个题目是这样的,对于f(int a[],int k,int m,char b[]).a[] 是每个国家的最多指派人数,k 表示当前是哪个国家,m表示还需要派送几个人(可以为负数).b表示已经派送的人的字符串。

所以这个题目在递归中间的的第一个循环表示从0~a[i]中让i国选择指派人数,内循环只是向b[]记录的过程。

所以答案是f(a,k+1,m-i,b). 因为这里I = j .应该 f(a,k+1,m-j,b)也可以。

第六题:方格填数如下的10个格子(如果显示有问题,也可以参看【图1.jpg】)填入0~9的数字。

要求:连续的两个数字不能相邻。

(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

这个题目题目有点表述不明,不知道0~9 可不可以重复使用。

我当时做的时候是当作不可以重复使用来处理的。

那么这里我就先当作不可重复使用来讲解。

这里题目还是一样先往里面填数。

用生成排列的形式。

填写完了之后再判断是否可行。

答案是:15801.#include <stdio.h>2.#include <math.h>3.int flag[3][4]; //表示哪些可以填数4.int mpt[3][4]; //填数5.bool visit[10];6.int ans = 0;7.void init() //初始化8.{9.int i,j;10.for(i = 0 ; i < 3 ; i ++)11.for(j = 0 ; j < 4 ; j ++)12. flag[i][j] = 1;13. flag[0][0] = 0;14. flag[2][3] = 0;15.}16.17.void Solve()18.{19.int dir[8][2] = { 0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1};20.int book = true;21.for(int i = 0 ; i < 3 ; i ++)22. {23.for(int j = 0 ; j < 4; j ++)24. {25.//判断每个数周围是否满足26.if(flag[i][j] == 0)continue;27.for( int k = 0 ; k < 8 ; k ++)28. {29.int x,y;30. x = i + dir[k][0];31. y = j + dir[k][1];32.if(x < 0 || x >= 3 || y < 0 || y >= 4 || flag[x][y ] == 0) continue;33.if(abs(mpt[x][y] - mpt[i][j]) == 1) book = false;34. }35. }36. }37.if(book) ans ++;38.}39.40.41.void dfs(int index)42.{43.int x,y;44. x = index / 4;45. y = index % 4;46.if( x == 3)47. {48. Solve();49.return;50. }51.if(flag[x][y])52. {53.for(int i = 0 ; i < 10 ; i ++)54. {55.if(!visit[i])56. {57. visit[i] = true;58. mpt[x][y] = i;59. dfs(index+1);60. visit[i] = false;61. }62. }63. }64.else65. {66. dfs(index+1);67. }68.}69.int main()70.{71. init();72. dfs(0);73. printf("%d\n",ans);74.return 0;75.}第七题:剪邮票如【图1】, 有12张连在一起的12生肖的邮票。

相关文档
最新文档