小米 - 嵌入式操作系统开发工程师 - 笔试
❗❗如果本文对您有帮助,请不要吝啬您的评论、点赞、收藏与小花,这对我非常重要!谢谢!❗❗
本文所涉及的题目均为基于个人学习和理解重新表述的内容,仅供学习交流之用,不代表任何实际考试题目。如有雷同,纯属巧合。
岗位:嵌入式操作系统开发工程师-汽车
题型:24 道单选题,1 道多选题, 2 道编程题
注意:本文章暂无解析,谨慎分辨答案对错
1、选择题
1.1
存在二维数组 A[3][4]
,其起始地址为 1000,若每个元素占 4 个字节,则按行存储时 A[1,3]
的地址为 ==(A)==
- 1028
- 1024
- 1020
- 1056
1.2
设堆排序算法的最好情况时间复杂度、最坏情况时间复杂度、平均时间复杂度依次为甲、乙、丙,则甲、乙、丙的大小关系是 ==(D)==
- 乙>甲=丙
- 丙>乙>甲
- 甲>乙>丙
- 甲=乙=丙
1.3
若串 str="Software”,其子串(包含空串)的个数是 ==(D)==
- 9
- 8
- 36
- 37
1.4
系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条或者带有黑色边框、或者既带有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类,以下哪一个设计模式可以实现该目的: ==(D)==
- 外观
- 单件
- 模板方法
- 装饰
1.5
采用顺序查找方法查找长度为 n 的顺序表时,在等概率时成功查找的平均查找长度为:==(D)==
- n/2
- (n-1)/2
- n
- (n+1)/2
1.6
给定长度的字符串 S="ACBECAB”,要构造一个相同长度的字符串 T。T 是一个空串,反复执行下列任意操作:1)从 S 的头部删除一个字符,加到 T 的尾部;2)从 S 的尾部删除一个字符,加到 T 的尾部。构造字典序尽可能小的字符串 T,字符串 T 最终为 ==(C)==
- ABCABCE
- ABACBCE
- ABACCBE
- BACEBCA
1.7
对数列(14,6,18,43,22,50)进行快速排序,元素值小的放前面,每次选最后的元素为基准,则整个排序过程需要比较的次数为 ==(C)== 次
- 36
- 6
- 12
- 9
1.8
==(A)== 定义了一个高层接口,这个接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面,简化了一群类的接口
- 外观模式
- 策略模式
- 单件模式
- 工厂模式
1.9
使用一维数组实现顺序栈。若栈中最多可容纳 10 个元素,栈底地址为 100,每个元素所占存储空间的大小为 5,在某时刻的栈顶地址为 130。下列说法正确的一项是 ==(D)==
- 此时栈内元素个数为 4
- 此时栈已满
- 此时栈已空
- 此时栈内还可容纳的元素个数为 4
1.10
如图所示,利用 Djkstra 算法求从源点到其他顶点间最短路径时,加入的顶点顺序为 ==(A)==
[0,4,3,2,1]
[0,4,2,3,1]
[0,4,3,1,2]
[0,4,2,1,3]
1.11
现有一个容量为 60 的背包,有 5 个体积分别为 35、18、11、16、8,价值分别为 30、28、10、19、5的物品,按照每次总选择价值最大物品的贪心策略,背包放入物品集合的最大价值为 ==()==
- 52
- 58
- 100
- 49
1.12
序列为 {12,67,56,16,25,37,22,29,15,47,48,34}
,表长为 12,散列函数 f(key) = key mod 12
。采用线性探测法再散列处理冲突可以确定关键字 48 存储的下标为 ==(D)==,(下标从 0 开始,线性探测法:当 hash 一个关键字时,发现没有冲突,就保存关键字,如果出现冲突,则就探测冲突地址下一个地址,依次按照线性查找,直到发现有空地址为止)
- 4
- 0
- 6
- 2
1.13
假设以数组 A[70]
存放循环队列的元素,其头指针是 front=47,当前队列有 50 个元素,则队列的尾指针值为 ==(D)==
- 70
- 37
- 20
- 27
1.14
如图所示,从顶点 B 开始的普利姆算法(Prim 算法:每次总是选出一个离生成树距离最小的点去加入生成树)添加的节点顺序为 ==(B)==
[B,E,C,A,F,D]
[B,E,C,A,D,F]
[B,E,F,D,C,A]
[B,E,F,C,A,D]
1.15
设二维数组的行下标从 1 开始到 10 结束,列下标从 0 开始到 9 结束,采用行序优先策略进行存储。若起始地址为 100,每个元素所占存储空间大小为 5,则第 5 行第 5 列的元素的存储地址为 ==(A)==
- 325
- 225
- 425
- 525
1.16
设有数据结构 S=(D,R),下列选项中属于线性结构的有 ==(C)==
①D={甲,乙,丙},R={<甲,丙>,<丙,乙>}
②D={甲,乙,丙},R={<丙,乙>,<乙,甲>,<甲,丙>}
③D={甲,乙,丙,丁},R={<甲,甲>,<甲,乙>,<乙,丙>,<丙,丁>}
④D={甲,乙,丙,丁},R={<丁,甲>, <甲,丙>,<丙,乙>}
- A.①④
- B.②③
- C.③④
- D.①②
1.17
给定一个序列 {-2,11,-4,13,-5,-2},使得连续子序列的和最大为 ==(C)==
- 9
- 7
- 20
- 24
1.18
该算法的时间复杂度为:==(D)==
void fun(int n) {
int i = 1;
while (i <= n) {
i = i * 2;
}
}
- O(nlog2n)
- O(n^2)
- O(n)
- O(log2n)
1.19
对于一个具有 n 个顶点的无向连通图,它包含的连通分量的个数为:==(C)==
- n+1
- 0
- 1
- n
1.20
现有三个字符串 str1, str2, str3,str1 为主字符串,str2 为匹配字符串,str3 为替换字符串,如果 str1 中有 str2 相同的字符串,将它替换为 str3。现在 str1 = "abcdfgabcdhigkabcdmn",str2 = "abcd”,str3 = "bbb"。替换过后的字符串为==(D)==
- bbbfgbbbhigkabcdlmn
- bbbfgabcdhigkabcdimn
- abcdtgbbbhigkbbblmn
- bbbtgbbhigkbbblmn
1.21
二叉树的中序遍历序列为 d->g->b->a->e->c->f->h,后序遍历序列为 g->d->b->e->h->f->c->a,则前序遍历序列为==(D)==
- g->h->d->e->f->b->c->a
- a->g->d->b->c->e->h->f
- b->g->d->a->c->e->f->h
- a->b->d->g->c->e->f->h
1.22
使用选择排序算法对序列 进行从小到大排序,则第三趟的排
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,同时还整理了嵌入式软件相关的八股知识。专栏内容涵盖C/C++基础、嵌软常见通信协议、ARM、FreeRTOS、Linux OS相关问题汇总,希望能帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。