【第二届蓝桥杯】反转串

本文介绍了一种使用递归方式实现字符串反转的C++代码示例。通过交换字符串首尾字符并递归调用自身来完成整个字符串的反转。文章包含了一个简单的main函数用于展示反转效果。

题目:反转串


我们把“cba”称为“abc”的反转串。

下面的代码可以把buf中的字符反转。其中n表示buf中待反转的串的长度。请补充缺少的代码。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
void reverse_str(char*buf, int n)
{
    if(n<2) return;
    char tmp = buf[0];
    buf[0] = buf[n-1];
    buf[n-1] = tmp;
    _______________________________;

}


答案:reverse_str(buf+1, n-2)


C++代码:

#include <iostream>
using namespace std;
void reverse_str(char*buf, int n)
{
    if(n<2) return;
    char tmp = buf[0];
    buf[0] = buf[n-1];
    buf[n-1] = tmp;
    reverse_str(buf+1, n-2);
} 
int main() {
	char buf[11] = {'a','d','c','d','e','f','q','u','a','o'};
	reverse_str(buf, 10);
	cout << buf; 
	return 0;
}


第二届蓝桥杯部分试题与答案

### 关于第十二届蓝桥杯第二场单片机省赛的信息 尽管当前并未提供具体关于第十二届蓝桥杯第二场单片机省赛的试题及其解答,但从以往的比赛模式来看,可以推测其可能涉及的内容和技术要点。以下是基于过往比赛经验以及单片机技术的核心知识点所整理的相关信息。 #### 1. **竞赛形式与考察重点** 蓝桥杯单片机设计与开发项目的省赛通常会围绕实际工程应用展开,主要测试参赛者对硬件电路的理解能力、嵌入式程序编写能力和调试技巧。常见的考点包括但不限于以下方面[^1]: - 单片机基本外设的操作(如定时器/计数器、口通信、ADC/DAC模块等) - 中断机制的设计与实现 - 实时系统的构建与优化 - 基础算法在嵌入式环境中的移植与适配 这些内容往往通过具体的任务场景体现出来,比如控制LED灯闪烁频率、读取传感器数据并显示到LCD屏上或者完成简单的无线通信功能等。 #### 2. **典型题目分析** 虽然无法确切得知本届赛事的具体考题,但可以根据往年的命题风格预测一些可能性较大的方向,并给出相应的解决方案框架。 ##### 题目一:按键检测与延时处理 **描述**: 设计一段程序用于监测外部按钮状态变化,在按下时点亮指定LED指示灯;松开后熄灭该灯泡。同时需注意消除机械开关抖动影响。 ```c #include <reg52.h> sbit LED = P1^0; // 定义P1.0作为输出端连接至发光二极管正极 sbit KEY = P3^2; // 将P3.2配置成输入引脚接收来自按键信号 void delay(unsigned int time){ while(time--){ somenop; } } void main(){ unsigned char key_state=0; TMOD |= 0x01; // 设置T0工作方式为模式1(16位自动重装载) TH0=(65536-500)/256;// 初始化高字节初值对应约5ms周期 TL0=(65536-500)%256;// 初始低8位数值设定同样参数 EA=1; // 开启全局中断允许标志位EA ET0=1; // 启用T0溢出触发事件响应使能ET0 TR0=1; // 启动定时期间运行过程 while(1){ if(KEY==0){ // 当前时刻发现有键按压动作发生 delay(1); // 加短暂停留时间防止误判现象产生 if(!KEY && !key_state){ key_state=1; LED=~LED; // 反转目标器件电平从而改变视觉效果呈现 while(!KEY); {delay(1);} }else{ continue; } }elseif(key_state&&KEY){ key_state=0; } } } ``` 上述代码片段展示了如何利用软件方法解决按键去抖问题的同时实现了基础的状态切换逻辑。 #### 3. **总结建议** 对于准备参加此类比赛的学生而言,扎实掌握基础知识非常重要。平时应多加练习各种类型的实验案例积累实战经验。另外也要熟悉常用工具链操作流程以便快速搭建开发平台进行原型验证。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Homilier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值