小米嵌入式软件工程师笔试 9-23
《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj
《软件开发笔试汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm
单选题
关于资源信号量S的用法,假设3个进程共享同一程序段,而每次允许最多2个进程进入该程序段,则信号量的变化范围是
1 ,0,-1,-2
1 ,-1 ,-2,-3
2,1,0,-1
2,1,0
DNS协议的功能是
用于主机IP地址和端口号的解析
用于主机名和lIP地址的解析
用于域名和IP地址的解析
用于自动获得IP地址
关于面向对象编程,下列哪个表述有误
对象主要由数据和行为(方法)构成
面向对象编程的编程方法中,提倡依赖抽象而不依赖实现
UML是一种被广泛采用的面向对象的编程语言
在面向过程的编程语言中,也能使用面向对象的编程方法
操作系统在处理中断的时候,以下说法错误的是
中断处理过程属于原子操作,所以需要等处理完成才能继续响应其他中断
在转入中断处理程序前,需要保护被中断的进程的环境,包括PSW/PC等
当发现有多个要响应的中断源时,会根据优先级进行选择处理
CPU在执行每个指令后,都会检查当前是否有外部中断信号
以下哪种软件质量指标用于评估软件的可靠性和稳定性
性能指标
功能点
缺陷密度
可用性指标
关于线程的说法,下面哪一项是正确的
线程在发生切换的时候需要进入内核态
线程的引入可以提高程序的并发执行
引入线程会增加系统的时空开销
线程是资源分配拥有的基本单位
n个节点的有向连通图(n >1),最少有多少条边,最多有多少条边?
n-1, n*(n-1)/2
n+1, n*(n+1)
n, n*(n+1)/2
n, n*(n-1)
要在10000个不同的整数中,找到第二大的元素,下列哪个数据结构最高效?
堆
哈希表
TRIE树
栈
以下哪种情况,会让进程的状态从运行态转变为就绪态。
进程被系统调度程序选中
分配的CPU执行时间片运行完
1/O结束或者等待的事件发生
进程等待某一事件如I/O请求
以下关于数据库索引说法正确的是
索引可以提高查询的效率
索引可以加快数据的插入和更新操作速度
索引可以减少数据库的存储空间需求
索引只能用于整数类型的列
数据库中的ACID是什么的缩写
Availability, Consistency, Integrity,Durability
Atomicity, Consistency, Isolation, Durability
Availability, Consistency, Isolation, Durability
Atomicity, Consistency, Integrity,Durability
数据由端系统A传送至端系统B时,不参与数据封装工作的是
网络层
数据链路层
物理层
传输层
一个16 bit有符号整数的16进制表示为OxD510,它表示的十机制数是:
54544
-10991
21776
-10992
下列编程语言的关键词,哪一个表示的可见范围最大
private
public
super
protected
下列排序算法中,元素个数大约10000,最差情况下比较次数最少的是:
归并排序
快速排序
插入排序
冒泡排序
多选题
下列问题适用动态规划的有
背包问题
拓扑排序
最小生成树
最长公共子序列
下列表述中,正确的有
堆通常使用数组实现
优先队列一般使用链表实现
哈希表的实现会用到数组
拓扑排序可以用来检测无向图是否有环
下列针对内存管理单元MMU的说法,正确的是
MMU也负责实施访问权限控制,确保应用程序只能访问其被允许的内存区域,防止不同进程之间的内存互相干扰
MMU进行地址转换有三种机制:分页机制、分段机制、段页机制。页的大小通常是不固定的,而段的大小是固定的
MMU的主要功能是将应用程序生成的虚拟地址转换为物理地址,通过地址转换,操作系统可以实现虚拟内存,允许进程使用比物理内存更大的地址空间
TLB的作用是为了提高虚拟地址到物理地址的转换速度,也被称为块表,本质上是一块高速缓存
关于操作系统中CPU调度算法的以下说法,错误的是
MLFQ算法结合了优先级和轮转调度,适用于各种作业类型,可以在不同队列之间移动任务
SJF算法优点是平均等待时间最短,能够最大程度地提高系统吞吐量,不会导致饥饿问题
CFS算法能够公平地调度每个任务,使用红黑树结构来存储所有状态的任务
FCFS算法简单易实现,不考虑作业的执行时间,平均等待时间较长,适用于长作业
在linux网络编程中,以下关于socket描述符正确的是
系统调用read从socket中读取数据时,当read返回-1的时候,表示连接正常,但socket中数据读取完毕
Socket只支持TCP协议
socket存在两种模式:阻塞和非阻塞
如果socket设置成非阻塞模式,当socket的输入缓冲区没有可读数据时,read操作会返回错误
以下哪个数据库是关系型数据库
PostgreSQL
Redis
MySQL
MongoDB
下列设计模式中,哪些属于创建型(creational)模式
工厂方法(factory method)
单例模式(singeton)
组合模式(composite)
模板方法(template method)
下面()在运输层使用TCP协议
FTP
SMTP
DHCP
DNS
软件工程的主要目标是什么
降低软件开发成本
提高软件可维护性
缩短软件开发周期
提高软件质量
在数据库事务中,以下哪个隔离级别可以防止脏读
读未提交(Read Uncommitted )
串行化 ( Serializable )
可重复读(Repeatable Read )
读已提交(Read Committed )
编程题
第一题
小米手机信号仿真平台
时间限制:3000MS
内存限制:589824KB
题目描述:
小米手机在硬件设计阶段经常会使用一些仿真平台来进行数据验证,比如要模拟不同场景下的网络信号,假设在一个网络仿真系统里,有如下一些信息:
1.一组通信基站towers,其中每个基站 towers[i] = [xi, yi, qi]表示第i个基(xi, yi)qiX-Y
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。