第6届蓝桥杯单片机决赛试题
- 格式:pdf
- 大小:335.81 KB
- 文档页数:4
(完整word版)蓝桥杯练习系统题目汇总(word版可编辑修改)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整word版)蓝桥杯练习系统题目汇总(word版可编辑修改))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整word版)蓝桥杯练习系统题目汇总(word版可编辑修改)的全部内容。
蓝桥杯练习系统题目汇总:入门训练1. Fibonacci数列问题描述Fibonacci数列的递推公式为:F n=F n—1+F n-2,其中F1=F2=1.当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。
输入格式输入包含一个整数n。
输出格式输出一行,包含一个整数,表示F n除以10007的余数.说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单.样例输入10样例输出55样例输入22样例输出7704数据规模与约定1 〈= n 〈= 1,000,000。
参考代码:c++1.#include〈stdlib.h〉2.#include<stdio。
h>3.#define MOD 100074.#define MAXN 10000015.int n,i, F[MAXN];6.int main()7.{8.scanf(”%d",&n);9.F[1]= 1;10.F[2]= 1;11.for(i = 3;i <= n;++i)12.F[i]= (F[i-1] + F[i-2])%MOD;13.printf(”%d\n”,F[n]);14.return0;15.}java:1.import java。
第六届省赛1.方程整数解方程: a^2 + b^2 + c^2 = 1000(或参见【图1.jpg】)这个方程有整数解吗?有:a,b,c=6,8,30 就是一组解。
你能算出另一组合适的解吗?请填写该解中最小的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
10#include<stdio.h>int main(){int a,b,c;for(a=1;a*a<=1000;a++){for(b=1;b*b<=1000;b++){for(c=1;c*c<=1000;c++){if(a*a+b*b+c*c==1000){printf("%d %d %d\n",a,b,c);}}}}return 0;}2.星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。
比如:2015-02-19 请严格按照格式书写。
不能出现其它文字或符号。
2017-08-05#include <stdio.h>int main(){int monthDays[12]={31,28,31,30,31,30,31,31,30,31,30,31};int days=1000;int year=2014, month=11, day=9;int i;for(i=0;i<days;i++){day++;if(day>monthDays[month-1]){day=1;month++;if(month>12){month=1;year++;if((year%400==0) ||(year%4==0 && year%100!=0))monthDays[1]=29;elsemonthDays[1]=28;}}}printf("%d-%d-%d\n",year,month,day);getchar();return 0;}3.奇妙的数字小明发现了一个奇妙的数字。
本科决赛1、数量周期【结果填空】(满分9分)复杂现象背后的推动力,可能是极其简单的原理。
科学的目标之一就是发现纷繁复杂的自然现象背后的简单法则。
爱因斯坦的相对论是这方面的典范例证。
很早的时候,生物学家观察某区域某种昆虫的数量(称为虫口数)之逐年变化规律,就十分迷惑:有的时候是逐渐增多达到一个平衡值。
有的时候在两个数字间周期跳动。
有的时候则进入一片混乱,类似随机数字一样变化(称为混沌现象)。
慢慢地,人们从数学中更清晰地观察到了这一现象,并因此开创了:符号动力学、非线性动力学等研究领域。
一个著名的虫口数目简化模型如下:x' = x * (1 - x) * r这里,x x' r 都是浮点数。
其中,x 表示当年的虫口数,x' 表示下一年的虫口数。
它们的取值范围在0 与1 之间,实际上表示的是:虫口的总数占环境所能支持的最大数量的比率。
r 是常数(环境参数),r的取值范围在[0,4]。
令人惊讶的是:这个简单的迭代公式有着不同寻常的神秘性质!一般来说,多次迭代后,虫口数的稳定模式与x的初始值无关,而与r 有关!例如:无论x初始值是多少,当r = 2.5 的时候,x 多次迭代后会趋向于0.6。
而当r = 3.2 的时候,x 的值会趋向于在0.799 与0.513 之间周期性摆动。
那么,r = 3.62 的时候,你观察到有什么周期现象发生吗?不需要提交源代码,只要写出你的结论即可!答案写在:“解答.txt”中,不要写在这里。
2、提取子串【代码填空】(满分12分)串“abcba”以字母“c”为中心左右对称;串“abba”是另一种模式的左右对称。
这两种情况我们都称这个串是镜像串。
特别地,只含有1个字母的串,可以看成是第一种模式的镜像串。
一个串可以含有许多镜像子串。
我们的目标是求一个串的最大镜像子串(最长的镜像子串),如果有多个最大镜像子串,对称中心靠左的优先选中。
例如:“abcdeefghhgfeiieje444k444lmn”的最大镜像子串是:“efghhgfe”下面的静态方法实现了该功能,请仔细阅读并分析代码,填写空白处的代码,使得程序的逻辑合理,结果正确。
1.历届试题矩阵翻硬币时间限制:1.0s 内存限制:256.0MB问题描述小明先把硬币摆成了一个n 行m 列的矩阵。
随后,小明对每一个硬币分别进行一次Q 操作。
对第x行第y列的硬币进行Q 操作的定义:将所有第i*x 行,第j*y 列的硬币进行翻转。
其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。
当小明对所有硬币都进行了一次Q 操作后,他发现了一个奇迹——所有硬币均为正面朝上。
小明想知道最开始有多少枚硬币是反面朝上的。
于是,他向他的好朋友小M寻求帮助。
聪明的小M告诉小明,只需要对所有硬币再进行一次Q操作,即可恢复到最开始的状态。
然而小明很懒,不愿意照做。
于是小明希望你给出他更好的方法。
帮他计算出答案。
输入格式输入数据包含一行,两个正整数n m,含义见题目描述。
输出格式输出一个正整数,表示最开始有多少枚硬币是反面朝上的。
样例输入2 3样例输出1数据规模和约定对于10%的数据,n、m <= 10^3;对于20%的数据,n、m <= 10^7;对于40%的数据,n、m <= 10^15;对于10%的数据,n、m <= 10^1000(10的1000次方)。
2.历届试题兰顿蚂蚁时间限制:1.0s 内存限制:256.0MB问题描述兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。
平面上的正方形格子被填上黑色或白色。
在其中一格正方形内有一只“蚂蚁”。
蚂蚁的头部朝向为:上下左右其中一方。
蚂蚁的移动规则十分简单:若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。
规则虽然简单,蚂蚁的行为却十分复杂。
刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,蚂蚁经过漫长的混乱活动后,会开辟出一条规则的“高速公路”。
蚂蚁的路线是很难事先预测的。
你的任务是根据初始状态,用计算机模拟兰顿蚂蚁在第n步行走后所处的位置。
蓝桥杯第六届c语言试题及答案蓝桥杯第六届C语言试题及答案1. 选择题1.1. 以下哪个选项是C语言中的关键字?A. intB. integerC. varD. string答案: A1.2. C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案: A2. 填空题2.1. 在C语言中,用于定义一个整型变量的关键字是____。
答案: int2.2. C语言中,用于数组定义的关键字是____。
答案: array3. 编程题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 length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```4. 简答题4.1. 简述C语言中指针的概念及其用途。
蓝桥杯刷题--第六届蓝桥杯题头:本内容所有题⾯都来⾃博客:https:///ryo_218/article/details/79704030在此感谢!1,奖券数⽬有些⼈很迷信数字,⽐如带“4”的数字,认为和“死”谐⾳,就觉得不吉利。
虽然这些说法纯属⽆稽之谈,但有时还要迎合⼤众的需求。
某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算⼀下,如果任何两张奖券不重号,最多可发出奖券多少张。
思路:5重循环,搞定。
#include <iostream>#include <cstdio>using namespace std;int main(){int ans = 0;for(int a = 1; a <= 9; ++a)for(int b = 0; b <= 9; ++b)for(int c = 0; c <= 9; ++c)for(int d = 0; d <= 9; ++d)for(int e = 0; e <= 9; ++e){if(a != 4 && b != 4 && c != 4 && d != 4 && e != 4){ans++;}}printf("%d\n", ans);}View Code2、星系炸弹在X星系的⼴袤空间中漂浮着许多X星⼈造“炸弹”,⽤来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
⽐如:阿尔法炸弹2015年1⽉1⽇放置,定时为15天,则它在2015年1⽉16⽇爆炸。
有⼀个贝塔炸弹,2014年11⽉9⽇放置,定时为1000天,请你计算它爆炸的准确⽇期。
请填写该⽇期,格式为 yyyy-mm-dd 即4位年份2位⽉份2位⽇期。
⽐如:2015-02-19请严格按照格式书写。
不能出现其它⽂字或符号。
准考证号工位号注意:只填写准考证号和工位号,否则试卷作废密 封 线----------------------------------------------------------------------------- 2015年“蓝桥杯” 第六届全国软件和信息技术专业人才大赛个人赛(电子类)决赛嵌入式设计与开发项目竞赛时间:5小时题 号 一 二 三 总 分 配 分 10 30 60 100分 得 分“电压测量与互补PWM 信号输出”设计任务书功能简述设计一个电压测量与脉宽调制信号输出设备,设备能够检测模拟信号输入,并根据检测到的电压值,计算出两路互补脉宽调制信号的占空比,输出信号频率可以通过按键调整,设备硬件部分主要由电源部分、控制器单元、按键部分、存储单元和显示部分组成,系统框图如图1所示:图1 系统框图CT117E 考试板电路原理图、I2C 总线驱动程序、LCD 驱动程序及本题涉及到的芯片资料可参考计算机上的电子文档。
电路原理图、程序流程图及相关工程文件请以考生准考证命名,并保存在指定文件夹中(文件夹名为考生准考证号,文件夹位于Windows 桌面上)。
设计任务及要求1.ADC测量使用STM32处理器片内ADC采集电位器R37输出电压,记为V o,并通过LCD显示电压值,保留小数点后两位有效数字。
2.互补PWM输出使用STM32处理器TIM1通道(PA9、PB14)输出互补脉宽调制信号,PA9输出信号占空比(P)与电位器输出电压之间的关系为P = V/3.3。
通过按键控制信号启动、停止及调节信号输出频率。
说明:断开PA9 - TXD1、PB14 - N_SD0上的跳线连接。
3.按键设置“B1”按键设定为“启动/停止”按键,切换信号输出状态,“启动”状态下,根据ADC 采集到的电压值输出互补的脉宽调制信号,指示灯LD1点亮,“停止”状态下,两路输出通道PA9、PB14持续输出低电平,指示灯LD1熄灭。
设计任务及要求
1.过载监测与货物类型识别
1.1 空载、过载监测
使用电位器RB2输出电压V o模拟压力变送器输出,设备实时采集电位器输出电压,完成货物空载、过载监测功能。
1.1.1 当0 <V o<1V时,判断为空载,L1点亮;
1.1.2 当1 ≤V o<4V时,判断为非空载,货物被填装到传送起始位置,L2点亮;
1.1.3 当V o≥4V时,判断为过载状态,L3以0.5秒为间隔闪烁提醒,蜂鸣器报警
提示。
说明:空载状态下,所有数码管熄灭。
1.2 货物类型判断
货物被填装到传送起始位置后,系统启动超声波测距功能,完成货物类型判断,数
码管显示界面如图2所示:
1.2.1 当超声探头与货物之间的距离小于等于30cm时判断为I类货物;
1.2.2 当超声探头与货物之间的距离大于30cm时判断为II类货物。
1 8 8 3
2 8 8 2
界面编号熄灭距离:32cm 熄灭II类货物
图2. 数码管显示界面1-货物类型显示
说明:
1. 货物类型显示格式:I类货物- 数字1、II类货物- 数字2;
2. A3草稿纸短边接近30cm,可用于验证测距结果。
2.货物传送
在非空载、非过载的前提下,通过按键控制继电器吸合,启动货物传送过程,并通
过数码管实时显示剩余的传送时间,倒计时结束后,继电器自动断开,完成本次传
送过程,数码管显示格式如图3所示:
2 8 8 8 8 8 0 1
界面编号熄灭剩余传送时间:1秒
图3. 数码管显示界面2-剩余传送时间显示
说明:继电器吸合时,指示灯L10点亮,断开时L10熄灭。
3.按键功能描述
3.1 按键S4定义为“启动传送”按键,按键按下后,启动货物传送过程。
说明:按键S4在空载、过载、传送过程中无效。
3.2 按键S5定义为“紧急停止”按键,按键按下后,继电器立即断开,指示灯L4
以0.5秒为间隔闪烁,剩余传送时间计时停止。
再次按下S5,传送过程恢复,
L4熄灭,恢复倒计时功能,继电器吸合,直到本次传送完成。
说明:按键S5仅在传送过程中有效。
3.3 按键S6定义为“设置”按键,按下S6按键,调整I类货物传送时间,再次按
下S6按键,调整II类货物传送时间,第三次按下S6,保存调整后的传送时间
到E2PROM,并关闭数码管显示。
设置过程中数码管显示界面如图4所示:
3 8 8 0 2 8 0 4
界面编号熄灭I类:传送时间2秒熄灭II类:传送时间4秒
图4. 数码管显示界面3-传送时间设置界面
说明:
1. 货物传送时间可设定范围为1-10秒,通过按键S7调整;
2. “设置”按键S6、“调整”按键S7仅在空载状态下有效;
3. 通过按键S6切换选择到不同货物类型的传送时间时,显示该类货物传送
时间的数码管闪烁。
4.数据存储
I、II类型货物的传送时间在设置完成后需要保存到E2PROM中,设备重新上电后,
能够恢复最近一次的传送时间配置信息。
5.上电初始化状态与工作流程说明
5.1 I类设备默认传送时间为2秒,II类设备为4秒;
5.2 最终作品提交前,将RB2输出电压调整到最小值,确保设备处于空载状态;
6.其它
建立一个准考证号命名的txt文档,写出作品设定的单片机内部振荡器频率。
7.电路原理图设计
假定设备使用压力感应电阻R FS完成过载监测功能,压力变化与压力感应电阻阻值之间的关系如图5所示,使用简单阻容元器件、三极管、运算放大器等设计电路,当货物重量小于1000g时,电路驱动继电器吸合,否则继电器断开,设计电路原理图并说明电路工作原理。
图5. 压力-电阻值关系曲线。