信工所复试(专业面)

article/2025/8/19 0:59:26

原文请戳2022年中科院信工所二室考研杂记__Melody~的博客-CSDN博客

一,408复习:

一)计算机网络

(见专题文章计算机网络专题__Melody~的博客-CSDN博客)

二)数据结构

1,什么是前缀树(Tire Tree)
利用字符串的公共前缀进行查询,减少无用的比较

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oOz5pyJ5LiA5oqKZmVuZGVy,size_15,color_FFFFFF,t_70,g_se,x_16


基本性质:
①除了根节点外每个结点都能被一个路径找到;
②每条边对应一个字符,到某个结点路径上扫过的所有字符就是这个结点代表的字符串;
③每个结点向下所有边的字符都不同

2,用两个指针如何判断链表有没有环?

可以设置一快一慢两个指针,快的每次前进两步,慢的每次前进一步,若存在环,快指针最终快慢指针一圈,和慢指针相遇;若不存在环,快指针指向NULL

3,如何将[a1,a2,a3]和[b1,b2,b3]构成的数组交换位置?

先将a1,a2,a3,b1,b2,b3整体逆置,再将b3,b2,b1和a3,a2,a1分别逆置

4,B和B+树的区别和联系,以及各自适用场合

联系:B+树是B树(本质是多叉树)的一种变体

区别:

1)B+树只在叶节点存放记录,其他结点只起到索引作用;B树在所有结点中保存记录

2)B+树的叶节点支持顺序查找,B树不支持

3)B+树n个结点对应n个分叉;B树n个结点对应n+1个分叉

应用:B+树的特性使得他在一个磁盘块中保存更多的关键字,适用于文件索引和数据库索引

B树:用于磁盘文件组织

5,堆排序的原理

以顺序为例,利用大根堆,每次选择堆顶元素加入排序序列(即与最后一个元素交换位置),再将剩余的元素调整为大根堆,循环往复,直到排序完成。

时间复杂度:O(nlog2n) 要进行n趟,每次调整堆要log2n

6,八皇后问题怎么解决和其时间复杂度

1)问题描述:在一个8×8的棋盘上,摆八个皇后,与皇后同行同列或者同对角线的位置不能摆放

2)解决方法:递归回溯法,在每行试探性的放置一个皇后,若这一行任意位置都无法拜访,则回溯到上一行,改变其位置。直到在每一行上都放置皇后。

3)时间复杂度:找到一种解决方式的复杂度是O(n^2)

7,排序算法知道哪些,哪个是最快的,为什么?

一)插入排序:

①直接插入排序:将序列分为有序和无序两部分,每轮将无序部分的第一个元素插到有序部分中,将比他大的元素都右移,最终找到插入位置。        时间复杂度O(n^2)

②折半插入排序:也将序列分为有序和无序部分,每轮将无序部分的第一个元素插到有序部分中,先利用折半查找找到要插入的位置,将比他大的那部分全部右移。        时间复杂度O(n^2)

③希尔排序:将序列按步长分成多个子表,每个子表用直接插入排序。        时间复杂度无法计算

二)交换排序:

①冒泡排序:每轮从前往后,两两比较元素的大小,将大的排到后面,每轮能确定一个元素的最终位置,若此轮没有交换,则排序提前结束。        时间复杂度O(n^2)

②快速排序:每次确定一个基准元素(一般选的是序列的第一个元素),将比此元素大的移到他的右边,比他小的移到左边,然后对左边和右边的子表进行相同的递归操作。        时间复杂度O(nlog2n)

三)选择排序:

①简单选择排序:将序列分为有序和无序两个部分,每次选择出无序部分中最小的一个元素加入有序部分中。        时间复杂度O(n^2)

②堆排序:(见上述) 时间复杂度O(nlog2n)

四)归并排序:

将k个有序的子序列,归并成一个序列,叫做k路归并。每次归并就是在每个子序列中设一个指针,选择当前指针指向元素中最小的加入新序列,知道全部加入新序列。在一开始,将单个元素都视为一个初始子序列。        时间复杂度O(nlog2n)

五)基数排序:

将每个元素分成多个组,按照每组的取值,对元素进行分配和回收,最后得到有序序列(若要得到递增序列,则最后排权重大的组。)        分成d个组,这个组的取值有r种,分配要n次,回收要r次 时间复杂度O(d(n+r))        

性能比较:一般采用速度快,且不用开辟新空间的快速选择排序。(归并排序和堆排序都需要开辟新空间)

对于数据量非常大,且容易分成多个组的元素(如身份证号),用基数排序的效果会更好

8,平衡二叉树和红黑树的区别?

1)平衡二叉树,要保证两个子树的高度差不超过1,查找性能强,但插入删除复杂;

2)红黑树,是一种弱化的平衡二叉树,可以保证最高子树的高度不超过最低的两倍,插入删除较简单。

9,数据结构的字典树和B+树是什么?

字典树就是前缀树,从根结点出发到每一个叶子结点的路径表示一个单词。

B+树是一种分块查找树,所有记录存放在叶子结点中,可以进行顺序查找,n个结点有n个分叉。

(其余见专题文章数据结构面试问题__Melody~的博客-CSDN博客)

三)操作系统

(见专题文章操作系统专题__Melody~的博客-CSDN博客)

四)计算机组成原理

(见专题文章计算机组成原理专题__Melody~的博客-CSDN博客)

二,编程语言

一)C++:

1,C语言定义常量的方法
①宏定义
#define N 3
②使用const
const int N = 3

2,堆和栈的区别

于用C/C++编译的程序的内存分成以下五个部分:

①栈区:存局部变量,分配类似于栈

②堆区:存malloc或者new开辟的地址空间,分配方式类似于链表

③代码区:存二进制代码

④全局区(静态区):存全局变量、静态变量。(全局区分为已初始化全局区(data)和未初始化全局区(bss))

⑤常量区:存常量字符串

1)管理方式:栈由系统自动分配和释放;堆用new运算符或malloc函数申请,并且手动释放。

2)申请大小:栈的大小一般是连续的一块固定区域,且比较小;堆的空间是空闲的内存空间,不连续且可以分配很大

3)生长方向:栈是向下生长的,即向着内存减小的方向;堆是向上增长的,即向着内存增大的方向 。

总结:堆是自己做菜,自由度高;栈是去菜馆吃饭,快捷方便

3,C和C++的区别

1)C是一种面向过程的语言,针对的是一个个的函数;C++是对C的继承,是面向对象编程的,针对一个个的类。

2)C++中加入了引用的&概念

3)C++可以进行函数重载

4,数据段,代码段和BSS段是什么?

于用C/C++编译的程序的内存分成以下五个部分:(见上述)

其中全局区中保存全局变量和静态变量,其中未被初始化的是BSS段,初始化了的是数据段。以二进制保存代码中函数的是代码段。

5,说一下什么是多态(用例子)

在C++中,多态的实现主要有函数重载(静态绑定)和函数重写(动态绑定)

函数重载是指在一个类中,函数名相同的函数,所含的参数数量或者类型不同,函数地址在编译期间即绑定;

函数重写是用虚函数实现的,在父类中定义一个虚函数,子类在继承时候重新定义这个虚函数,函数地址在程序运行时候,根据调用的类绑定

6,说一下接口的定义以及抽象类的作用

如果类中至少有一个函数被声明为纯虚函数,则这个类就是一个抽象类,也称为接口。不能被创建为一个实例。

抽象类的作用就是为之后的子类提供一个公共的接口。

纯虚函数是通过在声明中使用 "= 0" 来指定的

7,说一下引用和指针,及其区别?

引用是C++中增加的一个概念,是一个变量的别名,在定义后就不能修改。

指针指向变量的内存,保存的是一段地址。

区别:

引用在定义后就只能指向一个变量,指针可以指向别的;

指针是一个实体,需要分配内存,引用仅仅是一个别名;

指针可以为空,引用必须指向有效的变量

8,析构函数和构造函数干什么用的?

构造函数是创建一个对象前,做初始化工作,如为成员变量赋初值;析构函数是撤销一个对象前做的清理工作,如释放空间等。

注意析构函数和构造函数是不能直接调用的,只能由系统调用

9,C++能用C的库吗?

可以,但C不能用C++的

10,编程中宏定义的作用?

#define MAX 2

可以提高程序的易读性和通用性,便于直接修改。如数组大小常用宏定义。

11,虚函数和纯虚函数的区别?

子类如果要继承带有纯虚函数的父类,必须实现其纯虚函数,但是虚函数可以默认使用父类定义的方法。

12,C++的(inline)内联函数是什么?

指在编译时,直接把调用的函数替换为其代码段

13,什么是内存泄漏?怎么知道内存泄漏了?

指程序已经动态分配的堆内存由于某种原因未释放而导致系统内存浪费的现象。

可以标记每一处申请和释放内存的位置,进行调试

内存溢出是指程序在申请内存的时候,没有足够的内存供他使用。

三,其他专业课

一)数学

1,什么是特征值和特征向量
特征值:设A是n阶方阵,如果存在数m和非零列向量x,使得Ax=mx成立,则m是A的一个特征值
特征向量:x是A对应于m的特征向量(也可以是矩阵)

二)数据库

已知问题

1,数据库事物中ACID指什么?
①事务(Transaction):是将一系列SQL语句作为一个逻辑单元,逻辑单元里面的单个操作要么全做要么全都不做
②ACID:
(Atomicity)原子性:指整个事务是不可分割的工作单位。
(Consistency)一致性:事务不能破坏关系数据的完整性以及业务逻辑上的一致性
(Isolation)隔离性:在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。
(Durability)持续性:只要事务成功结束,它对数据库所做的更新就必须永久保存下来

2,NoSQL是什么?
是Not Only SQL,是一种非关系型的数据库,易扩展,数据量大,用于超大规模数据的存储

3,如何优化数据库的查询

1)代数优化:关系代数表达式的优化

具体就是要改变查询语句中操作的次序和组合 最基本的一条就是选择运算要尽可能先做,还有找出公共表达式

2)物理优化:指存取路径和底层操作算法的选择

如建立索引、限制数据字段长度

4,数据库索引是什么?数据字典和数据流图是什么(了解)?

索引好比是一本书的目录,可以加快数据库查询的速度。由B+树实现。

数据字典是各种数据描述的集合,数据流图是数据在系统内的传输路径。

5,数据库基本概念的表述:

数据(D)是仓库中的货物;

数据库(DB)是仓库;

数据库管理系统(DBMS)是仓库管理员;

数据库系统(DBS)是仓库、管理员以及服务部门(数据库管理员和应用程序)

6,常见的数据库管理系统及其特点:
Oracle(甲骨文)是最领先的DBMS,针对大型企业;

SQLSever和MySQL针对中小企业,易学易用,功能全面效率高;

noSQL是非关系型数据库,可应用于超大规模数据的存储。

(其余见专题文章)

7,select底层怎么实现的?

select在底层实现的每一步都会生成一个虚拟表。

首先是获取数据(from),求笛卡尔集,如果有连接操作还需要添加外部行,得到一个虚拟表t1;然后是过滤数据(where),对上一步产生的虚拟表,通过where给的条件,选出符合条件的生成虚拟表t2;

若有分组操作(group by),再进行分组,得到虚拟表t3;

最后用select提取目标字段,得到最终选择的结果。

注意:group by 是某一属性相同的记录划为一组,若要选出这个组,用的是having

8,聚簇索引和非聚簇索引是什么?

1)聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据

2)非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行

(其余见专题文章:数据库专题__Melody~的博客-CSDN博客)

三)其他

1,人工智能、机器学习和深度学习的关系?

机器学习是人工智能的一种方法,深度学习是机器学习的一种技术,是利用神经网络来提取特征,从而模拟人脑来解释图片、文字的方法。

注意:

监督学习:用已经贴上标签的样本来进行训练,用学到的特征来对无标签的样本贴标签,多用于分类问题。

无监督学习:用没有标签的样本进行训练,让他用自己学到的样本间的相似性进行分类,多用于聚类问题。

半监督学习:有两个样本集,一个有标签,一个没有标签,综合利用他们进行训练。

深度学习也有有监督和无监督的

二,简历中可能出现复试问题

一)LINUX操作

1,在一个文件夹下,怎么用命令找含有某字段的文件?

1)找文件名中有这个字段的命令:find ./model -name *out*

(find + 【路径】 + -name + 【内容】*表示字段前后的内容)

2)找文件内容中有这个字段的命令:grep 【字段】 【文件路径】

2,Linux重定向是怎么回事?

Linux有三种数据流:

输入信息会从 stdin 中读取(标准输入,通常是键盘或鼠标)。

输出信息会被输出到 stdout (标准输出,一个文本文件或者数据流)。

错误信息会被输出到 stderr

用大于号>重定向输出        用小于号<重定向输入

3,Linux进程同步怎么实现?

主要有两种方法实现进程同步:

1)信号量机制:设置一个信号量,前v后p

2)使用管程中的条件变量:将进程阻塞并且添加到条件变量队列上,按顺序唤醒

4,gdb是什么?

gdb是Linux下的一种程序调试工具

5,linux文件权限怎么看?

命令:ls -l 【文件名 】

权限有rwx三种,对应4、2、1,分为所有者user、群组group、其他人other

改变权限 用 chmod 661 【文件名】

6,Linux如何免密登录?

这里写图片描述

A要免密登录到B,B首先要有A的公匙,然后B做一次加密验证(随机生成一个字符串,用公匙加密,看A能不能用私匙解开)。

公匙加密后的数据只有私匙才能解开,属于非对称加密。


http://chatgpt.dhexx.cn/article/EI4iGq8B.shtml

相关文章

2020保研夏令营之路——武大网安、北理计算机、中科院信工所六室

2020年夏令营就这么毫无体验感地开始了。。。各个学校都变成了线上面试。不过依照往年的面经来说&#xff0c;基本没有什么变化。鉴于我本人比较菜&#xff0c;只有成绩拿得出手的那种&#xff0c;所以跟我有同样情况的学弟学妹们可以找我交流交流&#xff01; 本人情况&#…

保研夏令营记录-上交清华深研院北大信工中科院自动化所

保研夏令营记录 个人基本情况前期准备上海交通大学 &#xff08;6月1号&#xff09;清华深研院&#xff08;7月5日-10日&#xff09;北大信工(7月10日-7月13日)中科院自动化所&#xff08;7月15日-7月19日&#xff09;关于九推 注&#xff1a;此帖所涉及的夏令营全部没有机试&a…

【中科院信工所】-2021考研经验-记录一段每天都在思考如何学习的日子

今天出了录取名单&#xff0c;二战上岸&#xff0c;突然觉得综艺&#xff0c;B站都好没意思&#xff0c;也不知道该干什么&#xff0c;索性记录一下备考的这段日子&#xff0c;碎碎念可能会很多&#xff0c;想看干货可以直接点标题阅读。 目录 基本情况 初试备考 数学一&#x…

【大咖说Ⅱ】中科院信工所研究员林政:大规模预训练语言模型压缩技术

欢迎来到2022 CCF BDCI大咖说系列专题报告 听顶级专家学者围绕特定技术领域或选题&#xff0c;讲述自身成果的研究价值与实际应用价值 便于广大技术发烧友、大赛参赛者吸收学术知识&#xff0c;强化深度学习 每周一、三、五&#xff0c;「大咖说」与你相约“一碗数据汤”~ 本…

2020中科院信工所夏令营面试

中科院信工所夏令营招了很多人&#xff08;二室进群的有73个&#xff0c;大群好像二三百人&#xff09;&#xff0c;注重项目能力&#xff0c;获得重大奖项。 流程是&#xff1a;先在系统上报名->有人给你打电话&#xff0c;说让你来面试&#xff08;我的是二室&#xff09…

活动报名 | 中科院信工所陈恺:人工智能安全攻防对抗

活动议程 日期&#xff1a;2月24日&#xff08;周五&#xff09; 时间 主题10:00-10:05开场简介孟国柱 中国科学院信息工程研究所信息安全国家重点实验室副研究员&#xff0c;青源会会员10:05-10:50人工智能安全攻防对抗陈恺 中国科学院信息工程研究所研究员&#xff0c;中国科…

2021网安保研之路-----中科院信工所

2021保研之路-----中科院信工所 个人情况信工所情况介绍夏令营流程 个人情况 西安某211的2018级本科生&#xff0c;本科专业是网络空间安全&#xff0c;当时是被调剂的这个专业。到大三保研的时候才觉得网安专业保研还比较轻松&#xff0c;相对于计算机科学啥的轻松多了&#…

2019年中科院信工所复试经验帖

总述&#xff1a; 今天是4月1日愚人节&#xff0c;距离复试结束已经3天了&#xff0c;很幸运收到了信工所拟录取通知。复试成绩83.74分。因为复试刚刚结束&#xff0c;趁着自己还没忘&#xff0c;想记录一些复试经验&#xff0c;给师弟师妹们考研复试做为参考。我一志愿报的二室…

【中科院信工所】22考研经验分享

2022年4月7日&#xff0c;随着信工所拟录取的名单公布&#xff0c;我长达十四个月的考研征程终于画上了圆满的句号。回首看这一年多的征程&#xff0c;发现有很多想复盘的地方&#xff0c;在这里写出来&#xff0c;可供同行者浏览&#xff0c;后来者借鉴&#xff0c;以及多年后…

褒贬不一,中科院信工所是否值得报考?

写在前面 近年来&#xff0c;中科院发展迅猛&#xff0c;报名人数逐年增加。多数保研er对中科院了解可能仅限于中国科学院大学这所“双一流”高校&#xff0c;对中科院的诸多研究院所不甚了解&#xff0c;信息工程研究所作为中科院研究所的一员&#xff0c;近几年发展迅速&…

清北级别,补助丰厚,这样的中科院信工所你心动了吗?

1、院校介绍 中国科学院信息工程研究所是2011年批准成立的中国科学院直属科研机构。目前拥有信息安全国家重点实验室、信息内容安全技术国家工程实验室等一批国家级和省部级的科研创新平台。主要研究方向包括&#xff1a;密码理论与安全协议、信息智能处理、数据安全、通信与电…

数字图像处理习题(一)

数字图像处理习题&#xff08;一&#xff09; 文章目录 数字图像处理习题&#xff08;一&#xff09;一、简答题二、编程题1. 图像处理1.1 图像导入、裁减显示&#xff08;长宽分别为原尺寸1/2)、彩色图像灰度化、保存 2. 图像采样与量化2.2 利用求均值方法是实现4倍降采样2.3 …

图片标注问题image_caption

数据集&#xff1a; 数据集中的训练集使用的是coco train 2014&#xff0c;82783张图片&#xff0c;测试集使用的是 val 2017 &#xff0c;5000张图片,对应的caption是captions_train2014.json,和captions_val2017.json。 该文件中是以字典的形式包含其内容信息&#xff0c;key…

OpenCV —— 频率域滤波(傅里叶变换,低通和高通滤波,带通和带阻滤波,同态滤波)

频率域滤波 基本概念傅里叶变换二维离散的傅里叶变换快速傅里叶变换傅里叶幅度谱与相位谱谱残差显著性检测卷积与傅里叶变换的 频率域滤波低通滤波和高通滤波带通和带阻滤波同态滤波 基本概念 频率域滤波 —— 百度百科 频率域滤波是对图像进行傅里叶变换&#xff0c;将图像由…

基于matlab的数字图像基本处理运算

一、实验目的 &#xff08;1&#xff09;掌握线性拉伸和非线性拉伸的概念实现方法 &#xff08;2&#xff09;掌握图像代数运算的概念和实现方法 &#xff08;3&#xff09;掌握图像放大、缩小、平移、镜像、旋转原理和实现方法 &#xff08;4&#xff09;掌握最邻近插值和…

实验二 图像增强方法编程与应用

目录 一、实验目的 1. 理解常见图像增强方法的原理和特点&#xff1b; 2. 掌握常见的灰度线性和非线性变换方法&#xff1b; 3. 掌握直方图均衡增强的原理与应用方法&#xff1b; 4. 掌握模板卷积的概念、原理与实现方法 5. 掌握均值滤波的技术原理与实现方法&#xff1b…

PyTorch:tensor、torch.nn、autograd、loss等神经网络学习手册(持续更新)

PyTorch1&#xff1a;tensor2、torch.nn、autograd、loss等神经网络学习手册&#xff08;持续更新&#xff09; 链接&#xff1a;画图、读写图片 文章目录 一、tensor二、完整训练过程&#xff1a;数据、模型、可学习参数、保存与加载1、数据dataa、构建网络-数据b、补充知识&…

Android编译libjpeg-turbo so高效压缩图片

https://www.jianshu.com/p/8ebe0ddd21f7 https://www.jianshu.com/p/f305fb008ab6 一 . 图片的基本知识 图像是由像素组成的&#xff0c;而像素实际上是带着坐标的位置和颜色信息的。它是有若干行和若干列的点组成的&#xff0c;他们相交就会有无数个点。假如我们随便取出一个…

(数字图像处理MATLAB+Python)第二章数字图像处理基础-第三、四节:数字图像的生成和数值描述

文章目录 一&#xff1a;数字图像的生成与表示&#xff08;1&#xff09;图像信号的数字化&#xff08;2&#xff09;数字图像类型 二&#xff1a;数字图像的数值描述&#xff08;1&#xff09;常用坐标系&#xff08;2&#xff09;数字图像的数据结构&#xff08;3&#xff09…

MATLAB GUI设计 图像处理基本操作(二)

一、直方图及直方图均衡化 直方图是从图像灰度图中提取的亮度信息&#xff0c;包含灰度级和像素数&#xff0c;对于uint8图像其灰度级为0~255&#xff08;2^8256&#xff09;&#xff0c;用imhist&#xff08;&#xff09;函数显示。imhist&#xff08;&#xff09;/numel可获…