第六届蓝桥杯单片机决赛试题
- 格式:pdf
- 大小:338.95 KB
- 文档页数:4
第六届省赛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.过载监测与货物类型识别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 32 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仅在传送过程中有效。
一.结果填空题。
1.求最大公约数//辗转相除,求两个数的最大公约数public static int gcd(int n,int m){ if(n == 0) return m;return gcd(m%n,n);}//最小公倍数 = n*m/gcd(n,m)public static int gbs(int n,int m){ return n*m/gcd(n, m);}2.a 的n 次幂public static int f(int a,int n){ int x = 1;for(int i=0;i<n;i++) x = x*a;return x;}// a%p b%p == (a+b)%p = (a%p+b%p)// (a*b)%p = ((a%p)*(b%p))%p// a 的 n 次幂对 p取模public static int f2(int a,int n,int p){ int x = 1;for(int i=0;i<n;i++) x = (x*a)%p;return x;}3.第n个素数。
素数是不能在进行等分的整数,比如 7,11。
而9不是素数,因为它可以平分为3等分,一般认为最小的素数是2,接着是3,5,。
请问,第100002(十万零二)个素数是多少。
请注意:2是第一个素数,3是第二个素数,一次类推筛法:public static void getSuShu(int n){int N = 1000*1000*10;byte[] a = new byte[N];for (int i = 2; i < N/2; i++) {if(a[i] == 1)continue;//和数没有资格参加筛法for (int k = 2; k < N/i; k++) {if(i*k<N) a[i*k] = 1;}}int m = 0;for (int i = 2; i < N; i++) {if(a[i] == 0){m++;if(m == n)System.out.println("=="+i+" ");}}System.out.println("m == "+m);}4.在n个球中,任意去除m个(不放回),有多少种取法?算法实现:public class Test_01{// 在n个球中,任意去除m个(不放回),有多少种取法?public static int test_01(int n , int m ){ // 出口设计。
蓝桥杯训练试题及答案1. 单项选择题请从以下选项中选择最符合题意的答案。
(1) 以下哪个选项是Python语言的解释器?A. JavaB. Node.jsC. PythonD. Ruby答案:C(2) 在HTML中,用于定义最重要的标题的标签是什么?A. <h1>B. <h6>C. <p>D. <div>答案:A2. 多项选择题请从以下选项中选择所有符合题意的答案。
(1) 以下哪些是数据结构中的基本概念?A. 栈B. 队列C. 树D. 循环答案:A, B, C(2) 在JavaScript中,哪些关键字用于声明变量?A. varB. letC. constD. function答案:A, B, C3. 判断题请判断以下陈述是否正确。
(1) 在C语言中,数组的索引从1开始。
答案:错误(2) 在数据库中,主键用于唯一标识表中的每条记录。
答案:正确4. 填空题请根据题目要求填写适当的内容。
(1) 在Python中,用于定义函数的关键字是____。
答案:def(2) 在HTML中,用于插入图片的标签是____。
答案:<img>5. 简答题请简要回答以下问题。
(1) 什么是算法的时间复杂度?答案:算法的时间复杂度是指算法执行时间随输入规模增长的变化趋势,通常用大O表示法来描述。
(2) 请简述面向对象编程的三大特性。
答案:面向对象编程的三大特性包括封装性、继承性和多态性。
6. 编程题请编写一个函数,实现将输入的字符串反转。
(1) 编程语言:Python答案:```pythondef reverse_string(s):return s[::-1]```(2) 编程语言:JavaScript答案:```javascriptfunction reverseString(s) {return s.split('').reverse().join('');}```。
蓝桥杯第六届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请严格按照格式书写。
不能出现其它⽂字或符号。
本科决赛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”下面的静态方法实现了该功能,请仔细阅读并分析代码,填写空白处的代码,使得程序的逻辑合理,结果正确。
准考证号工位号注意:只填写准考证号和工位号,否则试卷作废密 封 线----------------------------------------------------------------------------- 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熄灭。
准考证号
工位号
注意:只填写准考证号和工位号,否则试卷作废
密 封 线
----------------------------------------------------------------------------- 2015年“蓝桥杯” 第六届全国软件和信息技术专业人才大赛个人赛
(电子类)决赛单片机设计与开发项目
竞赛时间:5小时
题 号 一 二 三 总分 配 分 10分 30分 60分 100分 得 分
“智能物料传送系统”设计任务书
功能简述
智能物料传送系统能够实现货物类型判断、过载监测、紧急停止和系统参数存储记录等功能。
系统硬件部分主要由按键电路、显示电路、数据存储电路、传感器检测电路及单片机系统组成,系统框图如图1所示:
图1. 系统框图
I2C 总线驱动程序、CT107D 单片机考试平台电路原理图以及本题所涉及到的芯片数据手册,可参考计算机上的电子文档。
原理图文件、程序流程图及相关工程文件请以考生号命名,并保存在计算机上的考生文件夹中(文件夹名为考生准考证号,文件夹位于 Windows 桌面上)。
设计任务及要求
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. 压力-电阻值关系曲线
项目名称得分评卷人
电路设计
一. 电路原理图设计
根据设计任务要求,使用Protel 99se或Altium Designer Summer09软件设计电路原理图,标明元器件参数,说明电路工作原理。
原理图文件保存在考生文件夹中(文件夹以考生的准考证号命名)。
项目名称得分评卷人
程序设计
二. 程序编写及流程图绘制
1.画出程序流程图,保存在考生文件夹中;
2.按照设计要求完成程序设计任务,并将工程文件保存在考生文件夹中。
项目名称得分评卷人
硬件调试
三. 软、硬件统调
将编译通过的程序下载到单片机芯片中,进行软、硬件统调。
1.系统初始化状态;
2.LED、蜂鸣器报警指示功能;
3.数码管显示数据及显示界面切换功能;
4.继电器时序控制功能;
5.货物空载、过载判断功能;
6.货物类型判断功能;
7.按键控制与不同状态下的按键功能锁定;
8.EEPROM参数存储功能。