岗位是软件(嵌入式),题目中会涉及到单片机的内容,在其他如tp的笔试中没有;
编程题采用核心代码模式,不用处理输入输出nice!
1.编程:字符串数组中的一个不同字符,返回位置
- 注意:
- 一般编程习惯下标是0开始,而它这里位置是从1开始!
- else只和最近的if匹配!
- 字符串数组与二维指针 与指针数组:字符串数组 作为 形参为二维指针的 输入,不可直接输入,应该借助指针数组
char str[3][20] = {"abcd","abcd","cbcc"}; //==字符串数组 作为 形参为二维指针的 输入,不可直接输入,应该借助指针数组 char *p[3];//指针数组 p[0] = str[0];p[1] = str[1];p[2] = str[2];
- 暴力解法:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Point {
int x;
int y;
};
struct Point pos(char** mat, int matLen ) {
// write code here
int len = strlen(mat[0]);
struct Point poi;
int fg = 0;
for (int i = 0; i < len; i++) {
if (mat[0][i] != mat [1][i]) {
fg = 1;
poi.y = i+1;
}
}
if (fg == 1) //0,1不同
{
for (int i = 0; i < len; i++) {
if (mat[0][i] != mat [2][i]) {//0,2不同
poi.x = 1;
return poi;
}
}
poi.x = 2;
return poi;
}
if(fg ==0)//0,1同
{
for (int j = 2; j < matLen; j++) {
for (int i = 0; i < len; i++) {
if (mat[0][i] != mat [j][i]) {
poi.x = j+1;
poi.y = i+1;
return poi;
}
}
}
}
return poi;
}
int main(){
char str[3][20] = {"abcd","abcd","cbcc"};
//字符串数组 作为 形参为二维指针的 输入,不可直接输入,应该借助指针数组
char *p[3];//指针数组
p[0] = str[0];p[1] = str[1];p[2] = str[2];
struct Point poss = pos(p,3);
printf("%d %d",poss.x,poss.y);
}
2.编程2:判断一个字符串中有几个“haixin”
- 暴力:
- 长度小于6返回
- 否则,找到h,再判断后几个是否也aixin
- 优化:KMP算法。但是这里由于模式串是“haixin”,使用KMP似乎优势不大
- KMP算法:
- 在一个串中查找是否出现过另一个串:当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。
- 两类经典问题:字符串匹配,重复子串问题lc459(当一个字符串由重复子串组成的,最长相等前后缀不包含的子串就是最小重复子串)
- next数组:前缀表里,统计了各个位置为终点字符串的最长相同前后缀的长度。
3.选择题
- linux shell脚本的输出结果
- linux系统交换分区的作用:
- 作用:完成虚拟存储、用磁盘空间模拟硬盘空间、允许应用程序使用多于实际内存的存储容量
- 类似于windows的 虚拟内存,作用是在物理内存(即实际内存)使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用
- 使用 swap 交换分区 优点是,通过操作系统的调度,应用程序实际可以使用的内存空间将远远超过系统的物理内存。由于硬盘空间的价格远比 RAM 要低,因此这种方式无疑是经济实惠的。但速度比实际内存低
- 单片机编程语言C为主,汇编为辅;
- 单片机是同步系统:单片机中的各个模块是同步工作的,模块间通过统一的节拍来工作,这个统一节拍就是单片机的时钟
- 单片机的时间单位都是时钟节拍的整数倍;单片机内部在一个时钟节拍内只能做一件事情,所以单片机发现一些变化或者做一些事情的最小时间单位就是1个时钟节拍;
- 主频越高性能越高:时钟周期的长度即快慢影响了单片机的速度,所以这个时钟就叫做单片机的主频;
- 上拉下拉电阻:
- 作用
- 消除信号线的浮动状态,确保在未被外部设备控制时,信号线具有明确的状态。
- 防静电反干扰:因为管脚悬空就比较容易接受外界的电磁干,对于某些芯片,为了防止静电造成损坏,不用的管脚不能悬空,
- 电阻匹配,抑制反射波干扰
- 提高芯片输入信号的噪声容限增强抗干扰能力。
- 上拉电阻还可以通过上拉至更高电平,增大电流,增强引脚的驱动能力
- 作用
- 单片机基础知识:https://blog.csdn.net/qq_37196748/article/details/130345635