嵌入式八股-口试30题(20240812)

[复制链接]
发表于 2026-2-8 23:04:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

  • TCP和UDP的区别是什么?

    • TCP是面向毗连的协议,提供可靠的、次序的数据传输。它通过三次握手创建毗连,并在数据传输过程中利用确认和重传机制来确保数据的准确性。TCP还支持流量控制和拥塞控制。
    • UDP是无毗连的协议,不包管数据的次序和可靠性。UDP实用于实时应用,如视频流、在线游戏等,它的长处是传输速率快,开销小,但轻易丢包。

  • HTTP、GET、POST的传输过程是什么?

    • HTTP是用于传输超文本的应用层协议。客户端通过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 举行按位或运算:
      1. 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网络并创建热门。


  • 你学过哪些数据结构?

    • 根据实际情况罗列所学过的数据结构,如数组、链表、栈、队列、树、图、哈希表等,并形貌此中某些结构在实际项目中的应用。

  • 你的项目中利用了线程,线程的作用是什么?

    • 线程是历程中的实验单元,允很多个线程并发实验,充实利用多核CPU,进步步伐的实验服从。线程通常用于处理惩罚I/O操纵、背景盘算、并行处理惩罚等任务。

  • 你项目标亮点是什么?

    • 根据实际项目履历,罗列项目中的创新点或技能难点,如高效的算法操持、优雅的架构操持、精彩的性能优化、乐成办理的技能困难等。

  • 什么是波特率?

    • 波特率是串行通讯中单元时间内传输的比特数,通常以bps(比特每秒)表现。它决定了数据传输的速率。

  • 为什么串口要设置雷同的波特率?

    • 串口通讯两边必须设置雷同的波特率,以确保发送和吸收的数据按雷同的时间隔断举行采样,否则大概导致数据传输错误。

  • memcopy函数怎样实现?

    • memcpy函数用于将源所在的指定字节数数据复制到目标所在。根本实现方法是利用指针逐字节复制源数据到目标位置:
      1. void *memcpy(void *dest, const void *src, size_t n) {
      2.     char *d = dest;
      3.     const char *s = src;
      4.     while (n--) {
      5.         *d++ = *s++;
      6.     }
      7.     return dest;
      8. }
      复制代码

  • 怎样编写一个函数表现文章中最常见的十个单词?

    • 利用哈希表记载每个单词的出现次数,然后对哈希表的值举行排序,输出前十个单词:

      • 分割字符串,提取单词。
      • 利用哈希表(如map)统计每个单词出现的频率。
      • 将哈希表按照值(频率)排序,输出频率最高的十个单词。


  • 代码规范必要留意哪些事项?

    • 划一的定名风格(变量名、函数名等)。
    • 公道的解释,清楚地表明复杂代码逻辑。
    • 得当的代码缩进和格式化,加强可读性。
    • 依照函数的单一职责原则,克制大函数。
    • 克制利用邪术数字(magic numbers),应利用常量取代。

  • 运算符优先级是什么?

    • 运算符优先级决定了表达式中差异运算符的盘算次序。优先级较高的运算符优先盘算。比方,乘法和除法的优先级高于加法和减法。

  • kmalloc和vmalloc的区别是什么?

    • kmalloc在内核中分配物理连续的内存块,实用于对物理所在有特别要求的装备驱动。
    • vmalloc在内核中分配假造连续但物理上不愿定连续的内存块,实用于必要大块内存但对物理连续性没有要求的场景。

  • USB全双工和半双工的区别是什么?

    • 全双工:数据可以同时在两个方向上传输。
    • 半双工:数据在恣意时候只能在一个方向上传输,必须在两个方向之间切换。

  • 分时体系和实时操纵体系的历程调治算法有什么差异?

    • 分时体系:重要目标是进步体系的相应时间,采取时间片轮转调治算法,公中分配CPU时间片给每个历程。
    • 实时操纵体系:重要目标是确保任务在严酷的时间限定内完成,采取优先级调治算法,高优先级任务可以抢占低优先级任务。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表