嵌入式八股-面试30题(20240812)
-
TCP和UDP的区别是什么?
- **TCP(Transmission Control Protocol)**是面向连接的协议,提供可靠的、顺序的数据传输。它通过三次握手建立连接,并在数据传输过程中使用确认和重传机制来确保数据的正确性。TCP还支持流量控制和拥塞控制。
- **UDP(User Datagram Protocol)**是无连接的协议,不保证数据的顺序和可靠性。UDP适用于实时应用,如视频流、在线游戏等,它的优点是传输速度快,开销小,但容易丢包。
-
HTTP、GET、POST的传输过程是什么?
- **HTTP(HyperText Transfer Protocol)**是用于传输超文本的应用层协议。客户端通过HTTP向服务器发出请求,服务器处理后返回响应。常用的请求方法有GET和POST。
- GET请求用于请求数据,通常用于获取静态内容(如网页、图片)。请求的数据附加在URL的末尾,且GET请求参数有长度限制。
- POST请求用于提交数据,通常用于提交表单、上传文件等。请求的数据放在请求体中,数据量较大且较为安全(不会在URL中暴露)。
-
虚拟文件系统的作用是什么?
- 虚拟文件系统(VFS)是一种抽象层,提供统一的接口,使操作系统能够在不同的文件系统类型(如EXT4、FAT、NTFS等)上执行文件操作。VFS使应用程序不必关心底层文件系统的具体实现,增强了文件系统的可移植性和扩展性。
-
sizeof和strlen的区别是什么?
- sizeof是一个编译时运算符,用于计算数据类型或对象所占的内存大小,返回结果为字节数。它适用于任何类型的数据,包括数组、结构体、基本类型等。
- strlen是一个函数,用于计算字符串的长度(不包括终止符
\0
),它仅适用于以\0
结尾的C字符串。
-
已知画点函数,如何求出圆心坐标?
- 如果已知画点函数和圆的边缘点坐标,则可通过数学方法求出圆心。一般可使用以下几种方法:
- 使用对称性:选取圆上的三个不同的点,通过构造两条垂直平分线,两条线的交点即为圆心。
- 通过最小二乘法拟合一个圆,从而求出圆心和半径。
- 如果已知画点函数和圆的边缘点坐标,则可通过数学方法求出圆心。一般可使用以下几种方法:
-
已知3个点坐标,如何求出圆心坐标?
- 三个不共线的点可以确定一个唯一的圆。方法如下:
- 设三个点的坐标为A(x1, y1), B(x2, y2), C(x3, y3)。
- 构造AB和BC的中垂线方程,求出它们的交点,即为圆心的坐标。
- 三个不共线的点可以确定一个唯一的圆。方法如下:
-
一个数组,如何求出堆栈过程可能出现的所有情况?
- 若数组的每个元素依次入栈,再出栈,则不同的出栈顺序构成不同的堆栈过程。使用递归或回溯算法可以生成所有可能的出栈顺序。
-
如何实现归并排序?
- 归并排序是基于分治思想的排序算法:
- 将数组递归地二分,直到每部分仅有一个元素。
- 逐层合并这些子数组,在合并过程中按顺序将元素放入目标数组。
- 重复上述步骤直到整个数组有序。
- 归并排序是基于分治思想的排序算法:
-
H264、I、P、B帧的含义是什么?
- H.264是一种视频压缩标准。
- **I帧(Intra-coded frame)**是独立编码的帧,包含完整图像数据,可以独立解码。
- **P帧(Predicted frame)**依赖于前一帧的图像数据,只编码差异部分,节省存储空间。
- **B帧(Bidirectional predicted frame)**既参考前一帧又参考后一帧的数据进行编码,进一步压缩数据。
-
TCP如何保证可靠性?
- 序列号:TCP为每个字节的数据分配一个序列号,以确保数据的顺序传输。
- 确认机制:接收方发送确认包(ACK)给发送方,表示已成功接收数据。
- 重传机制:如果发送方未收到ACK,会重传数据。
- 流量控制:使用滑动窗口控制数据流量,防止接收方缓冲区溢出。
- 拥塞控制:使用算法(如慢启动、拥塞避免)避免网络拥塞。
-
如何保证一个字节的第二个位为1?
- 可以通过位运算来实现,将字节与二进制的
00000010
进行按位或运算:byte |= 0x02;
- 可以通过位运算来实现,将字节与二进制的
-
C语言有哪些特点?
- 简洁、高效、灵活。
- 直接操作内存的能力(通过指针)。
- 丰富的运算符。
- 可移植性强。
- 广泛应用于系统编程、嵌入式开发等领域。
-
为什么要使用指针?
- 指针可以直接访问内存地址,提高程序的执行效率。
- 通过指针,可以实现动态内存分配、函数参数传递(如传递数组、结构体等),操作复杂数据结构(如链表、树等)。
-
int和unsigned int有什么区别?
- int 是有符号整数,表示范围包括正数、负数和零。
- unsigned int 是无符号整数,仅表示非负整数(从0到正值范围的最大值)。
-
什么情况下使用TCP和UDP?
- TCP:适用于对数据传输可靠性要求高的场景,如文件传输、邮件、网页浏览。
- UDP:适用于实时性强、对数据丢失不敏感的场景,如视频流、语音通话、在线游戏。
-
TCP粘包和分包问题是什么?
- 粘包:多个小数据包被合并成一个大包一起发送,接收方难以区分。
- 分包:一个大数据包被拆分成多个小包传输,接收方需要重组数据。
-
你有过TCP应用的经验吗?
- 面试中可以根据实际情况,结合具体的项目经验,介绍自己使用TCP协议开发应用的经历,重点描述如何处理数据的可靠传输、如何解决粘包和分包问题等。
-
ESP8266 WIFI有几种模式?
- ESP8266支持三种模式:
- Station(STA)模式:连接到现有的WiFi网络。
- Access Point(AP)模式:创建一个WiFi热点,供其他设备连接。
- STA+AP模式:同时连接到WiFi网络并创建热点。
- ESP8266支持三种模式:
-
你学过哪些数据结构?
- 根据实际情况列举所学过的数据结构,如数组、链表、栈、队列、树、图、哈希表等,并描述其中某些结构在实际项目中的应用。
-
你的项目中使用了线程,线程的作用是什么?
- 线程是进程中的执行单元,允许多个线程并发执行,充分利用多核CPU,提高程序的执行效率。线程通常用于处理I/O操作、后台计算、并行处理等任务。
-
你项目的亮点是什么?
- 根据实际项目经验,列举项目中的创新点或技术难点,如高效的算法设计、优雅的架构设计、出色的性能优化、成功解决的技术难题等。
-
什么是波特率?
- 波特率是串行通信中单位时间内传输的比特数,通常以bps(比特每秒)表示。它决定了数据传输的速度。
-
为什么串口要设置相同的波特率?
- 串口通信双方必须设置相同的波特率,以确保发送和接收的数据按相同的时间间隔进行采样,否则可能导致数据传输错误。
-
memcopy函数如何实现?
memcpy
函数用于将源地址的指定字节数数据复制到目标地址。基本实现方法是使用指针逐字节复制源数据到目标位置:void *memcpy(void *dest, const void *src, size_t n) {char *d = dest;const char
*s = src;
while (n–) {
*d++ = *s++;
}
return dest;
}
```
-
如何编写一个函数显示文章中最常见的十个单词?
- 使用哈希表记录每个单词的出现次数,然后对哈希表的值进行排序,输出前十个单词:
- 分割字符串,提取单词。
- 使用哈希表(如
map
)统计每个单词出现的频率。 - 将哈希表按照值(频率)排序,输出频率最高的十个单词。
- 使用哈希表记录每个单词的出现次数,然后对哈希表的值进行排序,输出前十个单词:
-
代码规范需要注意哪些事项?
- 一致的命名风格(变量名、函数名等)。
- 合理的注释,清晰地解释复杂代码逻辑。
- 适当的代码缩进和格式化,增强可读性。
- 遵循函数的单一职责原则,避免大函数。
- 避免使用魔法数字(magic numbers),应使用常量代替。
-
运算符优先级是什么?
- 运算符优先级决定了表达式中不同运算符的计算顺序。优先级较高的运算符优先计算。例如,乘法和除法的优先级高于加法和减法。
-
kmalloc和vmalloc的区别是什么?
- kmalloc在内核中分配物理连续的内存块,适用于对物理地址有特殊要求的设备驱动。
- vmalloc在内核中分配虚拟连续但物理上不一定连续的内存块,适用于需要大块内存但对物理连续性没有要求的场景。
-
USB全双工和半双工的区别是什么?
- 全双工:数据可以同时在两个方向上传输。
- 半双工:数据在任意时刻只能在一个方向上传输,必须在两个方向之间切换。
-
分时系统和实时操作系统的进程调度算法有什么不同?
- 分时系统:主要目标是提高系统的响应时间,采用时间片轮转调度算法,公平分配CPU时间片给每个进程。
- 实时操作系统:主要目标是确保任务在严格的时间限制内完成,采用优先级调度算法,高优先级任务可以抢占低优先级任务。
相关文章:

嵌入式八股-面试30题(20240812)
TCP和UDP的区别是什么? **TCP(Transmission Control Protocol)**是面向连接的协议,提供可靠的、顺序的数据传输。它通过三次握手建立连接,并在数据传输过程中使用确认和重传机制来确保数据的正确性。TCP还支持流量控制和拥塞控制…...

单一职责原则(SRP)
目录 1、定义 2、优点 3、原则的重要性 4、 示例 5、注意事项 单一职责原则(Single Responsibility Principle, SRP)是面向对象设计中的一项重要原则,属于 SOLID 原则之一。它的核心思想是:一个类应该只有一个引起它变化的原因&am…...

骨传导耳机怎么选?分享五款资深用户都说好的骨传导耳机!
在追求健康生活的道路上,运动健身已成为一种时尚潮流,而音乐则是这场潮流中不可或缺的催化剂。然而,传统耳机在运动场景下的局限性日益凸显,难以满足运动者对自由与舒适的双重追求。正是基于这样的市场需求,骨传导耳机…...

【计算机网络——分组延时,丢失,吞吐量】
处理延时:1检查分组首部信息,决定将该分组导向何处所需时间。2检查比特级别的差错所需时间:分析这个分组是否出错,目标IP地址字段提取出来,查路由表……。 传播延时和传输延时:传输延时就是分组到链路所需…...

使用1panel 申请证书配置雷池站点
1.创建测试站点 2.使用1panel申请测试站点的自签名证书 ps:雷池支持自签的证书 关于如果选择网站的SSL证书 百度搜索 看起来是证书的问题 调整了参数重新申请一个证书上传 注意,如果文件上传错了,雷池会报错,如下图 再次访问配…...

4章7节:用R做数据重塑,数据去重和数据的匹配
在数据科学的分析流程中,数据重塑是一项非常重要的操作。数据的重塑通常指将数据从一种形式转换为另一种形式,以满足后续分析的需求。R语言提供了丰富的工具和函数来帮助用户高效地进行数据重塑操作。本文中,我们将深入探讨数据重塑的概念及其…...

大数据面试SQL(七):累加刚好超过各省GDP40%的地市名称
文章目录 累加刚好超过各省GDP40%的地市名称 一、题目 二、分析 三、SQL实战 四、样例数据参考 累加刚好超过各省GDP40%的地市名称 一、题目 现有各省地级市的gdp数据,求从高到低累加刚好超过各省GDP40%的地市名称,临界地市也需要。 例如: 浙江省…...

建议收藏!这4款设计师常用的素材管理软件,助你工作效率翻倍!
嘿,设计师们!你是否还在为那一堆堆散乱的素材头疼?每次灵感来袭,却要花费大量时间在层层文件夹中苦苦搜寻?别急,今天我就来给大家推荐4款超给力的素材管理软件,它们不仅能帮你轻松整理素材库&am…...

用于NLP领域的排序模型最佳实践
在自然语言处理(NLP)领域,用于排序任务的模型通常是指那些能够对文本进行排序、比较或评估其相关性的模型。这些模型可以应用于诸如文档排序、句子排序、问答系统中的答案排序等多种场景。在当前的研究和发展中,基于深度学习的方法…...

域名未备案的支付平台遭遇大攻击怎么办
域名未备案的支付平台遭遇大攻击怎么办?在当今数字化时代,支付平台的安全与稳定性是保障业务连续性和用户信任的关键。然而,对于因域名未备案而面临法律风险的支付平台来说,其安全挑战更为严峻。当这类平台遭遇大规模的网络攻击&a…...

【NI-DAQmx入门】LabVIEW数据采集基础应用程序框架
对于可管理规模的 LabVIEW 程序,分析现有程序或设计新程序的方法通常是从整体到具体,即从高级到低级的分析和设计。从一开始就直接深入细节可能会效率较低。 在设计阶段,开发人员首先将程序垂直划分为几个层级。从最顶层开始,他们…...

海山数据库(He3DB)源码详解:CommitTransaction函数源码详解
文章目录 海山数据库(He3DB)源码详解:CommitTransaction函数1. 执行条件2. 执行过程2.1 获取当前节点状态:2.2 检查当前状态:2.3 预提交处理:2.4 提交处理:2.5 释放资源:2.6 提交事务: 作者介绍…...

【网络】传输层TCP协议的报头和传输机制
目录 引言 报头和有效载荷 确认应答机制 捎带应答机制 超时重传机制 排序和去重 连接管理机制 个人主页:东洛的克莱斯韦克-CSDN博客 引言 TCP是传输层协议,全称传输控制协议。TCP报头中有丰富的字段以及协议本身会制定完善的策略来保证网络传输的…...

【活动报名】打造编程学习“知识宝库”:高效笔记记录与整理指南
如何高效记录并整理编程学习笔记? 在编程学习的旅程中,拥有一套高效的笔记记录和整理方法至关重要。以下将从三个方向为您详细介绍如何打造属于自己的编程学习“知识宝库”。 方向一:笔记工具选择 选择合适的笔记工具是高效记录编程学习笔记…...

使用Arduino IDE生成带有bootloader的烧录文件
使用Arduino IDE生成bin(烧录)文件 1、在“项目”中,选择“导出已编译的二进制文件” 2、在工程目录中,会出现“build”文件夹 3、在build文件夹中,有hex文件,以及包含bootloader的bin和hex文件 bin和h…...

搭建高可用OpenStack(Queen版)集群(九)之部署nova计算节点
一、搭建高可用OpenStack(Queen版)集群之部署计算节点 一、部署nova 1、安装nova-compute 在全部计算节点安装nova-compute服务 yum install python-openstackclient openstack-utils openstack-selinux -y yum install openstack-nova-compute -y 若yu…...

C# 字符串扩展方法
功能 1.判断一个字符串是否为null或者空字符串 2.判断一个字符串是否为null或者空白字符 3.判断一个字符串是否为数字 4.判断一个字符串是否为邮件 5.判断一个字符串是否为字母加数字 6.判断一个字符串是否为手机号码 7.判断一个字符串是否为电话号码 8.判断一个字符串是否为网…...

JookDB和MobaXterm下载安装使用
文章目录 1.使用背景2.MobaXterm的下载安装使用3.JooKDB的下载安装使用 1.使用背景 由于xshell和xftp等工具都是收费的,即使有破解版但是有的公司里不让用盗版的软件。可以使用MobaXterm来替代。 同理可使用JooKDB来代替收费的navicat 来连接数据库。 2.MobaXterm…...

Docker安装Nacos(详细教程)
Docker安装Nacos的步骤相对直接,但需要注意一些细节以确保安装成功。以下是一个详细的安装步骤指南: 1. 安装Docker 首先,确保你的系统中已经安装了Docker。如果尚未安装,你可以通过访问Docker的官方网站或使用包管理器…...

Pandas:提供了快速、灵活和表达式丰富的数据结构。
引言 Pandas是Python中最为广泛使用的数据分析和操作库之一,特别适用于处理结构化数据。该库的名称源自“Panel Data”的缩写,意为面板数据或多维数据。Pandas基于NumPy构建,继承了其高效的数组计算能力,并在此基础上进一步扩展&…...

强!小目标检测全新突破!检测速度快10倍,GPU使用减少73.4%
强!小目标检测全新突破,提出Mamba-in-Mamba结构,通过内外两层Mamba模块,同时提取全局和局部特征,实现了检测速度快10倍,GPU使用减少73.4%的显著效果! 【小目标检测】是近年来在深度…...

重修设计模式-创建型-原型模式
重修设计模式-创建型-原型模式 原型模式就是利用已有对象(原型)通过拷贝方式来创建对象的模式,达到节省对象创建时间的目的。适用于对象创建成本较大,且同一类的不同对象之间差别不大的场景。 比如一个对象中的数据需要经过复杂…...

S71200 - 编程 - 笔记
1 DEMO 1.1气阀控制 1.2 红绿灯 基于PLC红绿灯控制_哔哩哔哩_bilibili 2 介绍变量DB,M,I,Q的使用 在PLC编程中,通常会使用多种类型的变量来实现逻辑控制、数据存储和输入输出操作。以下是常见的PLC变量类型及其用途ÿ…...

【项目】畅聊天地博客测试报告
项目简介:本项目采用 SSM框架结合 Websocket 技术构建。用户通过简单的注册和登录即可进入聊天室,与其他在线用户实时交流。系统支持文字消息的快速发送和接收、消息实时推送,确保交流的及时性和流畅性。SSM 框架为项目提供了稳定的架构和高效…...

【Next】全局样式和局部样式
不同于 nuxt ,next 的样式绝大部分都需要手动导入。 全局样式 使用 sass 先安装 npm i sass -D 。 我们可以定义一个 styles 文件,存放全局样式。 variables.scss $fs30: 30px;mixin border() {border: 1px solid red; }main.scss use ./variables …...

关于Docker的详细介绍
Docker是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖项打包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,实现虚拟化。以下是关于Docker的详细介绍: ### 一、Docker的定义 Docker是一…...

一台佳能G3811彩色喷墨打印机打印没颜色报5200的维修记录
一台佳能G3811彩色喷墨打印机,用户送修,称打印没有颜色,加电开机连电脑安驱动打印测试,确实没有颜色,于是清洗喷头结果打印机那个显示屏上 ,上来就报错P08,电脑提示5200; 话不多说,开始维修,仅记录当时的维修方法及步骤,其它未列出。。。 维修方法: 1、进维…...

【LeetCode】452.用最少数量的箭引发气球
能够找到问题的解法与把问题足够简化是天壤之别。比如我知道这题可以用贪心算法来解决,但是代码实现的过程中就走上了复杂的路,但是官方题解给的代码则相当简洁。这说明我思考的不够深入,导致化繁为简的能力不够强。 1. 题目 2. 分析 一道贪…...

网络安全流程规范文件解读(安全专业L1级)
技术能力项编号AQ-AQ-L1-02.01(安全维护作业计划执行能力) 课程目标: 通过学习课程,学员可以: 1.了解ZGYD网络安全流程规范 2.独立执行安全维护作业计划。 流程规范 一、《ZGYD远程接入安全管理办法》 二、《ZGYD网络运维账号口令管理办…...

Java、python、php版的邮件发送与过滤系统的设计与实现 (源码、调试、LW、开题、PPT)
💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…...