软考复习笔记

本文涵盖了计算机科学的多个核心领域,包括数据表示、计算机结构、操作系统、数据库系统、网络技术和软件工程。讨论了二进制转换、Flynn分类法、CISC与RISC、流水线技术、存储系统层次、总线系统可靠性、校验码、进程管理和同步、死锁问题、数据库设计、网络模型和协议、数据结构与算法以及面向对象设计。此外,还涉及了操作系统中的进程状态、数据库模式、网络层次模型和IP地址子网划分等概念。
摘要由CSDN通过智能技术生成

软考复习笔记

目录


计算机组成与体系结构

数据的表示

  • R进制转十进制

     按权展开法:
     	将R进制数的每一位数值用R^k形式表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。
     	当该位位于小数点左边,k值是该位和小数点之间数码的格式。
     	当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的格式+1
    
  • 十进制转R进制使用短除法,例:

     	94/2  余0
     	47/2  余1
     	23/2  余1
     	11/2  余1
     	 5/2   余1
     	 2/2   余0
     	 1
     	 结果1011110
     	 94转换为二进制数为1011110
    
  • 二进制转八进制与十六进制数

     	转八进制:从右到左每三位数,不够三位补0,计算每三位代表的十进制后,转为八进制
     	转十六进制:从右到左每四位数,不够四位补0,计算每四位代表的十进制后,转为十二进制
    
  • 原码反码补码移码之间的关系

     	原码:一个整数,按照绝对值大小转换成的二进制数,最高为为符号位。正数符号位为0,负数符号位为1。
     	反码: 正数的反码为原码,负数的反码是原码符号位外按位取反。
     	补码:反码+1。
     	移码:通常用于表示浮点数的阶码。移码与补码的关系是符号位互为相反数(仅符号位不同)。
    
  • 科学计数法

     	浮点数表示:N = M*R^e^
     	尾数:M
     	指数:e
     	基数:R		
     	举例:1000 = 1.0*10^3^	 
    

计算机结构

  • 计算机结构图

Flynn分类法

  • Flynn分类法

CISC与RISC

  • CISC、RISC区别

流水线技术

  • 概念:指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
    取值–>分析–>执行

  • 流水线计算
    流水线周期:执行时间最长的一段
    流水线计算公式(优先用理论公式):
    1条指令执行时间+(指令条数-1)*流水线周期
    1. 理论公式:(t1+t2+…+tk)+(n-1)*△t
    2. 实践公式:(k+n-1)△t(指令分为k部分)
    举例:取值2ns,分析2ns,执行1ns
    理论:(2+2+1)+99
    2=203ns
    实践:(3+100-1)*2=204ns

  • 流水线吞吐率计算
    流水线吞吐率(TP):指在单位时间内流水线所完成的任务数量或输出的结果数量
    基本公式:
    基本公式
    流水线最大吞吐率:
    最大吞吐率

  • 流水线加速比:
    完成同样一批任务,不使用流水线所用时间与使用流水线所用时间之比
    流水线加速比
    不使用流水线的时间:(t1+t2+…+tk)*指令条数

  • 流水线的效率:流水线的设备利用率
    在时空图上,流水线效率定义为n个任务占用的时空区与k个流水段总的时空区之比
    时空图
    计算流水线效率公式:
    流水线效率公式
    按所给时空图:(△t+△t+△t+3△t)4/15△t4


存储系统

  • 层次化存储结构
    层次化存储结构

  • Cache

    • 功能:提高CPU数据输入输出速率,突破冯·诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。
    • 在计算机的存储系统体系中,Cache是访问速度最快的层次。
    • 使用Cache改善系统性能的依据是程序的局限性原理。

    公式

  • 局部性原理

    • 时间局部性
    • 空间局部性
    • 工作集理论:工作集是进程运行时被频繁访问的页面集合
  • 主存
    - 分类:
    主存分类
    - 编址:
    在这里插入图片描述
    - 例题:
    例题
    末地址-首地址+1(忽略H,H代表16进制)
    K=210
    C7FFFH+1-AC000H = 1C000H
    1C000H/210 = 1C000H/400H = 70H = 112
    (1)选B
    112K16 = 2816K*x
    x = 4
    (2)选A

  • 磁盘结构与参数
    磁盘存取时间

    • 试题
      真题
      (33+3)*10+6=366
      因为是单缓存区,所以当读取r0以后,处理r0期间不能继续读取r1。而处理r0期间,磁盘继续转动,需要转动一圈,才能到达r1开始位置。
      33->转一圈到r1开始位置
      3->处理一个记录,到r1开始位置
      6->读取r10+处理r10(r10后面没有其他进度,不用担心覆盖问题)
    • 第一个空选C
      最短的情况就是r0与r1之间隔一个物理块依次往后填满,没有多余耗时。
      3*11+33=66
    • 第二个空选B

总线系统

  • 总线
    根据总线所处的位置不同,总线通常被分为三种类型,分别是:
    内部总线
    系统总线:数据总线、地址总线、控制总线
    外部总线

可靠性

  • 系统可靠性分析——串联系统与并联系统

    • 串联系统
      串联系统
      R可靠度
      失效率λ只能计算大概值

    • 并联系统
      并联系统
      一般失效率u = 1-可靠度,不用上方式子

  • 系统可靠性分析——模冗余模型与混合系统

    • 模冗余模型(几乎不考)
      模冗余模型
    • 混合模型
      混合模型
      串并联综合
      1. 先看整体上是串还是并
      2. 再看局部

校验码

  • 概念
    • 检错:检查出错误
    • 纠错:不仅检查出错误并改正
    • 码距:整个编码系统中任意(所有)两个码字的最小距离。通俗地说,就是改变多少位能变成另一个码。
      举例:
      若用1位长度的二进制编码。若A=1,B=0.这样A,B之间的最小码距为1。
    • 码距与检错、纠错有什么关系?
      1. 在一个码组内为了检测e个误码,要求最小码距d应该满足:d>=e+1
      2. 在一个码组内为了纠正t个误码,要求最小码距d应该满足:d>=2t+1
  • CRC循环校验码:可以检错不能纠错
    模2除法
    模2相除时是按位异或
    例题:
    例题
    x4+x3+x+1==>11011(取多项式系数)
    式子
    补的4个0是补余数的位数
    结果是110010101010011(最后四位是余数)
  • 海明校验码
    海明校验码


操作系统

概述

操作系统
管理


进程管理

- 进程状态

进程状态
最初只分了运行,等待,就绪三种状态。
运行态指的是这个进程所需要的所有资源都已经配足了,并且给它CPU资源,此时就属于运行状态。
就绪态指的是其他所有资源,只缺CPU资源,这种状态是一种万事俱备只欠东风的状态。
等待态指的是缺其他资源,也没CPU资源,与外设有交互,或者等待指令之类的状态。

  • 三态转换关系
  1. 运行状态一旦缺某种资源,就进入了等待状态。
  2. 等待状态下获取到了某种资源,就会进入就绪状态。
    注意,等待状态不能进入运行状态。这意味着就算你资源获取足够了,你也得乖乖去排队,去到就绪状态,等CPU资源分配。
  3. 就绪状态排队的时候,等CPU给到资源,就可以进入到运行状态。
  4. 进入运行状态不见得就能完成所有的任务,因为CPU资源相当宝贵,大家都需要获取。往往是就绪到运行只运行一个时间片的时间,等到时间片结束了,此时就会进入等待态。

但是三种状态不足以涵盖现实的各种情况,比方人为的管控进程,挂起进程。于是有了五种状态。
五态下的活跃就绪态即是三态中的就绪态。活跃阻塞态就是三态中的等待态。

  • 五态转换关系
  1. 增加了一种挂起操作,但是运行状态并且人为挂起时,就会进入到静止就绪态。
  2. 当静止就绪态恢复或激活,就重新进入到活跃就绪态。
  3. 活跃阻塞也可以挂起进入到静止阻塞。

前驱图

前驱图
考虑完成这些事情的先后顺序,哪些事情是可以并行做的。


进程的同步与互斥

互斥:在同一时刻,只允许某一个进程访问资源。同一个资源不能同时服务于多个进程。

同步:同步有速度匹配的要求,在差距拉的比较大的时候,要求速度快的停下来,等待速度慢的,这就是同步。

同步和互斥是否互为反义词?
不是,互斥的反义词是共享。同步的反义词是异步。
单缓冲区与多缓冲区

  • 单缓冲区
    市场容量只有一,存放了一个物品,他就不能再存放了。
    对于市场的操作来说,在同一时刻,不能既有生产者往里面存东西,又有消费者往里面取东西。
    在同一时刻,只能有一类人进去操作,这就是互斥。

生产者往市场里存了一个东西,而市场容量只有一,市场此时就满了。一旦生产者再往里面存东西,就会产生溢出的情况。只有等到消费者往市场取走这个东西,才允许生产者再往里面存东西。这个过程和李四在等张三,是不是一回事?生产者要停下脚步,等消费者消费这个产品,才能继续往里面存东西,这就是同步。

  • 多缓冲区
    相比起单缓冲区,只是在同步的时候可以放更多的东西。比如不再限制放一个可以放十个。放满之后才会停下来,等消费者。

对于pv操作,你需要分析哪里是互斥,哪里是同步。


PV操作

pv操作

  • 信号量:pv操作中离不开信号量。
    通常会有这样的写法 p(s) v(s) 其中的s就是信号量。
    信号量是应用在pv操作中,一种专属的变量。

  • pv操作:pv操作就是由p操作和v操作,组成的一套操作。

  • p(s)
    首先会将信号量s做自减一的操作,比如原本信号量s=10,那么自减一就等于九了。
    如果s此时小于零,进程就会阻塞。并且这个进程会进入一个进程队列里,这个进程就进入了等待状态。
    如果s此时大于等于零,程序就会继续执行。

  • v(s)
    首先会将信号量s做自加一的操作。
    再判断s此时是否小于等于零,如果满足,则从进程队列里取出一个进程,唤醒,并让他继续执行。
    否则程序继续执行。
    生产者消费者
    系统里有两个进程,一个是生产者,一个是消费者。
    生产者负责生产一个产品,并且将产品送到缓冲区去。
    消费者负责从缓冲区取产品,并且消费产品。

最初缓冲区是空的,允许生产者往里面填东西,假设此时我执行了一个生产者进程,生产了一个产品,并且将它送到了缓冲区,此时这个过程是没有问题的,可以顺利把商品放到缓冲区。
这时候生产者进程再次执行,又要将产品往缓冲区里送,此时缓冲区已经满了,此时再放产品就会溢出。这时候系统就出问题了,因此这也是Pv操作所要解决的问题。
又比如先执行消费者,此时缓冲区是空的,那么从缓冲区取产品也会报错。

Pv操作
我们回到这张图,在pv操作都完善的情况下,看系统是否会异常。
同理,生产者也要生产一个产品,此时多了一步p(s1)操作,由于s1的初值是1,那么在做p操作之后,s1的值为0。由于没有小于零,则继续往下操作,就会将产品送到缓冲区去,完了之后,再执行v(s2)操作,使得s2的值为1。
此时我们不执行消费者进程,再一次执行生产者进程模拟刚刚的异常情况,同理,生产者生产了一个产品之后,就要开始p(s1)操作,那么,此时s1的值就变成-1了。由于-1小于0,那么当前进程就会被放入到进程队列里,程序就会阻塞起来。产品也不会有溢出的情况。
此时我们再看回消费者,由于s2在生产者阶段就已经变成了1,那么消费者的p(s2)操作使s2的值变为0,并且因为0没有小于0,程序继续往下执行,接下来就来到了v(s1)操作,此时s1是等于-1的,那么v操作之后就变成了0。那么就会从进程队列里取出队列,当生产者被激活后又会执行 送产品到缓冲区 这个动作。

假设一开始执行的是消费者,那么p(s2)操作,s2的初值为0,那么p操作后,s2的值为-1。S2小于零则会被阻塞,程序就会阻塞起来,而不会去执行报错了。

由此看来,pv操作就是为了解决并发操作时,一些资源如何处理的问题。

  • 考题
    考题1
    该书店最多允许n个购书者进入,意味着当购书者数量达到了n,购书者进程就应该阻塞。在题目图中,其实已经实现了这个功能。因为购书者进程进入时,先执行了p(sn),当购书者进程要离开书店之前,执行了V(sn)。

然后看到购书者进程,在购书结束后,付款处有a1和a2两个动作。此处的a1和a2是需要和收银员进程进行交互的。

然后再看回收银员进程,收银员在收费之前进行了一个b1动作。结合刚刚的购书者进程,此处的b1动作,应该是购书者提出缴费需求。那么此处的b1动作,肯定是一个p操作, 可以理解为没有购书者进程唤醒他,收银员可以一直睡大觉。对应的a1则是v操作,他负责唤醒收银员,让他起来收款。由于题目一般是按顺序去配对信号量的,那么此处的b1就是p(s1),a1就是v(s1)。

那么此处的a2是什么意思呢?购书者在付款之后是需要等待收银员收款确认,才算完成交易。因此此处的a2就是一个p操作,相应的b2则是收银员在收费后,确认数目无误后,通知购书者可以离开了,因此b2是一个v操作,因此a2是p(s2),b2是v(s2)。

因此选A,C


pv操作+前驱图

pv操作+前驱图
例题
从上到下,从左到右标注信号量技巧
箭头起始是v(s),终点是p(s)


死锁问题

  • 死锁问题
    进程需要统分配资源才能运行,当某一时刻,所有资源都已经分配出去了,而所有的进程都无法完成他的任务并释放他占有的资源,这时候就产生死锁。
    所有的进程都在等待别人给他分配资源,而自己又不愿意释放资源。

如上题,我们先给每个进程都分配四个资源,那么一共就有12个。此时只需要再多一个资源,就能确保其中一个进程,完成他的任务,当他完成了任务之后,就会释放自己占有的所有资源。

所以这种解题思路,就是先给每个进程分配它最大资源-1个资源,在这基础上,再加一个资源。
k*(n-1)+1

  • 死锁问题的避免
    死锁的预防

银行家算法

银行家算法
考题

  • 解题步骤:
  1. 先求所剩的资源:R1 = 9-(1+2+2+1+1) = 2
    R2 = 8-(2+1+1+2+1) = 1
    R3 = 5-(1+1+3) = 0
  2. 依次排除ABCD,A中p1资源不够 ,排除A。p2可以执行,执行完即释放资源……
    选B

存储管理

  • 分区存储组织
    分区存储组织

  • 分配前作业1和作业2中间的25k哪来的?
    一开始作业1分配了33k,某个作业分配了接下来的25k,接下来是作业2的。当这个作业完成了,就会释放空间。因此就会空出一块。

  • 首次适应法
    首次能够容纳9k的方法分配出去。

  • 最佳适应法
    空闲区块按大小顺序连接。当前空闲的三个块分别是25,28,10。当他发现10k已经放得下,就分配出去了。
    如果在分完这9k之后,还需要分配10k。由于此时剩余空间剩25,28,1。首先去到1这个空间,发现不够。就去到25这个空间,发现可以就分配出去了。
    缺点:内存碎块非常多,碎块非常小。

  • 最差适应法
    与上述同理,只是从大到小分。
    优点:内存碎片减少

  • 循环首次适应法
    由于作业3是在28k这个碎片这里分配的,因此从28k这个碎片开始首次适应。

  • 页式存储组织
    页式存储组织
    把用户程序分成等分大小的页。比如上方例子,把用户程序分成了等分的页,把存储区也分成等分的页。在运行这个用户程序时,不再是整块放进内存运行,而是要运行哪些块再调入。这样就需要一个页表来映射用户程序和内存块。
    考题

  1. 4K = 212 =>页内地址12位,大于12位的则是页号
    所以页内地址为A29,页号为5。查表得,页帧号(物理地址)为6。
    第一个空选D
  2. 状态位0代表不在内存,而页面4不在内存。只能淘汰在内存中的,不在内存中无法淘汰,则只能淘汰0、1、2、5中的一个。访问位为1的不能淘汰,只能淘汰访问位为0的。则选B
  • 段式存储组织
    段式存储组织
    段式存储和页式存储区别
    段的大小不一定一致。页式的页大小必须一致。
    优点: 便于共享
    缺点:内存利用率较低,内存碎片浪费大

  • 段页式存储组织
    段页式存储组织

  • 快表
    在这里插入图片描述
    快表存放在cache


页面淘汰算法

  • 页面置换算法页面置换算法
    OPT:当要调入一页面而必须淘汰一个旧页面时,所淘汰的页面应该是以后不再访问的或距现在最长时间后再访问的页面,该置换算法的缺页中断率最低。一种理论算法,常把它作为衡量其他置换算法效率的标准。
    FIFO:淘汰最先进入内存的页面。
    LRU:淘汰最后一次访问时间距当前时间间隔最长的页面。
    练习题
    没用使用快表:每读一次程序块,需要进行两次内存访问
    6*2=12
    swap指令占一次,操作数A占两次,操作数B占两次,一共五次。

文件管理

  • 索引文件结构
    索引文件结构
    直接索引:4k13
    一级间接索引:4k
    1024
    二级间接索引:4k10241024
    练习题逻辑块号从0开始算
    第一个空
    第一个空选C
    第二个空选D

  • 树形目录结构
    描述

  • 空闲存储空间的管理
    具体方法

    • 位示图法:表示那些空间被占用,那些空间空闲
      试题
      (4185+1)/32=131.125
      说明前131位填满,位于132位
      占用置1,排除AC
      位置
      选B
  • 设备管理

    • 数据传输控制方式
      数据传输控制方式

    • 虚设备与spooling技术
      描述
      打印机同时只能服务一个用户。共用打印机时可能正好被占用。控制程序管控打印机,即spooling技术。

      核心在于开辟缓冲区,把要输入或输出的数据先缓存起来,解决了外设的低速与内设的高效之间的瓶颈差异。

微内核操作系统

微内核操作系统



数据库系统

数据库模式

  • 三级模式—两级映射
    三级模式两级映射
  • 数据库设计过程
    数据库设计过程

ER模型

ER图
椭圆-属性
矩形-实体
菱形-联系
集成
规则
选C


关系代数与元组运算

  • 关系代数
    -关系代数
    并交
    差
    后续
    联接

规范化理论

  • 函数依赖
    函数依赖
  • 价值与用途
    非规范化的缺点

  • 键
    超键与候选键区别:超键存在冗余属性,候选键不存在冗余属性
    候选键与主键区别:候选键可以有多个,主键只能有一个
  • 求候选键
    过程
    举例
    例1选A
    例2:ABCD
    例3选B
    注意:ABD=>E
    ABD=>E
  • 范式
    范式
    要先达到第二范式,必先达到第一范式。
    要先达到第三范式,必先达到第二范式。
    相关理解分析博客:
    https://www.pianshen.com/article/5083804793/
    例题
    CDA
  • 模式分解
    模式分解
    无损分解
    是无损分解
    列表法:
    例题1
    例题2
    第二种方法,只适合一分为二
    概念+例题
    解法
    1是无损分解,2不是

并发控制

概念

  • 存在的问题
    示例
  • 封锁协议
    封锁协议

数据库完整性约束

概念

- 实体完整性:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。所谓空值就是”不知道“或”不存在“或”无意义“的值。
- 参照完整性:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应,则对于R中每个元组在F上的值必须取空值或者等于S中某个元祖的主码值。
- 用户定义的完整性:任何关系数据库系统都应该支持实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体关系数据库的约束条件,它映某一具体应用所涉及的数据必须满足的语义要求。

提高数据可靠性。更加复杂的要求一般由触发器完成。


数据库安全

数据库安全


数据库备份与恢复

备份


内容备份


数据库故障与恢复

故障与恢复


数据仓库与数据挖掘

  • 数据仓库
    概念
  • 数据挖掘方法分类
    数据挖掘

反规范化技术

反规范化技术


大数据

4V
特点



计算机网络

七层模型

七层模型
例题
本题分析哪些计算机属于同一局域网,哪些不属于。不能通过即不是同一局域网内。
PQ中间用网桥连接,属于二层设备,属于同一局域网。
PS中间用路由器连接,属于三层设备,所以不能通过。
QR中间利用了网桥、集线器,集线器是一层设备,所以可以通过。
ST使用交换机连接,不影响它们之间通信。
答案是B


网络技术标准与协议

协议
SNMP简单网络管理
FTP可靠,TFTP不可靠
Samba(可以跨平台)、CIFS、NFS是文件的共享协议,既可以用TCP实现,也可以用UDP实现。
TCP
DHCP
一旦分配到以上两类地址,说明没有得到真地址。连接失败。

DNS
根域名服务器负担重,效率低,故不采用递归查询。

例题
递归查询会有多次输入输出,迭代查询只会有一次输入输出。
选A


网络类型与拓扑结构

分类
总线:总线连接各个终端,往总线上发送信息,从总线上获取信息。
星型:中间有一个中心节点(交换机),中心节点连接其他节点。一旦中心节点被破坏,网络瘫痪。存在单点故障问题。
环型:可靠性比星型更强,消息通过环传递。


网络规划与设计

概念
先保证实用性、开放性,再考虑先进性。

  • 逻辑网络设计
    在这里插入图片描述
    最关键的是IP地址方案、安全方案
  • 物理网络设计
    物理网络设计
  • 分层设计
    分层设计

IP地址与子网划分

  • IP地址
    IP地址
  • 子网划分
    子网划分
  1. 2k-2>=N k=5
    故子网掩码为/(8+5)=/13
  2. 2k-2>=700 k=10
    故子网掩码为/(32-10)=/22
  • 无分类编址(无类域间路由)
    无分类编址
    例题
    C类子网,网络号为24位,主机号为8位
    212-8=24=16 选C

特殊含义的IP地址

特殊IP地址
回播地址:服务器端程序和客户端程序部署在同一终端上时


HTML

HTML


无线网

特性


网络接入技术

类型
ADSL!


IPv6

IPv6



系统安全分析与设计

信息系统安全属性

安全属性
数字签名可以识别发送者身份


对称加密技术与非对称加密技术

  • 对称加密技术
    对称加密技术
  • 非对称加密技术
    非对称加密
    A发送给B信息C,用B的公钥加密信息C,B收到后用B的私钥解密。

信息摘要

信息摘要
一段信息的特征值,一旦信息发生改变,信息摘要也会改变。
单向,原文可生成信息摘要,但信息摘要不可生成原文。


数字签名

数字签名
(理解)
用A的私钥加密——数字签名过程
用A的公钥解密——数字签名验证过程


数字证书与PGP

  • 数字信封与PGP
    数字信封与PGP
    数字证书:为了识别公钥拥有者,类似身份证。

设计邮件加密系统(实例)

练习题
500MB-对大数据量进行加密,不能直接使用对称加密,否则加密速度很慢。直接非对称加密对称密钥。
分析
结果


各个网络层次的安全保障

协议层次


网络威胁与攻击

1
2


防火墙技术

防火墙
网络级防火墙级别低,效率高。
应用级防火墙级别高,需要查看内容信息,所以效率低。
被屏蔽子网DMZ



数据结构与算法基础

数组与矩阵

  • 数组
    数组与矩阵
    a+(2*5+3)*2=a+26
  • 稀疏矩阵
    稀疏矩阵
    稀疏矩阵:矩阵元素大量为0
    考试中可以使用代入法
    例题
    A(0,0)=M[1]
    选A

数据结构的定义

  1. 概念:计算机存储以及组织数据的方式
  2. 数据逻辑结构
    分类
    树(无环路)、图(有环路)

线性表

  • 定义
    定义
    举例
    链表节点:数据+地址
    操作

  • 顺序存储与链式存储对比
    区别
    存储密度=1——空间利用率达到100%

  • 队列与栈
    队列与栈
    cba
    abc
    bac
    bca
    acb
    例题
    选D


广义表

广义表
表尾:除了第一个元素外的所有元素

  1. 长度3,深度2(括号层数)
  2. head(headtail(LS1)))

树与二叉树


  • 相关概念
    结点的度:该结点拥有的孩子数
    树的度:一个树中所有结点中度最高的值
    叶子结点:度为0的结点
    分支结点:有分支的结点
    内部结点:非叶子结点非根节点
  • 二叉树
    在这里插入图片描述
    • 二叉树的遍历 遍历
      前序遍历:12457836
      中序遍历:42785136
      后序遍历:48752631
      层次遍历:12345678
    • 反向构造二叉树
      反向构造
      答案
  • 树转二叉树
    树转二叉树
  • 查找二叉树(排序二叉树)
    查找二叉树
  • 最优二叉树(哈夫曼树)
    最优二叉树
    树的路径长度:从树根到树中每一结点的路径长度之和。
    结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。
    结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积。
    树的带权路径长度WPL(Weighted Path Length of Tree):定义为树中所有叶结点的带权路径长度之和,通常记为:
    n表示叶子结点的数目
    wi和li分别表示叶子结点ki的权值和根到结点ki之间的路径长度。
    树的带权路径长度亦称为树的代价。

在权为wl,w2,…,wn的n个叶子所构成的所有二叉树中,带权路径长度最小(即代价最小)的二叉树称为最优二叉树或哈夫曼树。
解题过程:
在数列中寻找两个最小的结点:3、5,其和为8。添加到数列中。
在数列中寻找两个最小的结点:7、8,其和为15。添加到数列中。
在数列中寻找两个最小的结点:8、11,其和为19。添加到数列中。
在数列中寻找两个最小的结点:14、15,其和为29。添加到数列中。
在数列中寻找两个最小的结点:19、23,其和为42。添加到数列中。
在数列中寻找两个最小的结点:29、29,其和为58。添加到数列中。
在数列中寻找两个最小的结点:42、58,其和为100。

  • 线索二叉树
    线索二叉树
    有虚线
    指向前驱结点,指向后续结点
  • 平衡二叉树
    平衡二叉树

图

  • 图的存储
    • 邻接矩阵
      存储
      5个点=>5*5矩阵

    • 邻接表
      邻接表

  • 图的遍历
    图的遍历
    举例
    深度遍历:v0,v4,v6,v7……
    广度优先遍历:v0,v4,v3,v1,v4,v6,v2,v7(按邻接顺序

拓扑排序

拓扑排序


图的最小生成树

  • 普利姆算法
    例子
    留下的边权值最小。
    永远选最小可能
    先定A,选100-B,选200-E……
    答案
    注意:不能形成环!
  • 克鲁斯卡尔算法
    先找最短边,选100,选200的两条边,选250……
    答案

算法基础及常见的算法

  • 算法的特性
    算法的特性
  • 算法的复杂度
    算法复杂度

查找算法

  • 顺序查找
    顺序查找
  • 二分查找(折半查找)在这里插入图片描述
    在这里插入图片描述
    复杂度
  • 散列表
    散列表
    出现冲突的处理机制:线性探测法(顺势放到下一个空间)、伪随机数法

排序

排序
内排序:在内存中的排序
外排序:涉及外部存储的排序

  • 直接插入排序
    概念
    先比较前两个元素
  • 希尔排序
    描述
  • 直接选择排序
    描述
  • 堆排序
    • 堆的概念
      概念
    • 堆排序
      步骤
      描述
  • 冒泡排序
    在这里插入图片描述
  • 快速排序
    步骤
  • 归并排序
    描述
  • 基数排序
    描述

总结



程序设计语言以及语言处理程序基础

编译过程

编译过程


文法的定义以及语法推导树

  • 文法
    • 定义
      定义
    • 类型
      类型
  • 语法推导树
    概念

有限自动机

描述
据图,S是开始,f是结束。标识出了S就是开始,双圈f就是结束。
S输入0到B,S输入1到A。
A输入0到f,A输入1到C。
B输入0到C,B输入1到f。
C输入0、1到C。
例题
选C


正规式

概念
|:或
*:循环多次

(a|b) * 可代表a、aa、b、bb等
(1)选D
(2)选C


表达式

描述
D


传值与传址

描述
传值
4 3,3 4
传址


多种程序设计语言特点

举例



法律法规知识(知识产权)

考点

保护期限

保护期限


知识产权人确定

知识产权人确定

2

侵权判定

侵权判定
举例


标准化基础知识

  • 标准的分类
    分类
  • 标准的编号
    编号


多媒体基础

多媒体技术基本概念

  • 音频相关概念
    音频
    超声波:高于20kHZ
    次声波:低于20HZ
  • 图像相关概念
    图像
    饱和度:色彩艳丽程度
    彩色空间
    光的三原色:叠加原理。
    印刷三原色(CMY):相减原理,材料吸收除某色外其他光,反射某光。(CMYK中的K:黑色)
    HSV:色调(H),饱和度(S),明度(V)
  • 媒体的种类
    种类

多媒体相关计算问题

计算
例题

  1. 24位-3Byte
    160012003、1024/1024=5.493
    128/5。493=23.3
    D
  2. 44.1k162(双声道)=1411.2kb
    C
  3. 6.43010=1920

小写的k:用于采样传输,代表1000
大写的K:用于存储,代表210


常见多媒体标准

标准
重点


数据压缩技术

  • 数据压缩基础
    冗余
    空间冗余:大面积相同颜色
    时间冗余:画面不动的部分
    视觉冗余:分了很多级别颜色,人能不一定能看到。人眼看不到的可以不存储。
    信息熵冗余:不同信息编码冗余度不一样。
    结构冗余:结构部件冗余
    知识冗余:可以通过知识分析得到的数据。

有损压缩与无损压缩

概念



软件工程

软件开发模型

开发模型

  • 瀑布模型(SDLC)
    瀑布模型
    分析
    需求分析在开发期间很难明确,等分析完做出软件再去给用户用时,修改需要回到需求阶段,浪费大量时间。使得瀑布模型难一完成很多项目开发。适用于需求明确或者二次开发。
  • 其他经典模型
    其他
    原型模型:适用于构造简易系统、需求不明确的情况。强调项目开发初期构造一套简易系统,好处:帮助用户明确自己的需求。经过多轮调整,获取比较准确的用户需求,适用于需求分析阶段。
    增量模型:先做核心模块,然后给用户使用,修正问题,再做一部分模块,再给用户使用……
  • 增量模型与螺旋模型
    两种模型
    螺旋模型特点:
    1.由多种模型组合,具备多种模型特点。
    2.引入了风险分析,最显著的特点
  • V模型
    V模型需求分析阶段会做验收测试、系统测试的测试计划。
    概要设计阶段会做集成测试(测试模块衔接)的测试计划。
    详细设计阶段会做单元测试的测试计划。
    V模型强调测试。
  • 喷泉模型(见上图)
    最大的特点:面向对象,所以会有迭代、无间隙的特性。
  • RAD快速开发模型
    结合瀑布模型和结构化开发
    能快速构造应用系统
    • SDLC:软件开发生命周期
    • 构件组装模型(CBSD):提高软件开发的复用性
      CBSD
      构件设计
  • 敏捷开发方法
    敏捷开发方法
    局限性:适用于小型项目

信息系统开发方法

信息系统开发方法


需求开发

  • 需求分类与需求获取
    需求分类
    期望需求:用户没有提,但是潜意识里要求你要做。
    兴奋需求:用户没有提,你也没必要做,但是你做了用户很开心

系统设计

  • 结构化设计
    • 基本原则
      基本原则
      多扇入:复用程度高
      扇出:职能多
    • 内聚与耦合
      内聚与耦合
      内容耦合:耦合程度最高
      非直接耦合:耦合程度最低
    • 系统结构/模块结构
      实例
      掌握图b

软件测试

  • 测试原则与类型
    测试
    动态测试:通过计算机
    静态测试:人工手动测试
  • 测试用例设计
    测试用例设计
    标准的四个边界值:两个端点,小于较小端点的值,大于较大端点的值
    错误推测:经验灵感
  • 测试阶段
    测试阶段
    一般软件项目只做到确认测试就可以了,大型软件项目涉及软硬件,先进行系统测试再进行确认测试。
    对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。在软件中,“冒烟测试”这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程。
    • Alpha测试与Beta测试的区别
    1. 含义上的区别
      α测试是软件开发公司组织内部人员模拟各类用户对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。
      Beta测试是一种验收测试,一般根据产品规格说明书严格检查产品,逐行逐字地对照说明书上对软件产品所做出的各方面要求, 确保所开发的软件产品符合用户的各项要求。
    2. 操作环境上的区别
      α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。
      β测试是由软件的多个用户在实际使用环境下进行的测试,这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。β测试是在开发者无法控制的环境下进行的软件现场应用。
    3. 测试阶段上的区别
      α测试阶段比较靠前。可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。
      β测是只有当α测试达到一定的可靠程度时,才能开始。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全定稿。
  • McCabe复杂度
    McCabe

系统运行与维护

  • 软件维护
    软件维护
    改正性维护(正确性维护):软件开发完,用户发现bug,我们修复bug。
    适应性维护:为了适应新环境的维护
    完善性维护:扩充功能
    预防性维护:预防工作

软件过程改进

  • 软件能力成熟度模型集成CMMI
    CMMI
    定量管理级:量化


系统开发基础

项目管理基础知识

项目管理
例题
Gantt图:展现进度的安排情况。缺点:不能直观表现任务关系
D
先正推事件最早开始时间,再逆推事件最晚开始时间。
正推:
正推
C

  • 风险管理
    风险管理


面向对象设计

面向对象相关概念

相关概念
对象:对象的抽象
类:类的实体
封装:相关数据信息封装,只能通过接口使用内部数据
继承:子类继承父类相关特性
泛化:两个子类有共性,抽出共性产生父类
多态:同样的操作控制不同对象,操作有差异。
接口:一种特殊的类,只有方法的定义,没有方法的实现。
消息:异步传输,对象之间交互的机制
组件:构件
模式:一种经验的归总,产生的规则


设计原则

设计原则

UML

UML
分类

静态图:
动态图:
结构图:
行为图:
用例图先不要定性,大部分时候动态,小部分时候静态。
部署图:其他图都是谁和谁之间的关系,而它则是软件应该部署在硬件的哪个结点上。


设计模式的概念

设计模式


设计模式的分类

分类
创建型模式:用于创建对象,为实例化新对象提供指南。
结构型模式:处理类和对象的组合问题。
行为型模式:描述类和对象交互的情况,以及职责分配问题。
下划线

  • 创建型模式
    创建新模式
  • 结构型模式
    结构型模式
  • 行为型模式
    行为型模式
    2


数据流图DFD

数据流图基本概念

要素
图


数据流图的分层DFD

图
逐级细化


数据字典

数据字典
举例


数据平衡原则

原则
举例
互相对比系统外部数据流的不同
P:操作结果信息


答题技巧

技巧
试题
2
3

  • 问题一:
    E1:前端应用
    E2:数据管理员
    E3:后端数据库

  • 问题二:
    D1:用户表
    D2:操作表
    D3:权限表

  • 问题三:
    答案

  • 问题四:

  1. 加工不合格,数据流不平衡
  2. 数据流命名问题,输入流输出流命名相同

试题2
2
3

  • 问题一
    E1:非信用卡客户
    E2:信用卡客户
    E3:银行
  • 问题二
    信用卡申请表 E1=>P0
    激活请求 E2=>P0
    交易信息 P0=>E2
  • 问题三
  1. P4=>E1 信用卡申请表 方向反了
  2. P4=>P3 激活请求 起点应该是E2
  • 问题四
    P1:交易信息查询
    P2:客户信息管理
    P3:信用卡激活
    P4:信用卡申请


数据库设计

数据库设计过程

图


ER模型

  • 实体间联系类型
    类型
  • 关系模型的转换
    转换

答题技巧

在这里插入图片描述
2

3
4
答案
1
2
3
答案
经理和员工之间一条线+一个圆圈,表示经理是特殊的员工
同时经理会再加两条竖线。
4



UML建模

用例图

用例图
包含关系:关键字include
扩展关系:关键字extend
包含关系与扩展关系的区别:
关键在于是否必须。
包含关系:箭头出发点的用例必然使用箭头指向的用例。
扩展关系:扩展的用例不一定每次都会使用。


类图与对象图

类图与对象图
1
关系


顺序图

顺序图


活动图

活动图
粗横线的位置产生了多少并行的线程。
带泳道的活动图
2


状态图

状态图


通信图(协作图)

顺序图


案例分析

1
2
3
4
答案



数据结构及算法应用

分治法

分治法

  • 递归技术
    递归
  • 二分查找
    二分查找

回溯法

回溯法


贪心法

贪心法
不一定得不到最优解


动态规划法

动态规划
分辨动态规划和回溯法:动态规划需要查表


案例分析

例题
2
3
4
贪心法
5
6
7
8
9
9



面向对象程序设计

Java

  • 类的定义
    类的定义
  • 接口的定义
    在这里插入图片描述
  • 类的定义
    类的定义

案例分析

实体1
2
3
4
5
6
7
8
9
10
11
12
13
14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值