美团 - 硬件开发工程师 - 笔试
❗❗如果本文对您有帮助,请不要吝啬您的评论、点赞、收藏与小花,这对我非常重要!谢谢!❗❗
本文所涉及的题目均为基于个人学习和理解重新表述的内容,仅供学习交流之用,不代表任何实际考试题目。如有雷同,纯属巧合。
岗位:硬件开发工程师(嵌入式系统软件开发方向)
题型:20 道单选题,2 道编程题题
注意:本文章暂无解析,谨慎分辨答案对错
1、单选题
1.1
C 语言中,如果输入整数 v 是 2 的幂,下面表达式中哪个会返回 true ==(A)==
(v & (v-1)) == 0;
(v | (v + 1)) == 0;
(-v & (v-1)) == 0;
(v | (v-1)) == 0;
1.2
在 Linux 字符设备开发中,位操作也是很常用的操作,Linux 内核也提供了一系列的原子位操作 API 函数,下列关于原子位操作的描述,错误的是 ==(B)==
- 内核
test_and_set_bit(int nr,void *p)
函数将 p 地址的第 nr 位置1,并且返回 nr 位原来的值 - 原子位操作需要像原子整形变量那样必须有
atomic_t
的数据结构 - 原子位操作是直接对内存进行操作
- 内核
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.000000
- 1,1
- 1,1.0
- 110
1.4
于 Cortex-M3&4 系列的单片机,如 STM32 中,有一个寄存器叫向量表偏移寄存器,下列关于该寄存器的描述正确的是 ==(B)==
- 对向量表偏移寄存器进行设置时,保证设置的地址可以 4 字节对齐即可
- 可以使用向量表偏移寄存器来对向量表进行重新定位
- 当向量表已经设置好之后,向量表偏移寄存器就无法被修改
- 只有在单片机刚上电或者复位后,才可以对向量表偏移寄存器进行设置
1.5
关于可剥夺型内核与不可剥夺型内核的介绍,下列说法错误的是? ==(A)==
- 不可剥夺型内核不允许使用不可重入函数
- 可剥夺型内核是指,最高优先级任务可以优先得到 CPU 控制权
- 不可剥夺型内核是指,多任务彼此共享一个 CPU
- 使用可剥夺型内核时,CPU 控制权是可知的
1.6
Linux 网络设别驱动开发中,我们需要先进行网络设备驱动的注册,注册函数为 ==(B)==
ether_setup()
register_netdev()
alloc_netdev()
alloc_etherdev()
1.7
下列关于用户标识号的说法中,错误的是 ==(B)==
- 普通用户账号可以是 101
- 用户标识号可以是整数,也可以是小数
- 超级用户的标识号是 0
- 管理员账号可以是 88
1.8
在 AT89S52 单片机中,假设(IP)= 00001010B,那正确的优先级排序为 ==(D)==
- PS>PT0>PT1>PX1>PX0
- PT1>PT0>PX0>PX1>PS
- PT0>PT1>PS>PX0>PX1
- 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)==
- 返回值返回得到的属性元素数量
- np 表示设备节点
- name 表示属性名字
- lenp 表示属性值的字节数
1.10
在 FreeRTOS 操作系统中,除了支持传统的任务操作,还支持协程任务,关于 FreeRTOS 协程的描述,错误的是 ==(B)==
- 协程使用合作式的调度器
- 不同的协程使用不同的堆栈
- 协程相对于任务状态只有三种,没有挂起态
- 可以在使用抢占式的调度器中使用协程
1.11
下列有关总线设备的说法,有误的是? ==(D)==
- 向系统注册一个设备时,会向驱动的管理链表插入我们的新设备
- 驱动是一种装备在指定设备的软件
- 设备指的是装载在某总线上的物理装备
- 总线负责管理挂载对应总线的设备以及驱动
1.12
下列关于 FreeRTOS 和 uCOS 的描述,错误的是 ==(B)==
- 这两个系统均支持修改任务的优先级
- 理论上,这两个系统所支持的最大任务数均是 64 个
- uCOS 功能更强大支持 FS,USB,GUI 等
- uCOS 可以使用 MailBox 来完成任务间通信,但 FreeRTOS 不支持 MailBox
1.13
关于位图的概念和用途,说法错误的是? ==(D)==
- 位图可用来表现色彩的过渡,形成逼真的效果
- 位图又被称作点阵图像或者栅格图像
- 是由像素这种单个点格组成的
- 位图尺寸越大,形状线条看的越清晰
1.14
已知函数的原型是:int fun(char b[10],int*a);
,设定义:char c[10]; int d;
正确的调用语句是 ==(B)==
fun(&c,d);
fun(c,&d);
fun(c,d);
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相关问题汇总,希望能帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。