海康威视 - 软件开发工程师 - 笔试

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

alt

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

岗位:【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)==

  1. 200ms
  2. 160ms
  3. 120ms
  4. 80ms

1.2

关于中断响应函数的描述,正确的是 ==(B)==

  1. 可以调用可能产生堵塞等待的操作,如资源锁的锁等待操作
  2. 不能有返回值
  3. 可以传入参数
  4. 其余项都不正确

解答:

中断不可以调用互斥锁/信号量等会引起休眠的操作,也不建议调用可能阻塞的复杂操作
中断无返回值,无参数

1.3

以下关于 RS485 串口和 RS232 串口描述错误的是 ==(B)==

  1. RS485 在抗干扰性方面优势更大
  2. RS485 在最高稳定传输速率方面优势更大
  3. RS232 较 RS485 需要更多的是信号线
  4. RS485 较 RS232 具备更远的距离通信

解答:

对比项 RS232 RS485
信号类型 单端信号(单根信号线传输) 差分信号(两根信号线传输)
传输线数量 最少 3 条(TX, RX, GND),可有更多控制线 2 条(A+ 和 B-)
通信距离 最远 15 米 最远可达 1200 米
传输速率 短距离下速率较高,最高 115.2 kbps 或更高 长距离传输时稳定,最高速率一般较低
抗干扰性 抗干扰性差,容易受电磁干扰影响 抗干扰性强,差分信号有更好的抗噪性
通信模式 全双工(发送和接收可以同时进行) 半双工(发送和接收需要交替进行)
设备数量 仅支持点对点通信(1 对 1) 支持多点通信(1 对多),最多 32 台设备
使用场景 短距离、低速、点对点通信 长距离、抗干扰、多点通信

1.4

嵌入式系统采用分级存储体系的主要目的是为了 ==(A)==

  1. 解决存储的容量、速度与价格之间的矛盾
  2. 解决主存容量不足的问题
  3. 提高存储器读写可靠性
  4. 提高外设访问效率

1.5

若干等待 CPU 运行的进程按次序链接起来的队列称为 ==(C)==

  1. 后备队列
  2. 运行队列
  3. 就绪队列
  4. 等待队列

1.6

操作系统实现按名存取的关键在于解决 ==(B)==

  1. 文件逻辑地址到文件具体的存储地址的转换
  2. 文件名称到文件逻辑地址的转换
  3. 文件逻辑结构到文件名称转换
  4. 文件的符号名与文件具体的存储地址的转换和映射

1.7

存储一个 32 位数 0x1389287 到 8004H-8007H 四个字节单元中,若以大端模式存储,则 8004H 单元存储的内容为 ==(D)==

  1. 0x87
  2. 0x13
  3. 0x92
  4. 0x01

解答:

大端模式:高字节在低地址,低字节在高地址
8004H 单元为最低地址,应该存储最高字节 0x01

1.8

指针是多少个字节 ==(B)==

  1. 4
  2. 和硬件平台有关
  3. 8
  4. 2

解答:

指针在 64 位系统中占 8 个字节,在 32 位系统中占 4 个字节

1.9

定义 int* swap() 指的是 ==(D)==

  1. 一个返回整型值的函数 swap()
  2. 其余项说法均错
  3. 一个指向函数 swap() 的指针,函数返回一个整型值
  4. 一个返回指向整型值指针的函数 swap()

1.10

用户态使用哪个函数可以申请出连续的物理内存 ==(D)==

  1. memalign()
  2. malloc()
  3. vmalloc()
  4. mmap()

解答:

1.11

在 32 位系统中,char 类型指针长度是多少字节?==(D)==

  1. 2
  2. 1
  3. 8
  4. 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;  
}
  1. false false false
  2. false true true
  3. false true false
  4. false false true

解答:

boolalpha << (str1 == str2); 输出 false,因为 str1 和 str2

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

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

全部评论
竟然要钱
3 回复 分享
发布于 03-31 18:40 黑龙江

相关推荐

评论
10
34
分享

创作者周榜

更多
牛客网
牛客企业服务