美团 - 硬件开发工程师 - 笔试

❗❗如果本文对您有帮助,请不要吝啬您的评论、点赞、收藏与小花,这对我非常重要!谢谢!❗❗

alt

本文所涉及的题目均为基于个人学习和理解重新表述的内容,仅供学习交流之用,不代表任何实际考试题目。如有雷同,纯属巧合。

岗位:硬件开发工程师(嵌入式系统软件开发方向)

题型:20 道单选题,2 道编程题题

注意:本文章暂无解析,谨慎分辨答案对错

1、单选题

1.1

C 语言中,如果输入整数 v 是 2 的幂,下面表达式中哪个会返回 true ==(A)==

  1. (v & (v-1)) == 0;
  2. (v | (v + 1)) == 0;
  3. (-v & (v-1)) == 0;
  4. (v | (v-1)) == 0;

1.2

在 Linux 字符设备开发中,位操作也是很常用的操作,Linux 内核也提供了一系列的原子位操作 API 函数,下列关于原子位操作的描述,错误的是 ==(B)==

  1. 内核 test_and_set_bit(int nr,void *p)函数将 p 地址的第 nr 位置1,并且返回 nr 位原来的值
  2. 原子位操作需要像原子整形变量那样必须有 atomic_t 的数据结构
  3. 原子位操作是直接对内存进行操作
  4. 内核 change_bit(int nr,void *p)函数将 p 地址的第 nr 位进行翻转

1.3

该程序的输出结果为 ==(C)==

#include <stdio.h>

int main(int argc, char const* argv[]) 
{
    int i = 1;
    float j = 1;

    printf("%d, %0.1f\n", i, j);

    return 0;
}
  1. 1,1.000000
  2. 1,1
  3. 1,1.0
  4. 110

1.4

于 Cortex-M3&4 系列的单片机,如 STM32 中,有一个寄存器叫向量表偏移寄存器,下列关于该寄存器的描述正确的是 ==(B)==

  1. 对向量表偏移寄存器进行设置时,保证设置的地址可以 4 字节对齐即可
  2. 可以使用向量表偏移寄存器来对向量表进行重新定位
  3. 当向量表已经设置好之后,向量表偏移寄存器就无法被修改
  4. 只有在单片机刚上电或者复位后,才可以对向量表偏移寄存器进行设置

1.5

关于可剥夺型内核与不可剥夺型内核的介绍,下列说法错误的是? ==(A)==

  1. 不可剥夺型内核不允许使用不可重入函数
  2. 可剥夺型内核是指,最高优先级任务可以优先得到 CPU 控制权
  3. 不可剥夺型内核是指,多任务彼此共享一个 CPU
  4. 使用可剥夺型内核时,CPU 控制权是可知的

1.6

Linux 网络设别驱动开发中,我们需要先进行网络设备驱动的注册,注册函数为 ==(B)==

  1. ether_setup()
  2. register_netdev()
  3. alloc_netdev()
  4. alloc_etherdev()

1.7

下列关于用户标识号的说法中,错误的是 ==(B)==

  1. 普通用户账号可以是 101
  2. 用户标识号可以是整数,也可以是小数
  3. 超级用户的标识号是 0
  4. 管理员账号可以是 88

1.8

在 AT89S52 单片机中,假设(IP)= 00001010B,那正确的优先级排序为 ==(D)==

  1. PS>PT0>PT1>PX1>PX0
  2. PT1>PT0>PX0>PX1>PS
  3. PT0>PT1>PS>PX0>PX1
  4. PT1>PT0>PS>PX1>PX0

1.9

在 Linux 设备驱动开发中,我们使用 of_find_property 函数查找设备树节点指定的属性,函数原型如下:property *of_find_property(const struct device_node *np, const char *name, int *lenp),关于这个函数,描述错误的是 ==(A)==

  1. 返回值返回得到的属性元素数量
  2. np 表示设备节点
  3. name 表示属性名字
  4. lenp 表示属性值的字节数

1.10

在 FreeRTOS 操作系统中,除了支持传统的任务操作,还支持协程任务,关于 FreeRTOS 协程的描述,错误的是 ==(B)==

  1. 协程使用合作式的调度器
  2. 不同的协程使用不同的堆栈
  3. 协程相对于任务状态只有三种,没有挂起态
  4. 可以在使用抢占式的调度器中使用协程

1.11

下列有关总线设备的说法,有误的是? ==(D)==

  1. 向系统注册一个设备时,会向驱动的管理链表插入我们的新设备
  2. 驱动是一种装备在指定设备的软件
  3. 设备指的是装载在某总线上的物理装备
  4. 总线负责管理挂载对应总线的设备以及驱动

1.12

下列关于 FreeRTOS 和 uCOS 的描述,错误的是 ==(B)==

  1. 这两个系统均支持修改任务的优先级
  2. 理论上,这两个系统所支持的最大任务数均是 64 个
  3. uCOS 功能更强大支持 FS,USB,GUI 等
  4. uCOS 可以使用 MailBox 来完成任务间通信,但 FreeRTOS 不支持 MailBox

1.13

关于位图的概念和用途,说法错误的是? ==(D)==

  1. 位图可用来表现色彩的过渡,形成逼真的效果
  2. 位图又被称作点阵图像或者栅格图像
  3. 是由像素这种单个点格组成的
  4. 位图尺寸越大,形状线条看的越清晰

1.14

已知函数的原型是:int fun(char b[10],int*a);,设定义:char c[10]; int d; 正确的调用语句是 ==(B)==

  1. fun(&c,d);
  2. fun(c,&d);
  3. fun(c,d);
  4. fun(&c,&d);

1.15

运行以下程序之后,输出的结果为 ==(C)==

#include <stdio.h>

int main() {
    int arr[] = {19, 30, 18, 6, 25};
    int i, j;

    // 冒泡排序
    for (i = 0; i < 2; i++) { // 外层循环控制排序轮数
        for (j = 0; j < 4 - i; j++) { // 内层循环进行相邻元素比较和交换
            if (arr[j] > arr[j + 1]) {
                in

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,同时还整理了嵌入式软件相关的八股知识。专栏内容涵盖C/C++基础、嵌软常见通信协议、ARM、FreeRTOS、Linux OS相关问题汇总,希望能帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。

全部评论
1.10应该是B吧 https://freertos.org/zh-cn-cmn-s/Documentation/02-Kernel/02-Kernel-features/01-Tasks-and-co-routines/00-Tasks-and-co-routines
点赞 回复 分享
发布于 03-22 17:11 广东

相关推荐

04-29 20:44
已编辑
西北大学 Java
美团一面4.25&nbsp;&nbsp;(70min)###&nbsp;介绍部分1.&nbsp;自我介绍2.&nbsp;选择一个项目进行介绍3.&nbsp;项目的背景###&nbsp;提问部分1.&nbsp;把项目涉及的表都列出来,并设计ER关系图2.&nbsp;把项目的订单表具体的每个字段写出来3.&nbsp;查询订单表中,某个消费者(id)在某一个时间段(startTime,&nbsp;endTime)的订单状态为已完成(1)的订单信息4.&nbsp;如果现在有一个联合索引:消费者ID,订单号ID、订单状态,这个查询语句可以命中几个索引?5.&nbsp;怎么分析这个语句是否命中6.&nbsp;EXPLAIN关键字的key_len表示的什么7.&nbsp;MYSQL的InnoDB采用的是什么结构?有什么优点###&nbsp;编码部分编写一个订单类,由消费者ID,订单ID,农产品ID这三部分,怎么去重?1.&nbsp;介绍代码的设计思路2.&nbsp;详细介绍equals和hashCode3.&nbsp;为什么有了hashCode还要设重写equals4.&nbsp;hashset的底层原理是什么###&nbsp;八股问题1.&nbsp;ThreadLocal为什么会内存泄漏?2.&nbsp;AOP的执行具体在哪部分?3.&nbsp;如果给你一个新的技术栈,如何学习?###&nbsp;反问1.&nbsp;我们部门是Saas软硬件部门,那我们需要有一些嵌入式的背景知识吗?2.&nbsp;我目前想要继续学习,请教一下是比较建议去在现有项目的基础上学习一些新的功能,还是去再做一些新的项目?美团二面4.29&nbsp;&nbsp;(65min)###&nbsp;介绍部分:1.&nbsp;自我介绍2.&nbsp;项目介绍(Java项目&nbsp;&nbsp;&nbsp;1.&nbsp;项目中主要负责了什么3.&nbsp;你的优点4.&nbsp;你的缺点###&nbsp;面试官业务介绍:###&nbsp;项目具体场景问题:1.&nbsp;ThreadLocal介绍一下具体是怎么使用的?&nbsp;&nbsp;&nbsp;1.&nbsp;Threalocal的值可以同时被多个线程访问吗?&nbsp;&nbsp;&nbsp;2.&nbsp;子线程可以访问到Threadlocal的值吗?&nbsp;&nbsp;&nbsp;3.&nbsp;那有什么方法可以让子线程访问吗?2.&nbsp;介绍一下&nbsp;WebSocket实时通信&nbsp;和&nbsp;前端轮询通信方式&nbsp;各自的优缺点&nbsp;&nbsp;&nbsp;1.&nbsp;有遇到过WebSocket断开的问题吗?(没有&nbsp;&nbsp;&nbsp;2.&nbsp;那你有做什么防止WebSocket断开后重连的策略吗?(心跳检测3.&nbsp;Redis是怎么保证数据和DB内的数据一致性的?&nbsp;&nbsp;&nbsp;1.&nbsp;介绍一下缓存穿透、击穿和雪崩,并有什么策略来解决?4.&nbsp;SpringTask如果限时1分钟,在59秒时用户发起支付,由于一些接口调用导致用户支付完成,但是SpringTask异步订单取消,这个差异怎么解决?(支付前二次验证5.&nbsp;LRU是啥,底层原理?&nbsp;&nbsp;&nbsp;1.&nbsp;对于限制容量为5,并按照123456123456的顺序,LRU有啥问题?&nbsp;&nbsp;&nbsp;2.&nbsp;怎么解决?(说结合LFU,但最后还是没有说出来)&nbsp;&nbsp;&nbsp;3.&nbsp;WebSocket连接,有1台服务器和3000台用户端,如果需要断开一些WebSocket连接来保证实时通信的效率,应该怎么解决?(LRU和LFU结合,但其实具体细节说的不对)###&nbsp;手撕1.&nbsp;指定范围内翻转链表(力扣92题,头插法)
点赞 评论 收藏
分享
评论
2
24
分享

创作者周榜

更多
牛客网
牛客企业服务