为什么软件可以在一个操作系统上运行,在另外一个操作系统上不可以?而有的软件却都可以?
不同的硬件逻辑和接口;每个软件又有自己的依赖环境
(*p)++和*p+++
哈夫曼树的应用
数据压缩哈夫曼编码、通信网络中传输数据和调度、
离散数学:偏序、单射、双射
偏序:关系是自反、反对称、传递
单射:不用变量映射到不同的值
双射:单射+满射
连续和可导的关系?
数据库范式
第一范式(1NF):确保每列保持原子性,即数据库表的每一列都是不可分割的原子数据项,不可再分的数据项。
第二范式(2NF):2NF去除非主属性对于主属性的部分依赖。 数据表里的每一条数据记录,都是可唯一标识的,而且所有的非主键字段,都必须完全依赖主键,不能只依赖主键的一部分。球队比赛,编号和比赛编号
第三范式(3NF):3NF去除所有非主属性对其它非主属性的依赖。 非主属性之间不能有依赖关系,它们是互相独立的员工信息和部门信息。
巴斯科德范式(BCNF):BCNF消除主属性对主键的部分与传递依赖。仓库名、管理员、物品名、数量
集合内有哪些关系?
空集、子集、交集、并集、补集
集合内等价关系定义,充要条件
自反对称传递
连续与积分的关系?
连续一定可积,可积不一定连续
软件工程的测试具体有哪些方法?
软件工程:软件系统的三个测试阶段
在软件工程中,软件系统的三个测试阶段分别是单元测试、集成测试和系统测试。
在单元测试阶段,对软件中的各个独立单元(通常是函数或方法)进行测试,以验证其功能是否按预期工作。
在集成测试阶段,将已经通过单元测试的单元组合在一起,然后测试它们之间的交互和集成是否正常工作。有助于发现不同单元之间的接口 问题和集成问题。
在系统测试阶段,对整个软件系统进行测试,以验证其是否符合需求规格说明书中的要求。
软件工程:白盒测试主要有哪些覆盖?
语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖等。
黑盒测试:等价类划分、边界值分析、判定表、
欧拉图、连通图
欧拉图通过每条边且每条边仅通过一次
无向连通图所有结点的度数为偶数
有向连通图当且仅当每个结点的入度等于出度
如何证明连通图?
dfs、并查集
哈希查询时间复杂度
操作系统分页分段
分段动机就是为了解决内存管理带来的碎片问题的一种机制,分段允许逻辑地址空间的进程放入内存是不连续的(需要连续一块、外部碎片)
分页也会产生内存碎片,但是这个内存碎片式可控的;
操作系统虚拟内存:逻辑上扩充了内存
TCP和IP的区别
1.TCP工作于传输层,提供面向连接、可靠的地数据传输服务,PDU为报文。IP工作于网络层,提供无连接的、不可靠的、尽最大努力交付的数据报服务。PDU为分组。
2.TCP提供应用进程之间的通信,而IP提供主机之间的通信。
3.TCP以IP为基础,面向应用层提供服务。IP协议为TCP提供服务。IP协议将数据从一台主机发送至另一台主机,TCP则保证了其传输可靠性。
4.TCP是面向连接的,而使用的低层网络可以是无连接的,也可以是连接的,但使用无连接的网络的会使整个网络系统更加灵活。
网络模型有哪几种?
TCP和UDP区别
TCP应用于哪些场景
计算机网络:简述TCP和UDP协议的主要特点和应用场合。
TCP面向字节流,提供面向连接的可靠传输服务,TCP协议通过序列号、确认和重传机制等保证数据的可靠传输。TCP也提供了流量控制和拥塞控制。 TCP协议适用于需要可靠数据传输的场景,如文件传输、网页浏览、电子邮件等。对应应用层的协议有FTP、HTTP、SMTP、POP3等。
UDP提供无连接的不可靠传输服务,报文头部短传输开销较小。通常用于对传输速度要求高的场景,如实时音视频传输、网络游戏等。
面向对象的三大特性并具体说明
封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。 封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节 多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术, C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。简单地说,多态意味着单个函数可以有多个不同的实现。
类的访问权限有哪几种?默认的是哪一种?
public、private、protected
c++的class默认private,struct默认是public
class和struct的区别?
c++考虑到对c兼容,将struct保留,但是和c的struct又不太一样了,做了扩展适应面向对象,
class是引用类型,而struct是值类型。
class中默认的成员访问权限是private的,而struct中则是public的。
数电什么是组合逻辑、时序逻辑、触发器的种类
1)组合逻辑电路:输出只与当时的输入有关,如与门、非门、或门等各种门电路(不含存储信号的单元);
2)触发器:是一个具有记忆功能的、具有两个稳定状态(0或1)的信息存储器件,是构成多种时序逻辑电路的基本逻辑单元,由门电路组成,包含D触发器、JK触发器、RS触发器等;
3)时序逻辑电路:输出不仅与当时的输入有关,还与电路原来的状态有关,可以理解包含触发器的电路称作时序逻辑电路;
解释一下线性回归中的线性的意思
有两层含义:一是指自变量和因变量之间的关系是线性的,二是指模型的拟合方式是线性的。
一条指令的执行过程:
取指、译码、执行、访存、写回
软件工程有哪些领域?
需求、设计、测试、维护、质量
什么是软件?
性能分析和功能分析
相辅相成的。只能功能好才有条件去分析性能提高性能。
系统或产品的功能需要匹配其性能,以确保整体的有效性和用户体验。
性能分析是一种技术过程,用于评估和优化软件、应用或系统的性能。
功能分析则侧重于系统或产品所提供的特定工作或任务的实现能力。
软件工程模型?
瀑布、增量、原型
瀑布: 瀑布模型又称为经典生命周期,它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过策划、建模、构建和部署的过程,最终提供完整的软件支持。
增量: 增量模型综合了线性过程流和并行过程流的特征,随着时间的推移,在每个阶段都运用线性序列。整体上,按照瀑布模型的流程实施项目开发;软件的实际创建中,将软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完毕,集成到系统之中交付用户使用。
原型: 客户定义了软件的一些基本任务,但是没有详细定义功能和特性需求。 快速构建、容易修改。
矩阵的秩的定义?
计算机的五大组成部件,CISC和RSIC
运算器、控制器、存储器、输入输出
SVM和单隐层神经网络的关系?
简而言之,神经网络是个“黑匣子”,优化目标是基于经验风险最小化,易陷入局部最优,训练结果不太稳定,一般需要大样本;
而支持向量机有严格的理论和数学基础,基于结构风险最小化原则, 泛化能力优于前者,算法具有全局最优性, 是针对小样本统计的理论。
概率论:独立和相关,贝叶斯公式
若X与Y相互独立,则X与Y不存在任何函数关系,包括线性关系。
梯度定义,以及与导数的区别
表示某一函数在该点处的方向导数沿着该方向取得最大值。 函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
导数是值。
几个机器学习算法
价格预测
二分类问题
监督学习和无监督学习
软件生存周期
什么是构建?
如何保证软件质量?
首先不是靠后期测试,测试在绝大部分情况下只能是锦上添花。
软件质量一定是设计和开发的过程中实现的。
功能、性能、兼容、易用、可靠等等。
线性方程组什么时候有唯一解?
对增广矩阵化简阶梯矩阵,观察方程个数,等于未知数个数的话就是唯一解。
图形和图像的区别?