海康威视 - 软件开发工程师 - 笔试
❗❗如果本文对您有帮助,请不要吝啬您的评论、点赞、收藏与小花,这对我非常重要!谢谢!❗❗
本文所涉及的题目均为基于个人学习和理解重新表述的内容,仅供学习交流之用,不代表任何实际考试题目。如有雷同,纯属巧合。
岗位:【2025届校招】软件开发工程师 / BSP
题型:15 道单选题,5 道多选题,2 道问答题,1 道编程题
1、单选题
1.1
设在内存中有 P1、P2、P3 三道程序,并按照 P1、P2、P3 的优先次序运行,其内部计算和 I/O 操作时间如下:
P1:计算 60ms-->I/O 80ms-->计算 20ms
P2:计算 120ms->I/O 40ms-->计算 40ms
P3:计算 40ms-->I/O 80ms-->计算 40ms
调度程序的执行时间忽略不计,并发完成这三道程序比单道运行节省的时间是 ==(B)==
- 200ms
- 160ms
- 120ms
- 80ms
1.2
关于中断响应函数的描述,正确的是 ==(B)==
- 可以调用可能产生堵塞等待的操作,如资源锁的锁等待操作
- 不能有返回值
- 可以传入参数
- 其余项都不正确
解答:
中断不可以调用互斥锁/信号量等会引起休眠的操作,也不建议调用可能阻塞的复杂操作
中断无返回值,无参数
1.3
以下关于 RS485 串口和 RS232 串口描述错误的是 ==(B)==
- RS485 在抗干扰性方面优势更大
- RS485 在最高稳定传输速率方面优势更大
- RS232 较 RS485 需要更多的是信号线
- RS485 较 RS232 具备更远的距离通信
解答:
对比项 RS232 RS485 信号类型 单端信号(单根信号线传输) 差分信号(两根信号线传输) 传输线数量 最少 3 条(TX, RX, GND),可有更多控制线 2 条(A+ 和 B-) 通信距离 最远 15 米 最远可达 1200 米 传输速率 短距离下速率较高,最高 115.2 kbps 或更高 长距离传输时稳定,最高速率一般较低 抗干扰性 抗干扰性差,容易受电磁干扰影响 抗干扰性强,差分信号有更好的抗噪性 通信模式 全双工(发送和接收可以同时进行) 半双工(发送和接收需要交替进行) 设备数量 仅支持点对点通信(1 对 1) 支持多点通信(1 对多),最多 32 台设备 使用场景 短距离、低速、点对点通信 长距离、抗干扰、多点通信
1.4
嵌入式系统采用分级存储体系的主要目的是为了 ==(A)==
- 解决存储的容量、速度与价格之间的矛盾
- 解决主存容量不足的问题
- 提高存储器读写可靠性
- 提高外设访问效率
1.5
若干等待 CPU 运行的进程按次序链接起来的队列称为 ==(C)==
- 后备队列
- 运行队列
- 就绪队列
- 等待队列
1.6
操作系统实现按名存取的关键在于解决 ==(B)==
- 文件逻辑地址到文件具体的存储地址的转换
- 文件名称到文件逻辑地址的转换
- 文件逻辑结构到文件名称转换
- 文件的符号名与文件具体的存储地址的转换和映射
1.7
存储一个 32 位数 0x1389287 到 8004H-8007H 四个字节单元中,若以大端模式存储,则 8004H 单元存储的内容为 ==(D)==
- 0x87
- 0x13
- 0x92
- 0x01
解答:
大端模式:高字节在低地址,低字节在高地址
8004H 单元为最低地址,应该存储最高字节 0x01
1.8
指针是多少个字节 ==(B)==
- 4
- 和硬件平台有关
- 8
- 2
解答:
指针在 64 位系统中占 8 个字节,在 32 位系统中占 4 个字节
1.9
定义 int* swap() 指的是 ==(D)==
- 一个返回整型值的函数 swap()
- 其余项说法均错
- 一个指向函数 swap() 的指针,函数返回一个整型值
- 一个返回指向整型值指针的函数 swap()
1.10
用户态使用哪个函数可以申请出连续的物理内存 ==(D)==
- memalign()
- malloc()
- vmalloc()
- mmap()
解答:
1.11
在 32 位系统中,char 类型指针长度是多少字节?==(D)==
- 2
- 1
- 8
- 4
解答:
指针在 64 位系统中占 8 个字节,在 32 位系统中占 4 个字节
1.12
以下程序输出什么? ==(D)==
#include <iostream>
using namespace std;
int main() {
char str1[] = "abc";
char str2[] = "abc";
const char str3[] = "abc";
const char str4[] = "abc";
const char *str5 ="abc";
const char *str6 ="abc";
cout<<boolalpha<<(str1==str2)<<endl;
cout<<boolalpha<<(str3==str4)<<endl;
cout<<boolalpha<<(str5==str6)<<endl;
}
- false false false
- false true true
- false true false
- false false true
解答:
boolalpha << (str1 == str2); 输出 false,因为 str1 和 str2
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,同时还整理了嵌入式软件相关的八股知识。专栏内容涵盖C/C++基础、嵌软常见通信协议、ARM、FreeRTOS、Linux OS相关问题汇总,希望能帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。