蓝桥杯软件设计大赛习题
第十届蓝桥杯大赛软件类省赛研究生组试题H:修改数组
第⼗届蓝桥杯⼤赛软件类省赛研究⽣组试题H:修改数组第⼗届蓝桥杯⼤赛软件类省赛研究⽣组试题H:修改数组问题描述:给定⼀个长度为N的数组A=[A1,A2,···AN],数组中有可能有重复出现的整数。
现在⼩明要按以下⽅法将其修改为没有重复整数的数组。
⼩明会依次修改A2,A3,···,AN。
当修改Ai时,⼩明会检查Ai是否在A1∼Ai−1中出现过。
如果出现过,则⼩明会给Ai加上1;如果新的Ai仍在之前出现过,⼩明会持续给Ai加1,直到Ai没有在A1∼Ai−1中出现过。
当AN也经过上述修改之后,显然A数组中就没有重复的整数了。
现在给定初始的A数组,请你计算出最终的A数组。
这道题LeetCode有类似的,只是表达⽅式不同。
算法思想1.定义⼀个unordered_map<int,int> 来存储不重复的输⼊数据和频率。
2.当输⼊⼀个数,判断当前数是否在map中,如果输⼊的数(key)对应的value ==1 ,则让输⼊的数字+1,如此往复。
3.在map中,插⼊不重复的元素。
C/C++实现void no_repeat(){int n = 0,temp;cin >> n;int m[n];unordered_map<int,int> ele;for(int i = 0;i < n;i++){cin >> temp;while (ele[temp] == 1) temp++;ele[temp] = 1;m[i] = temp;}for(int i = 0;i < n;i++){cout << m[i] << " ";}}。
第一届蓝桥杯大赛试题
break;
case 1:
sprintf(answer, “%s %c ((%s %c %s) %c %s)”,
p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);
break;
case 2:
sprintf(answer, “(%s %c %s) %c (%s %c %s)”,
p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);
break;
case 3:
sprintf(answer, “((%s %c %s) %c %s) %c %s”,
}
}
int GetCardValue(int c)
{
if(c==’T') return 10;
if(c>=’0′ && c<=’9′) return c – ’0′;
return 1;
}
char GetOper(int n)
{
switch(n)
{
case 0:
return ‘+’;
case 1:
return ‘-’;
break;
}
}
bool TestResolve(char* question, int* oper, char* answer)
{
// 等待考生完成
蓝桥杯例题
1.蓝桥杯全国软件和信息技术专业人才大赛是由哪个部门主办的?A.教育部(答案)B.科技部C.工业和信息化部D.国家发展和改革委员会2.蓝桥杯大赛主要考察参赛者的哪些能力?A.编程和算法设计能力(答案)B.市场营销能力C.团队协作能力D.演讲能力3.蓝桥杯大赛通常分为哪些组别进行比赛?A.大学A组、大学B组和大学C组(答案)B.初级组、中级组和高级组C.青少年组、成人组和大师组D.企业组、学校组和个人组4.在蓝桥杯大赛中,以下哪种编程语言是常用的?A.C/C++(答案)B.Python(虽然Python也常被使用,但在此处作为非唯一或首选答案)C.Java(Java也是常用语言,但同样非首选答案)D.JavaScript5.蓝桥杯大赛的获奖者通常可以获得哪些奖励?A.奖金、证书和学校加分(答案)B.实物奖品、旅游机会和荣誉称号C.股票、期权和就业机会D.学术期刊发表机会6.蓝桥杯大赛的参赛资格通常要求参赛者是什么身份?A.在校大学生(答案)B.企业员工C.专业程序员D.无特定身份要求7.在蓝桥杯大赛中,以下哪个环节不是必须的?A.提交代码并运行通过测试((答案,此选项描述了一个通常情况,但并非所有题目都需提交并运行代码,而是根据题目要求可能只需提交答案或解题思路)B.理解题目要求C.设计算法或解决方案D.在规定时间内完成题目8.蓝桥杯大赛的题目难度通常是如何分布的?A.从易到难,逐步增加(答案)B.所有题目难度相同C.难度随机分布D.先难后易9.参加蓝桥杯大赛对参赛者未来的职业发展有哪些帮助?A.提升编程技能和算法设计能力,增加就业竞争力(答案)B.直接获得高薪工作机会C.获得学术研究成果D.无需进一步学习即可成为专家10.蓝桥杯大赛的举办周期是多久?A.每年一届(答案)B.每两年一届C.每季度一届D.每月一届。
大学生蓝桥杯试题及答案
大学生蓝桥杯试题及答案一、选择题(每题2分,共20分)1. 在计算机科学中,通常用什么来表示一个算法的效率?A. 时间复杂度B. 空间复杂度C. 算法的可读性D. 算法的可维护性答案:A2. 下列哪种数据结构在插入和删除操作时不需要移动其他元素?A. 链表B. 数组C. 栈D. 队列答案:A3. 以下哪个选项是面向对象编程的三个基本特征?A. 封装、继承、多态B. 抽象、封装、继承C. 继承、封装、多态D. 封装、继承、抽象答案:A4. 在HTML中,用于定义最重要的标题的标签是什么?A. <h1>B. <h6>C. <title>D. <header>答案:A5. 在数据库管理系统中,用于从数据库中检索数据的SQL语句是?A. INSERTB. UPDATEC. DELETED. SELECT答案:D6. 在Java中,用于定义一个类的方法的关键字是什么?A. classB. methodC. functionD. public答案:D7. 在C语言中,用于声明一个变量为静态存储的关键字是什么?A. staticB. externC. registerD. auto答案:A8. 在Python中,用于定义一个函数的关键字是什么?A. defB. functionC. methodD. class答案:A9. 在操作系统中,用于管理进程的调度和资源分配的组件是什么?A. 文件系统B. 内存管理C. 进程管理器D. 设备驱动程序答案:C10. 以下哪个协议是用于在互联网上发送电子邮件的?A. HTTPB. FTPC. SMTPD. TCP答案:C二、填空题(每题2分,共20分)1. 在计算机科学中,________是用来衡量算法在最坏情况下执行时间的量度。
答案:时间复杂度2. 在数据结构中,________是一种允许在任意位置插入和删除数据的线性数据结构。
第六届蓝桥杯软件类省赛真题(Java B组)
对于100%的数据:0 < n <= 10^9, m <= 36
资源约定:
峰值内存消耗(含虚拟机)< 256M
CPU消耗< 2000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
{
int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];
int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];
if(a*3==b) + " " + b);
}
public static void f(int[] x, int k)
public static void main(String[] args)
{
int[] x = {1,2,3,4,5,6,7,8,9};
f(x,0);
}
}
注意,只能填写缺少的部分,不要重复抄写已有代码。不要填写任何多余的文字。
6、加法变乘法
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
{
if(k>=x.length){
test(x);
return;
}
for(int i=k; i<x.length; i++){
{int t=x[k]; x[k]=x[i]; x[i]=t;}
蓝桥杯试题及答案
蓝桥杯试题及答案一、选择题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)比使用数组更有效,并解释原因。
蓝桥杯软件大赛练习系统题目
历届试题 翻硬币...........................................................................................................................59 历届试题 错误票据.......................................................................................................................61 历届试题 剪格子...........................................................................................................................64 历届试题 带分数...........................................................................................................................67 历届试题 核桃的数量...................................................................................................................71
30算法训练最大最小公倍数31算法训练区间k大数查询32历届试题公式求值33历届试题九宫重排35历届试题车轮轴迹37历届试题约数倍数选卡片40历届试题农场阳光41历届试题格子刷油漆43历届试题高僧斗法45历届试题网络寻路46历届试题危险系数48历届试题幸运数50历届试题大臣的旅费52历届试题买不到的数目55历届试题连号区间数57历届试题翻硬币59历届试题错误票据61历届试题剪格子64历届试题带分数67历届试题核桃的数量71入门训练fibonacci数列时间限制
第八届蓝桥杯a组试题及答案
第八届蓝桥杯a组试题及答案第八届蓝桥杯A组试题及答案一、选择题(每题5分,共50分)1. 下列哪个选项不是C++的特性?A. 多态性B. 封装性C. 继承性D. 全局变量答案:D2. 在HTML中,用于定义最重要的标题的标签是:A. <h1>B. <h2>C. <h3>D. <h4>答案:A3. SQL语句中用于创建数据库的命令是:A. CREATE TABLEB. CREATE DATABASEC. DROP DATABASED. ALTER DATABASE答案:B4. 在JavaScript中,用于声明变量的关键字是:A. varB. letC. constD. All of the above答案:D5. 下列哪个选项是Python的内置数据类型?A. ListB. TupleC. DictionaryD. All of the above答案:D6. 在Java中,用于捕获异常的关键字是:A. tryB. catchC. finallyD. throw答案:B7. 在CSS中,用于设置文本颜色的属性是:A. colorB. font-colorC. text-colorD. none of the above答案:A8. 下列哪个选项不是Linux操作系统的发行版?A. UbuntuB. CentOSC. WindowsD. Fedora答案:C9. 在Python中,用于执行列表推导的语法是:A. [x for x in iterable if condition]B. {x for x in iterable if condition}C. (x for x in iterable if condition)D. All of the above答案:A10. 在HTML5中,用于定义文档元数据的标签是:A. <meta>B. <header>C. <footer>D. <section>答案:A二、填空题(每题5分,共30分)1. 在C语言中,用于定义一个结构体的关键字是________。
蓝桥杯scratch初级组试题及答案
蓝桥杯scratch初级组试题及答案1. 题目:制作一个简单的倒计时器要求:使用Scratch制作一个倒计时器,从10秒开始倒计时,倒计时结束后显示“时间到”。
答案:首先,创建一个名为“倒计时器”的新项目。
在舞台上添加一个名为“倒计时”的变量,并将其初始值设置为10。
使用“当绿旗被点击”事件开始倒计时,使用“重复10次”的循环结构,每次循环中减去1秒,并使用“等待1秒”的命令。
最后,在循环结束后,使用“说‘时间到’2秒”的命令。
2. 题目:创建一个能够移动的小猫要求:在Scratch中创建一个小猫角色,使其能够在按下键盘上的左右箭头键时左右移动。
答案:首先,从角色库中选择一个小猫角色。
然后,为小猫添加两个“当绿旗被点击”事件,分别用于控制左右移动。
在控制小猫左移的事件中,使用“当左箭头键被按下”的事件,并添加“移动10步”的命令。
在控制小猫右移的事件中,使用“当右箭头键被按下”的事件,并添加“移动10步”的命令。
3. 题目:制作一个简单的加法游戏要求:创建一个游戏,玩家需要在10秒内回答一个加法问题,答对得分,答错则游戏结束。
答案:首先,创建一个名为“加法游戏”的新项目,并添加一个名为“得分”的变量,初始值设为0。
然后,使用“当绿旗被点击”事件开始游戏,并设置一个10秒的倒计时。
在倒计时期间,随机生成两个数字,并使用“说‘请回答:____ + ____’2秒”的命令显示问题。
玩家需要点击正确的答案,如果答案正确,则使用“得分变量增加1”的命令,并显示得分。
如果时间结束或答案错误,游戏结束,显示“游戏结束”。
4. 题目:设计一个能够跟随鼠标移动的蝴蝶要求:在Scratch中创建一个蝴蝶角色,使其能够跟随鼠标移动。
答案:首先,从角色库中选择一个蝴蝶角色。
然后,添加一个“当绿旗被点击”事件,并在该事件中使用“永远”的循环结构。
在循环中,使用“移动到鼠标指针”的命令,使蝴蝶始终跟随鼠标指针移动。
5. 题目:制作一个简单的弹球游戏要求:创建一个弹球游戏,球从屏幕顶部落下,玩家需要控制一个挡板来接球,如果球落地则游戏结束。
蓝桥杯软件大赛真题解析
“蓝桥”杯软件大赛真题解析1、微生物增殖假设有两种微生物X 和Y,X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的X=10, Y=89,求60分钟后Y的数目。
如果X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只Y 就是最终导致Y 种群灭绝的最后一根稻草!【源程序】#include<stdio.h>main(){int x,y,t,i;x=10;y=90;t=60;for(i=1;i<=t;i++){y-=x;if(i%2==0)y*=2;if(i%3==0)x*=2;}printf("%d\n",y);}2、海盗拼酒量一群海盗(不多于20人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。
当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。
他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,...例如,有一种可能是:20,5,4,2,0#include<stdio.h>main(){int a,b,c,d;for(a=1;a<=20;a++){for( b=1;b<a;b++){for(c=1;c<b;c++){for(d=1;d<c;d++){if(a*b*c+a*b*d+a*c*d+b*c*d==a*b*c*d){printf("%d,%d,%d,%d,0\n",a,b,c,d);}}}}}}3、电视台计分规则某电视台举办了低碳生活大奖赛。
蓝桥杯软件设计大赛习题
1.语法知识vs 任务型int i = 0; while(i>3) ++i; // 循环几次?10! 共有几位数字? 100! 呢?2.描述性vs 确定性c语言宏定义与内联函数有什么区别?Java static 可否修饰内部类?一幅随机排列的扑克牌(52张),随机抽取5张,含有“对子”的概率是多少?“同花顺”的概率呢?3.二阶魔方旋转魔方可以对它的6个面自由旋转。
我们来操作一个2阶魔方(如图1所示):为了描述方便,我们为它建立了坐标系。
各个面的初始状态如下:x轴正向:绿x轴反向:蓝y轴正向:红y轴反向:橙z轴正向:白z轴反向:黄假设我们规定,只能对该魔方进行3种操作。
分别标记为:x 表示在x轴正向做顺时针旋转y 表示在y轴正向做顺时针旋转z 表示在z轴正向做顺时针旋转xyz 则表示顺序执行x,y,z 3个操作题目的要求是:从标准输入获得一个串,表示操作序列。
程序输出:距离我们最近的那个小方块的3个面的颜色。
顺序是:x面,y面,z面。
例如:在初始状态,应该输出:绿红白初始状态下,如果用户输入:x则应该输出:绿白橙初始状态下,如果用户输入:zyx则应该输出:红白绿4.连通单体面积统计BMP是常见的图像存储格式。
如果用来存黑白图像(颜色深度=1),则其信息比较容易读取。
与之相关的数据:(以下偏移均是从文件头开始)偏移:10字节, 长度4字节:图像数据真正开始的位置。
偏移:18字节, 长度4字节:位图的宽度,单位是像素。
偏移:22字节, 长度4字节:位图的高度,单位是像素。
从图像数据开始处,每个像素用1个二进制位表示。
从图片的底行开始,一行一行向上存储。
Windows规定图像文件中一个扫描行所占的字节数必须是4字节的倍数,不足的位均以0 填充。
例如,图片宽度为45像素,实际上每行会占用8个字节。
可以通过Windows自带的画图工具生成和编辑二进制图像。
需要在“属性”中选择“黑白”,指定为二值图像。
第五届蓝桥杯程序设计大赛省赛题目及答案
第五届省赛1.一个串的子串是指该串的一个连续的局部。
如果不要求连续,则可称为它的子序列。
比如对串: "abcdefg" 而言,"ab","abd","bdef" 等都是它的子序列。
特别地,一个串本身,以及空串也是它的子序列。
对两个串而言,可以有许多的共同的子序列,我们关心的是:它们所共同拥有的长度最大的子序列是多长。
以下代码实现了这个问题的求解。
请填写划线部分缺失的代码。
注意:只填写划线部分缺少的内容,不要填写任何多余的符号或注释、说明等。
例如,不要填写已经给出的小括号。
inline max(int a, int b){return a>b?a:b;}int f(char* x, char* y){if(strlen(x)==0) return 0;if(strlen(y)==0) return 0;if(*x == *y) return f(x+1, y+1) + 1;return max( ______________________ );//处理字符串}int main(){printf("%d\n", f("ac","abcd")); //2printf("%d\n", f("acebbcde1133","xya33bc11de")); //5return 0;}f(x+1,y),f(x,y+1)2.历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:pai = 4*(1-1/3+1/5-1/7 ....)参见【图1.png】这个公式简单而优美,但美中不足,它收敛的太慢了。
如果我们四舍五入保留它的两位小数,那么:累积了1项和是:4.00累积了2项和是:2.67累积了3项和是:3.47。
2012年蓝桥杯全国软件设计大赛-试题及参考答案
2012年蓝桥杯全国软件设计大赛-C语言校内选拔赛参考答案一、代码填空题(满分50分)1. strlen(str)-1;str[i]=str[j]2.a+b>c&&a+c>b&&b+c>a3.x1或x1!=0或x1>0;x1/2-24.num/100%10==3或num%1000/100==3;!num==0或者num!=05.j<=2或j<3;b[j][i]=a[i][j];i<=2或i<36.&a[i];i%4==0;printf(“\n”)7.x[i-1]+x[i-2];fabs((double)(x[i-1]-x[i]))或者fabs(x[i-1]-x[i])或者 abs(x[i-1]-x[i]);i+28.%;/;j=i,j>=1,j—或者 j=i,j>0;j--9.j=4;a[0]=k10.buf[i]!=buf[strlen(buf)-1-i]二、程序设计(满分50分)1题参考答案:#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){int n;int i,j;while(1){printf("请从键盘上输入一个大于等于2的整数:");scanf("%d",&n);j=0;if(n<2){printf("输入的数不合法!");}else if(n==2){printf("%d\n",2);break;}else{for(i=2;i<=(int)sqrt(n);i++){if(n%i==0){j=1;break;}}if(j==0){printf("%d\n",n);break;}}}printf("\n");return 0;}2题参考答案:#include "stdafx.h"#include "stdio.h"#define N 10int main(int argc, char* argv[]){int a[N]={12,78,56,34,25,67,9,89,97,46};int i,j,temp;printf("排序前的数组为:\n");for(i=0;i<N;i++){printf("%d\t",a[i]);}printf("\n");for(i=0;i<N;i++){for(j=0;j<N-1-i;j++){if(a[j]<a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}printf("排序后的数组为:\n");for(i=0;i<N;i++){printf("%d\t",a[i]);}printf("\n");return 0;}3题参考答案:#include "stdafx.h"#include "stdio.h"int main(int argc, char* argv[]){int x,y,z;for(x=0;x<=10;x++){y=20-2*x;z=30-x-y;if(x+y+z==30){printf("%d\t%d\t%d\n",x,y,z);}}return 0;}杨辉三角参考答案:#include "stdafx.h"#include "stdio.h"#define N 10int main(int argc, char* argv[]){int a[N][N]={{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0}};int i,j;for(i=1;i<N;i++){for(j=1;j<=i;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0;i<N;i++){for(j=0;j<=i;j++){printf("%d\t",a[i][j]);}printf("\n");}return 0;}5.第五题参考答案:#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){int n;int i,j,k;while(1){printf("请输入3到30之间的奇数:");scanf("%d",&n);if(n%2!=0 && n>=3 && n<=30){break;}else{printf("输入错误,");}}int m=n/2+1;for(i=1;i<=m;i++){for(j=i;j<m;j++){printf(" ");}for(k=1;k<=2*i-1;k++){printf("* ");}printf("\n");}for(i=1;i<m;i++){for(j=1;j<=i;j++){printf(" ");}for(k=1;k<=n-2*i;k++){printf("* ");}printf("\n");}return 0;}6题小孩报数参考答案:#include "stdafx.h"#include "stdio.h"#define N 30int main(int argc, char* argv[]) {int i;int a[N];int count,k=0;for(i=0;i<N;i++){a[i]=i+1;}do{count=0;for(i=0;i<N;i++){if(a[i]!=0){k++;}else{count++;}if(k==6){printf("%d\t",a[i]);a[i]=0;k=0;}}}while(count<N);return 0;}。
第五届蓝桥杯省赛b组试题及答案
第五届蓝桥杯省赛b组试题及答案第五届蓝桥杯省赛B组试题及答案一、选择题(每题5分,共20分)1. 下列哪个选项是Python语言中用于定义函数的关键字?A. defB. functionC. funcD. declare答案:A2. 在HTML中,用于定义最重要的标题的标签是?A. <h1>B. <title>C. <header>D. <h6>答案:A3. 在JavaScript中,以下哪个方法用于获取数组中最后一个元素?A. last()B. first()C. pop()D. lastElement()答案:C4. 在CSS中,以下哪个属性用于设置元素的背景颜色?A. background-colorB. bg-colorC. colorD. back-color答案:A二、填空题(每题5分,共20分)1. 在Python中,用于执行条件判断的关键字是________。
答案:if2. 在HTML中,用于创建无序列表的标签是________。
答案:<ul>3. 在JavaScript中,用于获取当前日期的函数是________。
答案:new Date()4. 在CSS中,用于设置文本颜色的属性是________。
答案:color三、简答题(每题10分,共20分)1. 请解释什么是闭包,并给出一个简单的JavaScript闭包示例。
答案:闭包是一个函数和其周围的状态(词法环境)的组合。
闭包允许函数访问其定义时的作用域链,即使在其定义的作用域外执行。
示例:```javascriptfunction createClosure() {var secret = "I'm a secret";return function() {console.log(secret);};}var myClosure = createClosure();myClosure(); // 输出:I'm a secret```2. 请简述HTML5和HTML4的主要区别。
第七届蓝桥杯程序设计大赛题目及答案
第七届省赛1. 网友年龄某君新认识一网友。
当问及年龄时,他的网友说:“我的年龄是个2 位数,我比儿子大27 岁, 如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄”请你计算:网友的年龄一共有多少种可能情况?提示:30 岁就是其中一种可能哦.请填写表示可能情况的种数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
7x-y=32. 生日蜡烛某君从某年开始每年都举办一次生日party ,并且每次都要吹熄与年龄相同根数的蜡烛现在算起来,他一共吹熄了236 根蜡烛。
请问,他从多少岁开始过生日party 的?请填写他开始过生日party 的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
26 #include<iostream> using namespace std;int main(){int i,j;int sum=0; for(i=1;i<=100;i++){ // 年龄sum=0; for(j=i;j<=100;j++){ // 蜡烛数sum=sum+j;if(sum==236){ cout<<i<<endl;break;}}}}3. 方格填数如下的10 个格子填入0~9 的数字。
要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻) 一共有多少种可能的填数方案?请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
// 用dfs 求#include<iostream> #include<cstring> #include<cmath> using namespace std;const int maxn=4;int mp[maxn][maxn];int flag[10];int ans=0;int init() {memset(mp,-10, sizeof mp); memset(flag,0, sizeof flag);}int fx[4]= {0,-1,-1,-1},fy[4]= {-1,-1,0,1};int check(int i,int j) {for(int f=0; f<4; f++) {if(abs(mp[i][j]-mp[i+fx[f]][j+fy[f]])!=1||i+fx[f]<1||j+fy[f]>4||j+fy[f]<1 ) continue;elsereturn 0;}return 1;}void dfs(int i,int j) {if(i==3&&j==4) {ans++;return ;}for(int num=0; num<=9; num++) {if(!flag[num]) { mp[i][j]=num; flag[num]=1; if(check(i,j)) if(j==4) dfs(i+1,1);elsedfs(i,j+1); flag[num]=0;}}}int main() {init();dfs(1,2);cout<<ans;}// 暴力求解#include <iostream>using namespace std;int ans=0;void swap(int *a,int *b){int *c;c=a;a=b;b=c;}int f(int a[])// 判断这种排列组合是否符合题意{if(a[0]-a[4]==-1||a[0]-a[4]==1) return 0;if(a[3]-a[4]==-1||a[3]-a[4]==1) return 0;if(a[5]-a[4]==-1||a[5]-a[4]==1) return 0;if(a[7]-a[4]==-1||a[7]-a[4]==1)return 0;if(a[8]-a[4]==-1||a[8]-a[4]==1)return 0;if(a[9]-a[4]==-1||a[9]-a[4]==1)return 0;if(a[1]-a[4]==-1||a[1]-a[4]==1)return 0;if(a[1]-a[5]==-1||a[1]-a[5]==1)return 0;if(a[1]-a[6]==-1||a[1]-a[6]==1)return 0;if(a[0]-a[5]==-1||a[0]-a[5]==1)return 0;if(a[2]-a[5]==-1||a[2]-a[5]==1)return 0;if(a[8]-a[5]==-1||a[8]-a[5]==1)return 0;if(a[9]-a[5]==-1||a[9]-a[5]==1)return 0;if(a[6]-a[5]==-1||a[6]-a[5]==1)return 0;if(a[6]-a[9]==-1||a[6]-a[9]==1)return 0;if(a[6]-a[2]==-1||a[6]-a[2]==1)return 0;if(a[3]-a[0]==-1||a[3]-a[0]==1)return 0;if(a[3]-a[7]==-1||a[3]-a[7]==1)return 0;if(a[8]-a[7]==-1||a[8]-a[7]==1)return 0;if(a[8]-a[3]==-1||a[8]-a[3]==1)return 0;if(a[9]-a[8]==-1||a[9]-a[8]==1)return 0;if(a[1]-a[0]==-1||a[1]-a[0]==1)return 0;if(a[1]-a[2]==-1||a[1]-a[2]==1)return 0;}void perm(int a[],int m,int len)//列举出0-9 所有的组合进行判断{if(m==len-1){if(f(a)) ans++;return ;}for(int i=m;i<len;i++){swap(a[m],a[i]); perm(a,m+1,len); swap(a[m],a[i]);} } int main() {int a[10] = {0,1,2,3,4,5,6,7,8,9}; perm(a,0,10);cout<<ans<<endl; return 0;}4. 快速排序排序在各种场合经常被用到。
蓝桥杯试题及答案
蓝桥杯试题及答案蓝桥杯是面向全国高校计算机专业学生的程序设计竞赛,由工业和信息化部人才交流中心主办,旨在提高学生的编程能力、算法设计能力以及团队合作能力。
以下是一份蓝桥杯试题及答案的示例,供参考。
### 蓝桥杯程序设计竞赛试题及答案#### 题目一:求最大公约数题目描述:给定两个正整数 a 和 b,请编写一个程序计算它们的最大公约数(GCD)。
输入格式:输入包含两个整数 a 和 b,用空格分隔。
输出格式:输出 a 和 b 的最大公约数。
样例输入:```24 36```样例输出:``````答案:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int a, b;scanf("%d %d", &a, &b);printf("%d\n", gcd(a, b));return 0;}```#### 题目二:字符串反转题目描述:编写一个程序,实现对输入的字符串进行反转。
输入格式:输入一个字符串。
输出格式:输出反转后的字符串。
样例输入:```Hello World```样例输出:`````ldrow olleH```答案:```c#include <stdio.h>#include <string.h>int main() {char str[1000];scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) { printf("%c", str[i]);}return 0;}```#### 题目三:二分查找题目描述:在一个已排序的数组中,使用二分查找算法找出一个特定元素的位置。
第11届蓝桥杯大赛个人赛(软件类)省级模拟赛填空题
第11届蓝桥杯⼤赛个⼈赛(软件类)省级模拟赛填空题第1题:排列组合问题描述 将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被⽤上,单词不⼀定有具体的英⽂意义。
请问,总共能排列如多少个不同的单词。
解题思路 计算策略:,结果 = 全排列 - 重复统计的单词数。
先求出7个单词的全排列S=A77=7×6×5×4×3×2×1=50405个不重复单词全排列A=A55=5×4×3×2×1=1205个不重复单词有6个间隔□I□L□N□O□Q□情况1:“AA”绑⼀起放在6个间隔中B=C16=6情况2:“AA”分开放在6个间隔中C=C26=6×52×1=15计算⼀下得到答案R=S−A×(B+C)=5040−2520=2520错误分析 ⼀开始想7个单词全排列,A77=5040,填上就万事⼤吉了吧。
定睛⼀看 它有两个AA,那么例如“AAILNOQ”的情况在全排列的情况下会统计两次,不符题意第2题:⼩学计算问题描述 在计算机存储中,12.5MB是多少字节?解题思路 12.5MB=12.5×1024×1024B=13,107,200B相关资料: 1B(Byte 字节) = 8Bit 1KB (Kilobyte 千字节) = 1024Byte, 1MB (Megabyte,兆字节,简称“兆”) = 1024KB, 1GB (Gigabyte,吉字节,⼜称“千兆”) = 1024MB, 1TB (Terabyte,太字节,或百万兆字节) = 1024GB,其中1024=2^10 (2的10次⽅)。
错误分析 可能把字节看成千字节,或者混淆了字节和千字节。
第3题:括号序列问题描述 由1对括号,可以组成⼀种合法括号序列:()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.语法知识vs 任务型
int i = 0; while(i>3) ++i; // 循环几次?
10! 共有几位数字? 100! 呢?
2.描述性vs 确定性
c语言宏定义与内联函数有什么区别?
Java static 可否修饰内部类?
一幅随机排列的扑克牌(52张),随机抽取5张,含有“对子”的概率是多少?“同花顺”的概率呢?
3.二阶魔方旋转
魔方可以对它的6个面自由旋转。
我们来操作一个2阶魔方(如图1所示):
为了描述方便,我们为它建立了坐标系。
各个面的初始状态如下:
x轴正向:绿
x轴反向:蓝
y轴正向:红
y轴反向:橙
z轴正向:白
z轴反向:黄
假设我们规定,只能对该魔方进行3种操作。
分别标记为:
x 表示在x轴正向做顺时针旋转y 表示在y轴正向做顺时针旋转z 表示在z轴正向做顺时针旋转
xyz 则表示顺序执行x,y,z 3个操作
题目的要求是:
从标准输入获得一个串,表示操作序列。
程序输出:距离我们最近的那个小方块的3个面的颜色。
顺序是:x面,y面,z面。
例如:在初始状态,应该输出:
绿红白
初始状态下,如果用户输入:
x
则应该输出:
绿白橙
初始状态下,如果用户输入:
zyx
则应该输出:
红白绿
4.连通单体面积统计
BMP是常见的图像存储格式。
如果用来存黑白图像(颜色深度=1),则其信息比较容易读取。
与之相关的数据:
(以下偏移均是从文件头开始)
偏移:10字节, 长度4字节:图像数据真正开始的位置。
偏移:18字节, 长度4字节:位图的宽度,单位是像素。
偏移:22字节, 长度4字节:位图的高度,单位是像素。
从图像数据开始处,每个像素用1个二进制位表示。
从图片的底行开始,一行一行向上存储。
Windows规定图像文件中一个扫描行所占的字节数必须是4字节的倍数,不足的位均以0 填充。
例如,图片宽度为45像素,实际上每行会占用
8个字节。
可以通过Windows自带的画图工具生成和编辑二进制图像。
需要在“属性”中选择“黑白”,指定为二值图像。
可能需要通过查看| 缩放| 自定义... 把图像变大比例一些,
更易于操作。
图像的左下角为图像数据的开始位置。
白色对应1,黑色对应0
我们可以定义:两个点距离如果小于2个像素,则认为这两个点连通。
也就是说:以一个点为中心的九宫格中,围绕它的8个点与它都是连通的。
如:t1.bmp 所示,左下角的点组成一个连通的群体;
而右上角的点都是孤立的。
程序的目标是:根据给定的黑白位图,分析出所有独立连通的群体,
输出每个连通群体的面积。
所谓面积,就是它含有的像素的个数。
输入数据固定存在in.bmp中。
如示例的in.bmp,
程序应该输出:
12
81
52
133
该输出表示:共有4个连通群体。
输出的连通体面积间的顺序可以随意。
5.蚂蚁问题
有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。
木杆很细,只能同时通过一只蚂蚁。
开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。
当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。
假设蚂蚁们每秒钟可以走一厘米的距离。
编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。
6.搜索问题
一个很大的数组中,有几乎一半的记录是相同的。
如何找出这个相同记录的值?
7.国庆星期几?
1949~2012 几个国庆节是星期日?
用windows日历?
用Excel?
8.四点平均距离
已知平面上若干个点的坐标。
需要求出在所有的组合中,4个点间平均距离的最小值(四舍五入,保留2位小数)。
比如有4个点:a,b,c,d, 则平均距离是指:ab, ac, ad, bc, bd, cd 这6个距离的平均值。
每个点的坐标表示为:横坐标,纵坐标
坐标的取值范围是:1~1000
例如,如果程序输入:
10,10
20,20
80,50
10,20
20,10
则程序应该输出:
11.38
9.排列问题
计算3个A,2个B可以组成多少种排列的问题(如:AAABB, AABBA)是《组
合数学》的研究领域。
但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决问题。
下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题。
请完善它。
int f(int m, int n)
{
if(m==0 || n==0) return 1;
return _ _____________;
}
参考答案:f(m-1, n) + f(m, n-1)
10.取5次
A B C D中取5次,每个字母都可以重复取出,形成一个串。
现在要求,串中A出现的次数必须为偶数(0次也算偶数)。
求可以形成多少种可能的串。
参考答案:
528
// 取n次,A出现奇数次
public static int g(int n)
{
if(n==1) return 1;
return 3 * g(n-1) + f(n-1);
}
// 取n次,A出现偶次
public static int f(int n)
{
if(n==1) return 3;
return 3 * f(n-1) + g(n-1);
}
public static void main(String[] args)
{
System.out.println(f(5));
}
11.。