复试专业问答六(hd,hs)

图的邻接表与逆邻接表

https://blog.csdn.net/dyw_666666/article/details/85232559

画有向图的逆邻接表,要看入边,即别人指向自身的边。

因此,方法跟画邻接表是一样的,只是要注意的是入边!!

tcpip协议概述

参考:https://blog.csdn.net/a197p/article/details/95246095

tcpip协议分层
TCP/IP通常被认为四层系统,应用层,运输层,网络层,链路层。
1.链路层,有时也称数据链路层网络接口层,包括计算机设备驱动程序和计算机网络接口卡
2.网络层,包括ip协议(网际协议),icmp协议(internet互联网控制协议),以及IGMP协议(internet组管理协议)
3.运输层主要为两台主机应用程序提供端到端通信,tcpip协议族中,两个互不相同传输协议tcp传输控制协议和udp用户数据包协议
tcp为两台主机提供数据通信,所做工作把应用程序分为小块交给下面的网络层,可靠
另一方面udp为应用层提供简单服务,不保证到达,这两种用途不同。
4.应用层负责处理特定应用程序细节,都会实现下面程序
telnet 远程登录
ftp 文件传输协议
smtp 简单邮件传输协议
snmp 简单网络管理协议

tcp、ip分层

tcp,udp是两种最著名运输层协议,二者都使用ip作为网络协议
icmp是ip协议附属协议
igmp是internet组管理协议,
arp,rarp是网络接口

互联网地址

ip地址长32bit
dns域名系统提供主机名和ip映射

小结

tcpip协议族分四层,链路层,网络层,运输层,应用层,每层各有不同责任,tcpip中网络层和运输层之间区别,网络层ip提供点到点服务,运输处tcpudp提供端到端服务

数据库null值是什么

NULL:就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。在数据库里是严格区分的,任何数跟NULL进行运算都是NULL, 判断值是否等于NULL,不能简单用=,而要用IS关键字, Mysql3.23.0或以后支持用 <=> 用来比较两个NULL值是否相等, 即 select * from table where id <=> NULL。
空 (NULL) 值:表示数值未知(在实际意义中,如果使用null,就是代表变量值是未知的,比如手机号码设为null,说明不知道手机号码是什么)。空值不同于空白或零值。没有两个相等的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。
在写入数据的时候,空字符串” 也是一个确定的值,所以就算你定义了 NOT NULL 也可以被写入。

E-R图向关系模型转换的规则

 (1) 一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码(关键字)就是关系的码

  (2) 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选键。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。

  (3) 一个1:n联系可以转换为一个独立的关系模式,也可以与任意n端对应的关系模式合并。如果转换为一个独立的模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。如果与n端实体对应的关系模式合并,则需要在该关系模式的属性中加入1端关系模式的码和联系本身的属性

  (4) 一个m:n联系转换为一个独立的关系模式与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

  (5)三个以上实体间的一个多元联系可以转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

 软件工程之模块

原文链接:https://blog.csdn.net/csxypr/article/details/54708231

什么是模块?

在程序设计中,为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。

什么是模块独立性?  

模块独立性是指模块内部各部分及模块间的关系一种衡量标准,有内聚和耦合来度量。

有什么作用?    

1.具有独立的模块的软件比较容易开发出来。这是由于能够分割功能而且接口可以简化

 2.独立的模块比较容易测试和维护。相对来说,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够“插入”模块。
它的度量标准是什么?
【高内聚、低耦合】
内聚:内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。

耦合:耦合是对一个软件结构内各个模块之间互联程度的度量。耦合强弱取决于模块间接口的复杂程度,调用模块的方式,以及通过接口的信息。

编译原理流程

 ​

词法分析是识别出句子中的单词

语法分析是分析句子的语法结构

语义分析及中间代码生成是根据句子的含义进行初步分析

代码优化是对译文进行修饰

目标代码生成是写出最后的译文

批处理系统 、实时系统和分时系统用什么调度

批处理系统常用调度算法:
①、先来先服务:FCFS
②、最短作业优先
③、最短剩余时间优先
④、响应比最高者优先
分时系统调度算法:
①、轮转调度
②、优先级调度
③、多级队列调度
④、彩票调度
实时系统调度算法:
①、单比率调度
②、限期调度
③、最少裕度法 

参考:https://www.douban.com/note/311010077/

一棵树转为二叉树 

参考:https://blog.csdn.net/tjh625/article/details/87839191

左孩子右兄弟

合并两个递增排序的链表

https://blog.csdn.net/chaipp0607/article/details/76622563

解题思路: 
首先可以确定的是,链表1和链表2本身就是递增的,所以合并的过程可以从链表1,2的头结点开始,先比较1,2的头结点中值的大小,将小的值的结点(比如为链表1头结点)作为合并后的链表(链表3)的头结点。随后可以考虑成链表1的从原链表第二个结点开始,再次重复上面的步骤,这样就变成了一个递归问题。
è¿éåå¾çæè¿°

è¿éåå¾çæè¿°

è¿éåå¾çæè¿°

​数据库:解释主键和外键 

 

主键

外键

索引

定义:

唯一标识一条记录,不能有重复的,不允许为空

表的外键是另一表的主键, 外键可以有重复的, 可以是空值

该字段没有重复值,但可以有一个空值

作用:

用来保证数据完整性

用来和其他表建立联系用的

是提高查询排序的速度

个数:

主键只能有一个

一个表可以有多个外键

一个表可以有多个惟一索引

为什么tcp/ip协议不定义物理层数据链路层

https://zhidao.baidu.com/question/508968504.html 

TCP/IP分四层:应用,传输,网络,网际接口。TCP模型在网际接口几乎没定义任何协议,使TCP模型可以通过网际接口连接其他类型网络,比如:802的几个局域网协议(所以叫接口层)。

(注百:很多书中 网际接口被认为是OSI模型中物理层与数据链路层的合并

从二者的区别说起,主要原因有这几点:

1、OSI虽然完善但非常复杂,几乎无法实现,而TCP删除了很多不必要的层次,以达到简化的作用;

2、主推OSI的人是各种专家,模型出专来后却没有产品所以无法把握市场,而TCP是几大IT寡头共同推出,直接占领了市场。即TCP/IP模型出来时,OSI和很多通讯方面已经定义好底层的协议,不适合也没必要再改,同时TCP协议为了向后兼容未来的设备和开放性,故留了个模棱两可的网际接口层。

​软件工程:介绍一下瀑布模型,还有它的优缺点

参考:https://blog.csdn.net/qq_41569732/article/details/103174691 

瀑布模型一直是唯一被广泛采用的生命周期模型。现在,它仍然是软件工程中应用最广泛的过程模型。如图所示为传统的瀑布模型。

需求、分析、设计、编码、测试、维护

优点:
(1)    可强迫开发人员采用规范的方法
(2)    严格地规定了每个阶段必须提交的文档
(3)    要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证


缺点:
(1)    “瀑布模型是由文档驱动的”,在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品是什么样的。很可能导致最终开发出的软件产品不能真正满足用户的需求。


快速原型(rapid prototype)是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。下图描述了快速原型模型(图中实线箭头表示开发过程,虚线箭头表示维护过程)。

优点:

软件产品的开发基本上是按线性顺序进行的
快速原型模型是不带反馈环的,这正是这种过程模型的主要优点:软件产品的开发基本上是按线性顺序进行的。

它的优点是有助于保证用户的真实需要得到满足。
快速原型的本质是“快速”。开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正需求,一旦需求确定了,原型将被抛弃。
当快速原型的某个部分是利用软件工具由计算机自动生成的时候,可以把这部分用到最终的软件产品中。


增量模型也称为渐增模型,如图所示。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。

优点:
(1)    能在较短时间内向用户提交可完成一些有用的工作的产品
(2)    逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
缺点:
增量模型本身是自相矛盾的。它一方面要求开发人员把软件看做一个整体,另一方面又要求开发人员把软件看做构件序列,每个构件本质上都独立于另一个构件。除非开发人员有足够的技术能力协调好这一明显的矛盾,否则用增量模型开发出的产品可能并不令人满意。


螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看做在每个阶段之前都增加了风险分析过程的快速原型模型,如图所示。图中带箭头的点画线的长度代表当前累计的开发费用,螺线旋过的角度值代表开发进度。

基本思想:

使用原型及其他方法来尽量降低风险。

优点:

(1)   对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;
(2)   减少了过多的测试(浪费资金)或测试不足(产品故障多)所带来的风险;
(3)   在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别;
(4)   它是风险驱动的;

缺点:

因为它是风险驱动的,除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险。

喷泉模型

迭代是软件开发过程中普遍存在的一种内在属性。经验表明,软件过程各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代,在面向对象范型中比在结构化范型中更常见。如图所示的喷泉模型是典型的面向对象生命周期模型。"喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。

喷泉模型

为避免使用喷泉模型开发软件时开发过程过分无序,应该把一个线性过程(例如,快速原型模型或螺旋模型中的中心垂线)作为总目标。但是,同时也应该记住,面向对象范型本身要求经常对开发活动进行迭代或求精。

​cpu和外设怎么传数据

 (1)程序传送方式:包括无条件传送和程序查询传送。无条件传送不查询外设状态,认为外设已经准备就绪,直接与外设传送数据。程序查询传送在执行输入输出前,要先查询接口中状态寄存器的状态。  

 (2)中断传送方式:当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU可以执行其他程序,从而提高了CPU的利用率。    

(3)DMA传送方式:DMA方式是一种由专门的硬件电路执行I/O的数据传送方式,它可以让外设接口直接与内存进行高速的数据传送,而不必经过CPU。这种专门的硬件电路称为DMA控制器,简称DMAC。 

​数据库规范化

1NF:数据库中的每一列都是不可分割的简单属性。不满足这一条的数据库就不能称为关系型数据库。

2NF:在1NF的基础上,非码属性必须完全依赖于候选码

3NF:在2NF基础上,任何非主属性不依赖于其它非主属性。

BCNF:在1NF的基础上,所有的函数依赖,例如X->Y,决定因素X中都包含了R的一个候选码

4NF:关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。

规范化的过程中:

1NF到2NF消除了非主属性对码的部分函数依赖;

2NF到3NF消除了非主属性对码的传递函数依赖;

3NF到BCNF消除了主属性对码的部分函数依赖和传递函数依赖;

BCNF到4NF消除了非平凡且非函数依赖的多值依赖。
————————————————
原文链接:https://blog.csdn.net/qq_30719815/article/details/105255838

数据传输方式(并行/串行通信;同步/异步;单工、半双工、全双工) 

数据传输主要有三种不同的划分方式。
并行/串行通信;
同步/异步传输;
按数据的不同传输方向可分为单工、半双工、全双工。

1.并行通信:是指数据的各位同时在多根数据线上发送或接收。如下图

并行通信的特点:控制简单,传输速度快;由于传输线较多,适用于短距离通信。

2.串行通信:是指数据的各位在同一根数据线上逐位发送和接收。如下图

串行通信的特点:控制复杂,传输速度慢;只需要一根数据线,适用于远距离通信。
————————————————
原文链接:https://blog.csdn.net/Dingjiawang6/article/details/81093518

原文链接:https://blog.csdn.net/wkwk7600/article/details/83307118

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Clark-dj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值