【笔试准备专题】C/C++工程师如何准备笔试(附送干货资料)

您所在的位置:网站首页 一博科技笔试 【笔试准备专题】C/C++工程师如何准备笔试(附送干货资料)

【笔试准备专题】C/C++工程师如何准备笔试(附送干货资料)

2024-07-13 14:38:44| 来源: 网络整理| 查看: 265

自我介绍

本硕双非,参加了2020年秋招,投递岗位是C/C++软件工程师相关。总共收获Oppo,小米,海康威视,兆易创新,全志科技等十余家公司的offer。对于笔试面试,有一些自己的经验。我把自己的秋招,春招历程详细记录了下来,同时,把自己秋招过程总结的笔试面试资料分享了出来,即嵌入式软件工程师笔试面试指南,完整版可以查看牛客专栏(免费)。

笔试准备 简介

C/C++软件工程师笔试题目考察类型主要分为两类,第一类是基础知识+算法题,第二类是只有算法题。

基础知识+算法题

考试时长:

60min ~ 90min

题目类型:

逻辑思维,选择,填空,简答,算法题

题目数量:

逻辑思维,5道左右。 选择,5~10道左右 填空,5道左右。 简答,2~5道左右。 算法,2~3道左右

考察范围:

基础知识:C,C++,计算机网络,计算机组成原理,网络编程,Linux基础,数据结构,操作系统,逻辑思维,Java(很少) 算法:链表,二叉树,堆栈,数组,字符串等,easy和medium居多。

代表性企业:

联发科,小米,oppo,兆易创新,紫光展锐,全志科技,海康威视,浙江大华等。

算法题

考试时长:

90min ~ 120min

考察范围:

贪心,dp,图论,计算几何,数论,博弈论。medium和hard一般为1~2道左右。

题目数量:

3~5道左右

代表性企业:

华为,寒武纪,地平线,乐鑫等

代表性企业:

基础知识准备

有时间还是建议补充下计算机基础等内容,毕竟这是从事研发工作的内功,是不可或缺的一部分。

不过,我还是建议要有针对性的准备。建议去网上搜索相关笔试面试的高频题目,也可以看我总结的内容牛客专栏(免费)。

这些题目都是常考的内容,遇到不理解的自己再去补充短板。有针对性的准备,往往可以事半功倍。

算法题准备

算法能力的提升是一个长期积累的过程!算法能力的提升是一个长期积累的过程!算法能力的提升是一个长期积累的过程!因此,不要想着速成了,要扎扎实实走好每一步。

刷题顺序

我是在某网站刷的题目,大家也可以在牛客刷题。

这么多题目,肯定不可能都刷完。所以要高频题和经典题,要刷一题掌握一个类型,遇到新题需要和刷过的题总结归类到一起,才能以不变应万变,真正提高。

前期刷题,可以参考网上整理的某网站高频题目汇总。

牛客不让放外部链接,大家自己百度下吧。。。

后期刷题建议将重点放在剑指offer+某网站hot100。

从7月 ~ 11月。 算法题不能停,每天要刷1~2个题目,保持手感。

刷题技巧

刷题坚持一个原则:熟能生巧

第一遍:不会就看答案。学习他人的最优解,建立思维体系,了解所有最优解,方法技巧第一。做题套路,以印象为主。

第二遍:自己想,锻炼逻辑基础。过easy题,记住;做medium,重点题背,反复背。刷过一遍,已经有了自己的思维,现在就是要培养自己的独立做题能力了。自己先尝试写答案,多多少少能写出来一些。写不出来的部分,看下题解,分析下自己卡在哪里。

第三遍:做easy题;做部分medium题,hard题有思路。夯实medium基础。熟练运用做题套路,以做题为主。

第四遍:做面经,开阔思路,了解出题形式。基础牢轻松,不牢就痛苦

做题厉害的并不是聪明,而是踏踏实实的努力!

笔试注意事项

在笔试的时候,很多公司的大题的笔试系统其实并不是像某网站一样只写个子函数就行了,而是和ACM竞赛的类型一样,需要自己处理输入输出。这部分一定要提前练习。如果不熟悉系统,笔试的时候虽然有思路,但是也写不出来。建议提前熟悉下输入输出。 OJ在线编程常见输入输出练习场

小米C/C++工程师真题解析

面经可以参考下这篇文章2020秋招联发科小米等面经分享

选择题

1.已经获得除CPU以外的所有所需资源的进程处于()状态

A 就绪状态

B 阻塞状态

C 运行状态

D 活动状态

A

进程的五状态模型:

运行态:该进程正在执行。

就绪态:进程已经做好了准备,只要有机会就开始执行。

阻塞态(等待态):进程在某些事情发生前不能执行,等待阻塞进程的事件完成。

新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中,通常是进程控制块已经创建但是还没有加载到内存中的进程。

退出态:操作系统从可执行进程组中释放出的进程,或由于自身或某种原因停止运行。

2.某二叉树的中序遍历序列为32145,后序遍历序列为32145,则前序遍历序列为

A 54123

B 32154

C 32541

D 54321

A

二叉树的中序遍历序列为 32145 ,后序遍历序列为32145 ,可知该树只有左子树结点,没有右子树结点, 5 为根结点。

中序遍历序列与后序遍历序列相同,说明该树只有左子树没有右子树,因此该树有 5 层,从顶向下依次为54123 。

具体分析过程也可以参考下[北京联发科嵌入式软件工程师笔试题目解析]

3.若已知一个栈的入栈顺序是1,2,3...,n,其输出序列为P1,P2,P3,....Pn,若P1是n,则Pi=()?

A i

B n-i+1

C 不确定

D n-i

B

栈的排列遵循先进后(即后进先出)出的原则

因为P1是n,是出栈的第一个数字,说明在n之前进栈的数字都没有出栈。所以这个顺序是确定的。

还可以知道,最后出栈的一定是数字1,也就是Pn。代入这个式子,是正确的。

4(多选题).下面协议中属于应用层协议的是()

A ICMP、ARP

B FTP、 TELNET

C HTTP、SNMP

D SMTP、POP3

BCD

1、物理层:以太网 、 调制解调器 、 电力线通信(PLC) 、SONET/SDH 、 G.709 、 光导纤维 、 同轴电缆、 双绞线等。

2、数据链路层:Wi-Fi(IEEE 802.11)、WiMAX(IEEE 802.16) 、ATM 、 DTM 、 令牌环 、以太网、FDDI、 帧中继、 GPRS 、 EVDO、HSPA 、HDLC 、 PPP 、 L2TP 、PPTP 、ISDN·STP、CSMA/CD等。

3、网络层协议:IP IPv4 、IPv6、 ICMP、ICMPv6·IGMP、IS-IS 、IPsec 、ARP 、RARP 、RIP等。

4、传输层协议:TCP、 UDP、TLS 、 DCCP、 SCTP 、 RSVP 、OSPF 等。

5、应用层协议:DHCP 、DNS、 FTP 、Gopher 、 HTTP、 IMAP4 、 IRC、 NNTP 、 XMPP、POP3 、SIP、 SMTP、SNMP 、SSH、TELNET 、 RPC 、RTCP 、RTP 、RTSP、SDP 、 SOAP、GTP、STUN 、NTP、SSDP 、 BGP 等。

5.下列程序段的时间复杂度是()

int fact(int n){ if(n子类的构造方法

5(多选题)以下分别对变量a给出定义,正确的有()

A 一个有10个指针的数组,该指针指向同一个整型数:int *a[10];

B 一个指向10个整型数组的指针:int ( *a)[10];

C 一个指向函数的指针,该函数有一个整型数并返回一个整型数:int *a(int);

D 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数:int ( *a[10])(int);

ABD

C改为:int (*a)(int)

指针数组:首先是一个数组,数组里面的元素都是指针;(存储指针的数组)

数组指针:首先是一个指针,指针指向一个一维数组;(指向数组的指针)

函数指针:一定要理解,回调中经常使用函数指针;

指针函数:就是一个普通函数,只是返回值是指针形式;

6(多选题)下列叙述正确的是()

A 指针可以为空,引用不能为空。

B 不存在指向空值的引用,但是存在指向空值的指针

C 引用必须被初始化,但是指针不必

D 指针初化后不能被改变,引用可以改变所指对象

ABC

D:引用初始化以后不能被改变,指针可以改变所指的对象

7.下列关于C++容器描述错误的是?()

A list类型支持双向顺序访问,在list中任何位置插入删除都很快

B deque类型支持快速顺序访间,在头尾插入/删除速度很快

C C++标准库map的底层实现为红黑树

D vector类型在每次调用 pushback时都在栈上开辟新内存

B

deque:双端队列。支持快速随机访问。在头尾位置插入/删除速度很快。

8(多选题)C++中,下列数据类型的转换,哪个可能会发生信息丢失?

A int -> double

B int -> long

C long -> float

D int -> char

CD

精度丢失只会发生在从大范围到小范围的转换

32位编译器:

char short int long float double 指针

1 2 4 4 4 8 4

64位编译器:

char short int long float double 指针

1 2 4 8 4 8 8

9.在Java中,要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以()

A 使用 private关键字

B 让该类不使用任何关键字

C 使用public关键字

D 使用protected关键字

B

default和protected的区别是:

前者只要是外部包,就不允许访问。

后者只要是子类就允许访问,即使子类位于外部包。

总结:default拒绝一切包外访问;protected接受包外的子类访问

10(多选题)list和vector的区别有哪些()

A vector拥有一段连续的内存空间,因此支持随机存取,如果需要高效的随即存取,而不在乎插入和删除的效率,使用 vector.

B list拥有一段不连续的内存空间,因此支持随机存取,如果需要大量的插入和删除,而不关心随即存取,则应使用list

C 已知需要存储的元素时,使用list较好

D 如果需要任意位置插入元素,使用 vector较好

AB

C:已知需要存储的元素时,vector要好

D:如果需要任意位置插入元素,list要好

编程题1(字符串筛选)

给定一个字符串,需要去除所有之前曾经出现过的字符,只保留第一次出现的字符。

样例输入:hello,welcome to xiaomi

样例输出:helo,wcmtxia

 思路

首先需要定义两个数组,分别为“输入的字符串数组”old[ ] 以及 “输出的字符串数组” new[ ];

取old数组中的第一个字符去和new数组中的每一个字符串相比较是否相同,若出现相同,则取old数组的下一个字符再次与new中每一个字符相比较,若都不相同则存入new的数组中;

最后输出数组new;

代码

#include void killsame(char *o, char *n) { int i=0, j, k=0; int label; while(o[i] != '\0') { label = 1; for(j=0; j


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭