VIVO - C/C++工程师 - 笔试

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

alt

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

岗位:C、C++工程师(嵌入式方向)-25届秋招

题型:6 道单选题,4 道不定项选择题,3 道编程题

注意:本文章暂无解析,谨慎分辨答案对错

1、选择题

1.1

在网络编程中,文件句柄通常用于什么目的? ==(B)==

  1. 控制网络连接
  2. 读写网络数据
  3. 进行数据加密解密
  4. 管理网络路由

1.2

使用 SQL 语言在产品投放表中找出品牌为 vivo 或 iqoo 的且同一系列中投放产品个数大于 3 的数据。附表数据例子如下:

id 品牌 系列 产品 定价
1 vivo x x100 3966
2 vivo x x100u 5888
3 iqoo Neo Neo9 2499

以下选项中SQL实现正确的是?==(B)==

  1. A
SELECT 品牌, 系列, COUNT(*) AS '型号数量' FROM 产品投放 WHERE 品牌='vivo' OR 品牌='iqoo' GROUP BY 系列 HAVING 型号数量>3
  1. B
SELECT 品牌, 系列, COUNT(*) 型号数量 FROM 产品投放 WHERE 品牌 IN('vivo','iqoo') GROUP BY 品牌, 系列 HAVING count(*)>3
  1. C
SELECT 品牌, 系列, COUNT(*) AS 型号数量 FROM 产品投放 WHERE 品牌 EXISTS('vivo' OR 'iqoo') GROUP BY 品牌, 系列 HAVING 型号数量>3
  1. D
SELECT 品牌, 系列, COUNT(*) AS '型号数量' FROM 产品投放 WHERE 品牌='vivo' GROUP BY 系列HAVING 型号数量>3
UNION ALL                                                                     SELECT 品牌, 系列, COUNT(*) AS '型号数量' FROM 产品投放 WHERE 品牌='iqoo' GROUP BY 系列HAVING型号数量>3

1.3

程序执行过程中,有 60% 的部分是串行处理的,其余为并行处理;如果我们将处理器的数量从 2 个提升到 16 个,理论上整个程序的执行时间能减少多少(为了简单,直接使用两者的 speedUp 差值)?==(D)==

  1. 减少了5.6
  2. 减少了14
  3. 减少了16/45
  4. 减少了0.35

1.4

一个空栈,如果有顺序输入序列:a1,a2,a3 ... an(个数大于3),而且输出第一个元素为 a(n-1) , 那么所有元素都出栈后,==(D)==

  1. 输出的最后元素一定为 a1
  2. 输出的最后元素一定为 an
  3. a(n-2) 一定比 a(n-3) 先出
  4. 不能确定元素 a1~ (an-2) 的输出/顺序

1.5

线性表如果要频繁的执行插入和删除操作,该线性表采取的存储结构应该是 ==(D)==

  1. 顺序
  2. 散列
  3. 其他均对
  4. 链式

1.6

操作系统以下哪个不是 shell 命令有?==(B)==

  1. curl
  2. mov
  3. sed
  4. find

2、不定项选择题

2.1

在构建深度学习模型时,选择 ReLU 作为激活函数的原因可能有什么?==(AC)==

  1. 它解决了Sigmoid和Tanh函数在深度网络中容易出现的梯度消失问题
  2. 它能够将任意输入映射到(0,1)区间内,适用于二分类问题的输出层
  3. 计算效率高,实现高效,可加速神经网络的训练过程
  4. 它是一种概率分布函数,适用于多分类问题的输出层

2.2

在操作系统和并发编程中,死锁是一个常见且重要的问题。以下关于死锁的描述中,哪些是正确的?==(AD)==

  1. 死锁是指多个进程在执行过程中,由于竞争资源而造成的一种僵持状态,每个进程都在等待其他进程释放资源,从而导致所有进程都无续执行
  2. 死锁是由于系统资源不足导致的,当资源无法满足所有进程的需求时,就会发生死锁
  3. 进程运行太快可能产生死锁
  4. 打破死锁的四个必要条件中的任何一个,就可以避免死锁的发生,这四个条件包括:互斥、请求并保持、可抢占、循环等待

2.3

如果内存有限,无法一次性加载 10 亿历史单据信息进行搜索,以下哪些算法是最适合的?==(CE)==

  1. 哈希查找
  2. 二分查找
  3. 分块查找
  4. 线性搜索
  5. 外部排序+二分查找

3、编程题

3.1

员工分组:

vivo 项目组新老员工分组完成任务, 员工数组 staff,其中 0 表示新员工,1 表示老员工
分组规则如下:
1、一个小组至多3个员工
2、一个小组中最多有1个老员工
3、如果一个小组中有1个老员工,那么这组最多有2个员工
求最小的分组数

输入描述:

输入员工数组staff,元素只包含0,1

输出描述:

输出一个整数,表示最小分组数

示例1:

输入:[1,0,0,0,1]
输出:3

示例

输入:[1,1]
输出: 2

解答:

// 90% 通过率
#include <stdio.h>

int staffGroup(int* staff, int staffLen) {
    int groups = 0; // 记录分组数
    int i = 0; // 遍历数组的索引

    while (i < staffLen) {
        groups++; // 增加一个分组
        if (staff[i] == 1) {
            // 如果当前员工是老员工
            i++; // 老员工的位置移动到下一个
            // 该分组只能有最多2个新员工
            if (i < staffLen && staff[i] == 0) {
                i++; // 加一个新员工
            

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

欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务