立芯研发工程师(R&D)笔试 9-20

《嵌入式软件开发笔试与面试手册》https://blog.nowcoder.net/zhuanlan/jvN8gj

《嵌入式软件笔试-2023年真题汇总》https://blog.nowcoder.net/zhuanlan/0oDWVm

综合知识单选题(2)

1.下面文于“单例模式”错误的是()

A对于一些需要频繁创建和销的对象,单例模式可以提高系统的性能。

B它可以保证某个类在程序运行过程中最多只有一个实例,也就是对象实例只占用一份内存资源。

C使用单例,可以确保其它类只获取类的一份数据。

D由于单例模式中没有抽象层,因此单例很难进行类的扩展。

 

2. Linux,使用什么命令来创建一个新的压缩归档文件()

A compress -tf

B gzip-t

C tar -cfz

D bzip2 -tbz

 

3.在支持多线程的系统中,隶属于同一个进程的多个线程不能共享的是()

A进程所打开的文件

B进程的代码段

C进程的全局变量

D保存函数参数、返回地址等信息的堆栈

 

4.进程从运行状态进入就绪状态的原因可能是()

A等待的事件已发生

B被选中占有处理机

C等待某一事件

D时间片用完

 

5.Linux系统中,以下哪两个命令可以显示系统中运行的进程状态()

A psdf

B lsdf

C pstop

D dftop

 

6.耦合是影响软件复杂程度的一个非常重要的因素。进行软件程序设计时,耦合有一些基本原则需要遵循,遵循这些原则能够有助于设计出更加优秀的软件系统,下列选项中,关于这些原则描述错误的是()

A耦合是无法彻底避免的,在实际使用中,应该尽量使用数据耦合

B在实际使用中,要尽量多使用内容耦合,原因是内容耦合是较低程度的耦合

C尽量少使用控制合和特征耦合

D要尽量限制公共环境耦合的范围

 

C++基础2

1.STL中的unordered_mappriority_queue使用的底层数据结构分别是什么()

A rbtree,heap

B rbtree,queue

C hashtable,heap

D hashtable,queue

 

2.C++11中有一个非常大的变化就是引入了三种智能指针,下列选项中,属于这三种智能指针正确组合的是()

A std::shared ptrstd:weak_ptrstd:unique ptr

B std:shared_ptr、std:stick_ptrstd::unique ptr

C std:shared_ptr、std:weak_ptrstd::future ptr

D std:set_ptr、std:weak_ptrstd::unique_ptr

 

3.下列哪个查找最快()

A二分查找

B 哈希表法(散列表)

C 顺序查找

D二叉排序树查找

 

4.下面C++程序的运行结果为()

#include <iostream>
using namespace std;

int solve(int x) {
    if (x == 0 || x == 1) {
        return x;
    }
    if (x % 2 == 0) {
        return 1 + solve(x / 2);
    } else {
        return 1 + solve((x + 1) / 2);
    }
}

int main() {
    int n = 100;
    int ans = solve(n);
    cout << ans << endl;
    return 0;
}

A 8

B 6

C 7

D 9

 

5.归并排序相对于快速排序的优点不包括()

A空间复杂度低

B是稳定的

C最坏的情况更高效

D不会退化

 

6.栈的特点是先进后出。栈底至栈顶依次存放元素ABCD,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是()

A DBCEA

B DCBEA

C DEBCA

D DCAEB

 

7.在具有2n个结点的完全二叉树中,叶子结点个数为()

A n-1

B n

C n+1

D n/2

 

8.抽象基类是指()

A含有纯虚函数

B嵌套类

C派生类

D多继承类

 

9.有关广度优先搜索 (Breadth-first Search)和深度优先搜索 (Depth-first Search),以下说法中正确的是:()

A 在解决最短路径问顾时,Dikstra算法 (Dikstra's algorithm)本质上是一种考虑了边(Edge)的权重的深度优先搜索。

B广度优先搜索和深度优先搜索都可以用于遍历一棵树。

C在解决迷宫问题时,深度优先搜索总会比广度优先搜索更快地找到迷宫出口。

D广度优先搜索需要在搜索的每一层保存该层的所有结点,这一操作只能用队列这种数据结构来完成。

 

10.求一个数xn次方最朴素的方式是在1的基础上乘nx,如果用递归,显然会执行n次递归函数,时间复杂度为O(N)。不过可以通过对n的奇偶性判断来加大递归步长,每次可将范围减半,即如果n是偶数,那么x^n =x^(n/2)*x^(n/2),下面的函数是实现了这个过程的完整代码,它的时间复杂度为()

int pow(int x, unsigned int n)
{
	if (n == e)
		return 1;
	if (n & 1)
		return pow(x, n/2)* pow(x,n / 2)*x;
	else
		return pow(x, n/ 2)* pow(x, n / 2);
}

A O(N*log(N))

B O(logN)

C O(N)

D O(N^2)

 

11.N有向图G=(VE).V={a,b,e,d,e,r,g}

E={<a,b>,<a,c>,<a,d>,<b,e>,<c,e>,<c,f>,<d,f>,<e,g>,<f,g>}则图G的拓扑序列是()

A a,c,d,e,b,f,g

B a,c,d,t,b,e,g

C a,c,b,6,d,e,g

D a,b,e,c,d,f,g

 

12.C++static类型的变量,默认的初始化值是()

A 1

B 0

C空格符

D随机变量

 

13.数组与链表的区别是()

A两者长度均固定

B前者长度固定,后者长度可变

C后者长度固定,前者长度可变

D两者长度均可变

 

14.

char a; int b; float c; double d;

则表达式a*b+d-c值的类型为()

A char

B float

C int

D double

 

简答10

1.vevtor push_back的时间复杂度是多少?在已知 vector容量前提下,如何避免额外的开销,提升 vector push_back 性能?

通常情况下,push_back 的操作是常数时间复杂度(O(1))。这是因为 std::vector 通常预留一定的空间来存储额外的元素,所以大多数 push_back 操作只涉及将新元素放置在这个预留空间中。

当 vector 的容量已满时,进行 push_back 操作需要扩容,这涉及到分配新的更大的内存空间,并将所有现有元素复制(或移动)到新的内存地址。这个操作的时间复杂度是线性的(O(n)),因为它依赖于 vector 当前的元素数量。

使用 std::vector::reserve() 方法。这个方法允许你指定 vector 的容量,这

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

本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。

全部评论

相关推荐

数开面试题使用的hive,tez计算引擎1.如何建模、以及数据开发过程中需要注意的问题(数据探查、数据开发、数据质量监测、数据核对)2.页面数据有问题、如何排查3.抽数、推数数据量异常如何自动停止任务(要有工作日、非工作日的判断,非工作日不生效,UDF函数)4.hive表生命周期管理失效,如何进行生命周期管理(设成自动任务的话可能会使用shell脚本)(3个月前每月保留第一天与最后一天的数据,注意是业务时间第一天与最后一天,非调度时间)5.数据量大的表推数慢影响页面展示怎么解决6.根据2个日期计算工作日天数7.去重方式(开窗函数如何控制窗口的大小)8.列转行(清洗、分隔符统一、注意有些业务数据(比如一条数据楼栋面积字段(可能是总面积)对应多个房屋或多个楼栋)、LATERAL&nbsp;VIEW&nbsp;explode)9.明细表数据量大,每月还要都保留一份,怎处理?怎么优化?达梦分区(范围分区、哈希分区、列表分区、组合(多级)分区、间隔分区(属于范围分区)INTERVAL&nbsp;&amp;lt;间隔表达式&amp;gt;)10.更新数据效率更高的方式update采用的类似nested&nbsp;loop的方式,对更新的每一行,都会对查询的表扫描一次;merge&nbsp;into这里选择的是hash&nbsp;join,则针对每张表都是做了一次&nbsp;full&nbsp;table&nbsp;scan,对每张表都只是扫描一次。11、筛选的时候in(不适合B大)、exists不适合B大)、join的底层以及效率12.常用的分析函数13.连续3天及以上连续出现的次数(减序号) #实习#&nbsp;&nbsp;#校招#&nbsp;&nbsp;#大厂#&nbsp;&nbsp;#数开#&nbsp;&nbsp;#数仓#
查看13道真题和解析
点赞 评论 收藏
分享
11-06 18:30
已编辑
门头沟学院 Java
10.25一面,原定30min,实面18min,KPI面。没有收到后续1、自我介绍2、看项目中用到了rabbitmq,说下它的主要作用答了解耦、异步和削峰3、如果建立了联合索引(a,b,c)现在查询条件顺序是c,b,a会用到索引么4、对于两个字段的or查询,如何保证走索引,例如查询name=?or&nbsp;student_id=?没答出来,就说给两个字段都建索引呗,面试官表示好像不太行5、看你简历有用到分布式锁,用的哪种实现6、项目中写了es,数据是怎么导入es的回答分页查询,使用线程池导入...7、直接连接的数据库和es进行导入的?用的什么jar包连接的有点无语,jar包名字记不住...8、Spring&nbsp;Cloud用的是阿里的那套还是什么,用到哪些组件9、Gateway路由分发的策略10、微服务之间的调用是怎么实现的知道吗11、服务A调用服务B,会经过nacos么12、有用过别的组件么回答都写在简历上了,没用过别的反问:1、面试流程两轮技术+hr2、有什么要&nbsp;改进的地方,给些建议说招聘后端开发工程师看的是对这些技术的掌握程度,包括对技术选型上的一些思考,比如你项目中用到了rabbitmq,那思考过不同的消息队列之间的区别吗,比如说项目中用的是redisson实现的分布式锁,有没有考虑和其他实现方式的区别。(这里我非常不解,为什么他面试中不问我这些区别,点评却要说这些)。#顺丰##顺丰科技##一面##一面凉经##kpi面#
顺丰集团一面100人在聊 查看14道真题和解析
点赞 评论 收藏
分享
7 29 评论
分享
牛客网
牛客企业服务