按权展开法:
十进制:1227 = 1*10^3 + 2*10^2 + 2*10^1 + 7*10^0
二进制:10100.01 = 1*2^4 + 1*2^2 + 1*2^-2
七进制:604.01 = 6*7^2 + 4*7^0 + 1*7^-2
10 001 110(二) -> 2 1 6(八) 每3位二进制数对应1位8(2^3)进制数
1000 1110(二) -> 8E(十六) 每4位二进制数对应1位16(2^4)进制数
原码、反码、补码、移码
正数:原码、反码、补码一致,移码:补码符号位取反
负数:原码;反码:原码中除了符号位(二进制表示的第一位数字),其余全部取反;补码:反码+1,移码:补码符号位取反
负数的原码和补码互转都是取反+1
1 | -1 | 1-1 | |
---|---|---|---|
原码 | 0000 0001 | 1000 0001 | 1000 0010 |
反码 | 0000 0001 | 1111 1110 | 1111 1111 |
补码 | 0000 0001 | 1111 1111 | 0000 0000 |
移码 | 1000 0001 | 0111 1111 | 1000 0000 |
码制 | 定点整数 | 定点小数 |
---|---|---|
原码 | -(2 ^ (n-1) - 1)~ +(2 ^ (n-1) - 1) | -(1 - 2 ^ - (n-1) )~ +(1 - 2 ^ - (n-1) ) |
反码 | -(2 ^ (n-1) - 1) ~ + (2 ^ (n-1) - 1) | -(1 - 2 ^ - (n-1) )~ +(1 - 2 ^ - (n-1) ) |
补码 | - 2 ^ (n-1) ~ + (2 ^ (n-1) -1) | -1 ~ +(1 - 2 ^ - (n-1) ) |
移码 | - 2 ^ (n-1) ~ + (2 ^ (n-1) -1) | -1 ~ +(1 - 2 ^ - (n-1) ) |
四位:_ _ _ _ 原码:1111~0111 -2^3-1~2^3-1
补码和移码多了个-0(1000 0000)
人为规定:
浮点数表示:
运算过程:
特点:
3.14*10^3 --> 0 111 3.14
3.14*10^3 + 1.2*10^5 对阶后 0.0314*10^5 + 1.2*10^5
CPU是计算机的控制中心,主要由运算器、控制器、寄存器组和内部总线等部件组成。
运算器
控制器:不仅要保证指令的正确执行,还要能够处理异常事件
程序员可以操控程序计数器,指令寄存器对用户完全透明
程序指令顺序执行,程序计数器PC自动+1
计算机中主机与外设间进行数据传输的输入输出控制方法有程序控制方式,中断方式,DMA等。
体系结构类型 | 结构 | 关键特征 | 代表 |
---|---|---|---|
单指令流单数据流(SISD) | 控制部分:一个 处理器:一个 主存储块:一个 |
单处理器系统 | |
单指令流多数据流(SIMD) | 控制部分:一个 处理器:多个 主存储块:多个 |
各处理以异步的形式执行同一条指令 | 并行处理器 阵列处理机 超级向量处理机 |
多指令流单数据流(MISD) | 控制部分:多个 处理器:一个 主存储块:多个 |
被证明不可能,至少是不实际 | 目前没有,有文献称 流水线计算机为此类 |
多指令流多数据流(MIMD) | 控制部分:多个 处理器:多个 主存储块:多个 |
能够实现作业、任务、指令等各级全面并行 | 多处理机系统,多计算机 |
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下:
操作码部分指出了计算机要执行什么性质的操作,如加法、减法、取数、存数等。地址码字段需要包含各操作数的地址及操作结果的存放地址等,从其地址结构的角度可以分为三地址指令、二地址指令、一地址指令和零地址指令。
三地址:a+b=c OP=+ A1=a,A2=b,A3=c
二地址:a+b=c OP=+ A1=a,A2=b,A1存c
一地址:a++ OP=++ A1=a
零地址:存取
采用不同的寻址方式的目的是扩大寻址空间并提高编程灵活性
特点:指令中存放了一个地址,这个地址对应的内容是操作数的地址
指令地址码给出的是一个偏移量(可正可负),操作数地址等于本条指令的地址加上该偏移量。
操作数地址等于变址寄存器的内容加偏移量。
①流水线周期=执行时间最长的一段
②流水线执行时间=1条指令执行时间+(指令条数-1)*流水线周期
③流水线吞吐率=指令条数/流水线执行时间
④流水线最大吞吐率=1/流水线周期
①(3+2+4)*10 = 90
② max(3t,2t,4t) = 4
③(3+2+4)+ (10-1)*4 = 45
常用的虚拟存储器由主存-辅存完成
输入输出操作通过访存指令来完成
考点:主要判断是否可以检错,纠错和海明校验码的公式计算
奇偶校验
循环冗余校验CRC
海明校验码
①主存-编址与计算
43FFH - 4000H + 1 = 4400H - 4000H = 400H = 0000 0100 0000 0000B
(2^10 * 16) / 2^2 = 2^12
②若内存容量为4GB,字长为32,则地址总线和数据总线的宽度都为多少?
字长为32位 => 数据总线的宽度为32位
可寻址地址=4*1024*1024*1024 B=2^32 B => 地址总线宽度为32位
③已知内存容量nKB,用16K*4bit的存储器芯片构成该内存,共需多少片?(8bit=1B)
n/16(4/8)
例:系统有5个进程:A、B、C、D、E。这5个进程都需要4个系统资源。如果系统至少有多少个资源,则不可能发生死锁。
答:(4-1)*5+1=16个
解析:所需资源数-1平均分配给每一个进程所需要的资源数+1则可避免死锁问题
先分配R中的资源看是否还有剩余,再看P是否向R中索取资源,如果R无资源,P也向R获取资源则P就是阻塞的,如果R有资源且足够分配,则不阻塞
分配资源原则:
银行家算法例子:
假设系统中有三类互斥资源R1、R2、R3,可用资源分别是9、8、5。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下所示,如果进程按序列()执行,那么系统状态是安全的。
A.P1->P2->P4->P5->P3
B.P2->P4->P5->P1->P3
C.P2->P1->P4->P5->P3
D.P4->P2->P4->P1->P3
思路:首先计算还剩下多少个资源(可用资源-已分配资源),分别计算各个进程各个资源还需有多少个(最大需求量-已分配资源)。优先分配可以分配完的进程。
R3所剩下的资源数量为0,只有进程P2的R3资源已经足够,所以先分配资源给P2;循环计算最终得出结果。
页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。
常见:计算逻辑地址、物理地址
例如,页内存储系统中,每个页的大小为4KB。
逻辑地址变为物理地址 —> 将页号变为物理块号(页帧号)
页面淘汰算法(重点)
页面淘汰,先看是否在内存中,不在内存中不需要淘汰,再看有没有被访问,优先淘汰没有被访问的,最后看有没有被修改,优先淘汰未修改的。
求页、段、每个段最大允许有多少的页均为2的n次方,n为范围 大-小+1 (所占位数)
页面置换算法(了解):
存取时间=寻道时间+等待时间,寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
硬盘容量计算:
非格式化容量=面数*(磁道数/面)*内圆周长*最大位密度
格式化容量=面数*(磁道数/面)*(扇区数/道)*(字节数/扇区)
磁道数=(外半径-内半径)*磁道密度 (注意单位要统一)
磁盘调度管理中,先进行移臂调度寻找磁道,再进行旋转调度寻找扇区。
最短移臂调度算法、扫描算法(SCAN)、电梯,寻找距离当前最近的柱面号。
循环扫描算法(CSCAN),寻找大于当前的距离当前最近的柱面号,直到最大,又从最小的的开始。
读取磁盘数据时间计算:
读取磁盘数据的时间应包括以下三个部分:
某磁盘磁头从一个磁道移至另一个磁道需要10ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均移动距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和2ms,则读取一个100块的文件需要_ms时间。
A.10200
B.11000
C.11200
D.20200
答案:((10*10)+100+2)*100
磁道转移读取:(磁道转移时间*磁道移动距离+延迟时间+传输时间)*文件块数
单缓冲区读取:
双缓冲区读取:
旋转调度算法:
单缓冲区:先读取和处理第一个,转一圈回来处理第二个,有R0则跳过,第二个之后的处理和第二个一样。优化后,n个*(读取+处理)
作业调度算法
磁盘块大小为1KB,每个块号需占3B => 一个磁盘块可存放1024/3=341个块号
一级索引341*1024(磁盘块大小)/1024(单位)=341KB
二级索引341*341*1024(磁盘块大小)/1024(单位)=116281KB
每一级存储256个块号=磁盘大小/每个块需占内存,存储从0开始
0~4 5~256+5-1
访问文件F中第11264字节处的数据时,需要一级间接索引(11264/1024-1)
相对路径:当前工作目录下的路径名
绝对路径:除了当前文件
全路径:绝对路径+当前文件(注意有盘符要包括盘符)
物理块所在位置=(物理块号+1)/位数-1
位示图大小=磁盘容量/物理块/位数(单位MB/bit)
数据传输控制方式:
常见概念:
DMA为主要考察点,与CPU没有任何关系
采用中断和DMA方式控制技术时,CPU与外设可并行工作
windows在打开文件时,系统会自动通过建立的文件关联来决定使用什么程序打开
修改系统目录文件对系统的影响较大
1、将函数依赖关系,用“有向图”的方式表示。
2、找出入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键。
3、若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键。
例:给定关系R(A1,A2,A3,A4)上的函数依赖集F={A1→A2,A3→A2,A2→A3,A2→A4},R的候选关键字为(A)。
A.A1
B.A1A3
C.A1A3A4
D.A1A2A3
主属性与非主属性定义:组成候选码的属性就是主属性,其它的就是非主属性
保持函数依赖分解
设数据库模式p={R1,R2,.…,Rk}是关系模式R的一个分解,F是R上的函数依赖集,p中每个模式Ri上的FD集是Fi。如果{1,F2,…,Fk)与F是等价的(即相互逻辑蕴涵),那么称分解p保持FD。
无损分解
什么是有损,什么又是无损?
有损:不能还原。无损:可以还原。
无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式
思考题:
有关系模式:成绩(学号,姓名,课程号,课程名,分数)函数依赖:学号–>姓名,课程号–>课程名,(学号,课程号)–>分数
若将其分解为:
请思考该分解是否为无损分解?
由于有:学号→姓名,所以:
成绩(学号,课程号,分数,姓名)
由于有:课程号课程名,所以:
成绩(学号,课程号,分数,姓名,课程名)
综上,所以为无损分解
drop table <表名>;
修改语句
alter table <表名>
[add <新列名> <数据类型> [列级完整性约束]]
[drop <列名/完整性约束>]
[modify/change <列名> <数据类型>];
查询语句
select [all|distinct] <目标表达式> [,<目标表达式>...]
from <表名> [,<表名>]...
[where <条件表达式>]
[group by <列名1> [having <条件表达式>]]
[order by <列名2> [asc|desc]...];
处理类型 | 处理子类 | 实例/语法 |
---|---|---|
结果排序 | 升序或降序 | order by 字段名 desc|asc |
集函数 | 统计 | count([distinct|all] <列名>) |
计算一类中值的总和 | sum([distinct|all] <列名>) | |
计算一列值的平均值 | avg([distinct|all] <列名>) | |
求一列值中的最大值 | max([distinct|all] <列名>) | |
求一列值中的最小值 | min([distinct|all] <列名>) | |
对结果分组 | 将查询结果按列值分组 | group by <列名> |
对分组结果筛选 | 对分组结果筛选 | having <条件表达式> |
ACID:
锁:
x锁(排它锁)(写锁):对数据进行写操作时进行锁定。如果事务T对数据A加上X锁后,就只允许事务T读取和修改数据A,其他事务对数据A不能再加任何锁,从而也不能读取和修改数据A,直到事务T释放A上的锁。
s锁(共享锁)(读锁):对数据进行读操作时进行锁定。如果事务T对数据A加上了S锁后,事务T就只能读数据A但不可以修改,其他事务可以再对数据A加S锁来读取,只要数据A上有S锁,任何事务都只能再对其加S锁(读取)而不能加X锁(修改)。
集线器连接的主机构成一个冲突域,交换机的每个端口属于一个冲突域,路由器连接几部分网络就有几个广播域。集线器没有自动寻址的作用。
PPP中的安全认证协议是CHAP,三次握手传送密文
属于应用层协议的是简单网络管理协议SNMP,它的传输层协议是UDP
默认路由,当主机无选择时所选择的路由,即最后选择的路由
一些概念:
ICMP:数据单元封装在IP数据报
DNS域名查询的次序是:本地hosts文件 -> 本地DNS缓存 -> 本地DNS服务器 -> 根域名服务器
主机域名查询次序是:本地缓存 -> 转发域名服务器
DHCP客户端可从DHCP服务器获得DNS服务器的地址和DHCP服务器的地址
protocol://hostname[:port]/path/filename
TCP和UDP均提供了端口寻址功能;VoIP允许数据丢失,使用UDP协议
默认网关和本地IP地址应属于同一网段;主机路由的子网掩码是255.255.255.255
netstat用于显示IP、TCP、UDP和ICMP协议相关数据
nslookup、ping、tracert用来诊断DNS
例题: 与地址220.112.179.92匹配的路由表的表项是()。
A 220.112.145.32/22
B 220.112.145.64/22
C 220.112.147.64/22
D 220.112.177.64/22
地址220.112.179.92转换成二进制是:1101 1100 0111 0000 1011 0011 0101 1100
根据选项,要求是22位网络号,也就是说1101 1100 0111 0000 1011 0011 0101 1100加粗部分的22位网络号是固定不变的,剩下的10位是主机号。
也就是说斜线记法的地址是在1101 1100 0111 0000 1011 0000 0000 0000(220.112.176.0/22)~ 1101 1100 0111 0000 1011 0011 1111 1111(220.112.179.255/22)范围内(不包含全0或全1的情况),就D符合条件。
以220.112.177.64/22为例,先转换成二进制1101 1100 0111 0000 1011 0001 0100 0000
CIDR地址块的范围是1101 1100 0111 0000 1011 0000 0000 0000(220.112.176.0/22)~ 1101 1100 0111 0000 1011 0011 1111 1111(220.112.179.255/22),同样220.112.179.92也在范围内。
例1,将B类IP地址168.195.0.0划分成27个子网,子网掩码为多少?
特点:
常见对称密钥加密算法:
特点:
常见非对称密钥加密算法:
RSA算法
数字签名用户通信的A、B双方,使得A向B发送签名的消息P,提供以下服务:
常用的消息摘要算法有MD5,SHA等,市场上广泛使用的MD5,SHA算法的散列值分别为128和160位,由于SHA通常采用的密钥长度较长,因此安全性高于MD5。
PKI体制中,保证数字证书不被篡改的方法使用CA的私钥对数字证书签名,访伪造,不可抵赖
从CA中心获取用户的数字证书,用CA的私钥做数字签名
数字证书做身份认证
拒绝服务攻击即攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。
SYN Flooding攻击属于DoS攻击。
应用级网关防火墙是内部网和外部网的隔离点,可对应用层的通信数据流进行监控和过滤。
包过滤防火墙对数据包的过滤依据包括源IP地址、源端口号、目标IP地址、目标端口号,包过滤技术对应用和用户是透明的。
受保护程序从高到低:内网、DMZ、外网
防火墙不具备查毒功能
病毒:编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。
木马:是指通过特定的程序来控制另一台机器。木马程序的客户端运行在攻击者的机器上。
其他概念:
起始阶段:专注于项目的初创活动。声明周期目标。
精化阶段:理解了最初的领域范围之后,进行需求分析和架构演进。生命周期架构。
构建阶段:关注系统的构建,产生实现模型。初始运作功能。
移交阶段:关注软件提交方面的工作,产生软件增量。产品发布。
产生阶段:运行软件并监控软件的持续使用,提供运行环境的支持,并提交评估缺陷报告和变更请求。
需求不清晰且规模不太大时采用原型化方法最为合适,而数据处理领域的不太复杂的软件,适用于结构化方法进行开发。
结构化开发方法有结构化分析、结构化设计、和结构化程序设计过程,是一种面向数据流的开发方法。指导思想:自顶向下、逐步分解、抽象到具体。
结构化分析模型包括数据流图、实体联系图、状态迁移图、加工逻辑和数据字典。
结构图的基本成分不包括数据
面向对象方法
模块化设计:
内聚类型:内聚性、模块独立性由低到高
耦合类型:耦合性由低到高,模块独立性由高到底;耦合程度不取决于,模块提供的功能数。
在设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进
自顶向下
从最顶层的构建开始,逐步向下。
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实 ,带来信心;只需要一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
自底向上
从系统层次中最底层的构建开始测试,逐步向上。
优点:对底层组件行为较早验证;工作最初可以并行集成;比自顶向下效率高;减少了桩开发(不需要写桩程序);支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
三明治
一次性
McCabe复杂度:
计算有向图G的环路复杂度公式为:V(G)=m-n+2
说明:其中V(G)是有向图G中的环路个数,m是G中的有向弧数,n是G中的结点数。
例:若采用白盒测试方法测试以下代码,并满足条件覆盖,则至少需要(1)个测试用例。采用McCabe度量法算出该程序的环路复杂度为(2)。
Int find_max(int i,int j,int k){
int max; // 1
if(i>j) // 2
if (i>k) // 3
max = i; // 5
else max = k; // 6
else if(j>k) // 4
max = j; // 7
else max = k; // 8
}
return; // 9
软件系统的可维护性评价指标包括:
系统开发计划是用于系统开发人员与项目管理人员沟通的主要文档,它包括了RERT图、甘特图、预算分配表等。
概要设计文档包含系统架构、模块划分、系统接口、数据设计,不包含模块内算法设计。
REPT图和Gantt图
CMM
质量管理:质量控制不属于软件配置管理
风险管理:不属于配置管理
时间管理-关键路径法(重要)
COCOMO II:
冗余附加技术:
在屏蔽硬件错误的容错技术中,冗余附加技术包括:
在屏蔽软件错误的容错技术中,冗余附加技术包括:
不包括关键程序和数据的冗余存储和调用
结构冗余:静态、动态、和混合冗余。
面向对象设计7大原则
多态类型
业务处理流程进一步建模
第一条横线:并发分叉
第二条横线:并发汇流
椭圆:动作
[NO]:监护表达式
菱形:分支
箭头表示消息
方框表示对象
面向对象分析主要回答软件系统需要解决什么问题,在面向对象分析阶段,并不考虑系统实现以及系统的测试问题。
创建性模式
设计模式名称 | 简要说明 | 速记关键字 |
---|---|---|
Abstract Factory抽象工厂模式 | 提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类 | 生产成系列对象 |
Builder构建器模式 | 将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示 | 复杂对象构造 |
Factory Method工厂方法模式 | 定义一个创建对象的接口,但由子类决定需要实例化哪一个类。工厂方法使得子类实例化的过程推迟 | 动态生产对象 |
Prototype原型模式 | 用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象 | 克隆对象 |
Singleton单例模式 | 保证一个类只有一个实例,并提供一个访问它的全局访问点 | 单实例 |
结构性(对象)模式
设计模式名称 | 简要说明 | 速记关键字 |
---|---|---|
Adapter适配者模式 | ==将一个类的接口转换成用户希望得到的另一种接口。==它使原本不相容的接口得以协同工作(类、对象结构模式) | 转换接口 |
Bridge桥接模式 | 将类的抽象部分和它的实现部分分离开来,使它们可以独立地变化,与适配者模式有相似特征,涉及到从自身以外的一个接口向这个对象发送请求 | 继承树拆分 |
Composite组合模式 | 将对象组合成树型结构以表示==“整体-部分”==的层次结构,使得用户对单个对象和组合对象的使用具有一致性 | 树型目录结构 |
Decorator装饰模式 | 动态地给一个对象添加一些额外的职责。它提供了用子类扩展的一个灵活的替代,比派生一个子类更加灵活 | 附加职责 |
Facade外观模式 | 定义一个高层接口,为子系统中的一组接口提供一个一致的外观,从而简化了该子系统的使用,即为复杂子系统提供一个简单接口 | 对外统一接口 |
Flyweight享元模式 | 提供支持大量细粒度对象共享的有效方法 | 文章共享文字对象 |
proxy代理模式 | ==为其他对象提供一个代理(接口)==以控制这个对象的访问 |
行为性模式
设计模式名称 | 简要说明 | 速记关键字 |
---|---|---|
Chain of Responsibility职责链模式 | 通过给多个对象处理请求的机会,减少请求的发送者与接受者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求 | 传递职责 |
Command命令模式 | 将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作 | 日志记录,可撤销 |
Interpreter解释器模式 | 给定一种语言,定义它的文法表示,并定义一个解释器,该解释器用来根据文法表示来解释语言中的句子 | 虚拟机的机制 |
Iterator迭代器模式 | 提供一种方法来顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示 | 数据库数据集 |
Mediator中介者模式 | 用一个中介对象来封装一系列的对象交互。它使督对象不需要显式地相互调用,从而达到低耦合,还可以独立地改变对象间的互 | 不直接引用 |
Memento备忘录模式 | 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,从而可以在以后将该对象恢复到原先保存的状态 | |
Observer观察普横式 | 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新 | 联动 |
State状态横式 | 允许一个对象在其内部状态改变时改变它的行为 | 状态变成类 |
Strategy策略模式 | 定义一系列算法,把它们一个个封装起来,并且使它们之间可互相替换,从而让算法可以独立于使用它的用户而变化 | 多方案切换 |
Template Method模板方法模式 | 定义一个操作中的算法骨架,而将一些步吸延迟到子类中,使得子类可以不改变一个算法的结构即可置新定义算法的某些特点步骤 | |
Visitor访问者模式 | 表示一个作用于某对象结构中的各元素的操作,使得在不改变各元素的类的前提下定义作用于这些元素的新操作,多态accept |
观察者模式
数组类型 | 存储地址计算 |
---|---|
一维数组a[n] | a[i]的存储地址为:a+i*len |
二维数组a[m][n] | a[i][j]的存储地址(按行存储)为:a+(i*n+j)*len a[i][j]的存储地址(按列存储)为:a+(j*m+i)*len |
例:已知5行5列的二维数组a中的各元素占两个字节,求元素a[2][3]按行优先存储的存储地址?
了解顺序表、链表(单链表、双向链表、循环链表)、队列与栈的基本概念
顺序存储和链式存储对比:
循环队列的判断:
基本运算:取表头head(Ls)和取表尾tail(Ls)。
若有:LS1=(a,(b,c),(d,e))
head(LS1)=a
tail(LS1)=((b,c),(d,e))
例1,有广义表LS1=(a,(b,c),(d,e)),则其长度为?深度为?
例2,有广义表LS1=(a,(b,c),(d,e)),要将其中的b字母取出,操作就为?
例题1答案:长度为3,深度为2。
例题2答案:head(head(tail(LS1)))。
树的相关术语:
二叉树的基本定义
二叉树的性质:
考点:
MIC输出的是音频模拟信号,声卡从MIC获取音频模拟信号后,通过模数转换器(ADC)将声波振幅信号采样转换成一串数字信号并存储到计算机中。重放时,这些数字信号送到数模转换器(DCA),以同样的采用速度还原为模拟波形,放大后送到扬声器发声,这一技术称为脉冲编码调制技术(PCM)。
A/D转换:采样->量化->编码
常见音频格式:WAVE、MP3、MIDI
CIF视频格式图像分辨率为:352*288
音乐合成技术主要有FM和Wave Table,其中Wave Table合成的音质更好,FM改变信号幅度可以改变音高
计算题公式:
每秒容量=采样频率(Hz)x量化/采样位数(位)×声道数÷8
样本精度=量化/采样位数(位)
CD上声音的采样频率为44.1kHz,样本精度为16bit,双声道立体声,那么其未经压缩的数据传输率为(C)。
A.88.2kb/s B.705.6kb/s C.1411.2kb/s D.1536.0kb/s
计算过程:44.1k*16bit*2=1411.2kb
亮度:画面的明亮程度。
色调(红,绿):颜色的种类,如红色、绿色、蓝色等不同颜色就是指色调。同时画面整体颜色倾向,也是色调。
饱和度:色彩的纯洁性,即颜色的艳丽程度。
dpi:每英寸像素点
当显示深度小于图像深度时,不能完全反映
矢量图的基本单位是图元
位图的基本单位是像素,占用空间大,显示速度快
使用150DPI的扫描分辨率扫描一副3*4英寸的彩色照片,得到原始的24位真彩色图像的数据量是(810000)Byte。
(150*3)*(150*4)*24/8
一类是无损压缩编码法(Lossless compression coding),也称冗余压缩法或熵编码法;另一类是有损压缩编码法(Loss compression coding),也称为熵压缩法。
<a> 定义锚
<b> 定义粗体字
<title> 定义文档的标题
<strong>定义强调文本
<table> 定义表格
<tr> 行
<td> 定义表格中的单元
<alink> 正在被击中的链接的颜色
<vlink> 已使用的链接的颜色
<body> 定义文档的主体
<button>定义按钮
<center>定义居中文本
<col> 定义表格中一个或多个列的属性值
<font> 定义文字的字体、尺寸和颜色
<form> 定义供用户输入的HTML表单
<frame> 定义框架集的窗口或框架
<h1> 定义HTML标题
<hr> 定义水平线
<html> 定义HTML文档
<img> 定义图像
<p> 定义段落
<l> 斜体
<script>定义客户端脚本
align:对齐方式
mailto:邮箱地址超链接
中间代码生成和代码优化不是必须的
中间代码与具体的机器无关,使用中间代码有利于进行与机器无关的优化处理,以及提高编译程序的可移植性,常见的有逆波兰记号(后缀式)、四元式、三元式和树
编译程序生成源程序的目标程序,而解释程序反之
解释器参与运行控制、程序执行的速度慢
语法分析方法分为两类:
语法制导翻译是一种静态语义分析方法
符号表的作用是记录源程序中各个符号的必要信息
记号流:词法分析输出记号流,语法分析输入记号流
字符流:IO操作
源程序:词法分析的任务是把源程序的字符串转换成单词符号序列
分析树:如果没有语法错误,语法分析后就能正确的构造出其语法树
大多数程序设计语言的语法规则用上下文无关文法描述
例:文法G=({a,b},{S,A},S,P),其中:S->aAS|a;A->SbA|SS|ba。请构造句型aabAa的推导树。
S->aAS;S->a;A->SbA;A->SS;A->ba.
确定的有限自动机,当输入一个数字时只有一种可走的状态
有限自动机是进行词法分析的适当工具
正规式
正规式是描述程序语言单词的表达式,对于字母∑,其上的正规式及其表示的正规集可以递归定义如下。
①是一个正规式,它表示集合 L(e)={e}。
②若a是上的字符,则a是一个正则式,它所表示的正规 L(a)={a}。
③若正规式r和s分别表示正规集L(r)=L(s),则
(a)rls是正规式,表示集合L(r)UL(s);
(b)r·s是正规式,表示集合L(r)L(s);
(c)r*是正规式,表示集合(L(r))*;
(d)(r)是正规式,表示集合L(r)。
仅由有限次地使用上述三个步骤定义的表达式才是∑上的正规式。由此可见,正规式要么为空,要么由字母、或、连接、闭包运算符组成。其中闭包运算符“*”具有最高的优先级,连接运算具有次高优先级,或运算符“|”具有最低优先级。
常见的数据类型
程序控制结构主要有:顺序结构、选择结构和循环结构
传递方式 | 主要特点 |
---|---|
传值调用 | 形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。 |
引用(传址)调用 | 形参取的是实参的地址,即相当于实参存储单元的地址引用因此其值的改变同时就改变了实参的值 |
法律法规名称 | 保护对象即范围 | 注意事项 |
---|---|---|
著作权法(版权) | 著作权 文学、绘画、摄影等作品 |
1、不需要申请,作品完成即开始保护 2、绘画或摄影作品原件出管(赠予)著作权还归原作者,原件拥有者有:所有权、展览权。 |
软件著作权 计算机软件保护条例 |
软件著作权 软件作品 |
1、不需要申请,作品完成即开始保护 2、登记制度便于举证 |
专利法 | 专利权 | 需要申请,专利权有效期是从申请日开始计算 |
商标法 | 商标权 | 需要申请,核准之日起商标受保护 |
反不正当竞争法 | 商业秘密权 | 1、商业秘密包括技术与经营两个方面 2、必须有保密措施才能认定商业秘密 |
客体类型 | 权利类型 | 保护期限 |
---|---|---|
公民作品 | 1、署名权、修改权、保护作品完整权 2、发表权、使用权和获得报酬权 |
1、没有期限 2、作者终生及其死亡后的50年(第50年的12月31日) |
单位作品 | 发表权、使用权和获得报酬权 | 50年(首次发表后的第50年的12月31日),若其间未发表,不保护 |
公民软件产品 | 1、署名权、修改权 2、发表权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可权、获得报酬权、转让权 |
1、没有期限 2、作者终生及其死亡后的50年(第50年的12月31日)合作开发,以最后死亡作者为准 |
单位软件产品 | 发表权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可权、获得报酬权、转让权 | 50年(首次发表后的第50年的12月31日),若其间未发表,不保护 |
注册商标 | 有效期10年(若注册人死亡或倒闭1年后,未转移则可注销,期满前6个月内必须续注) | |
发明专利权 | 保护期为20年(从申请日开始) | |
实用新型和外观设计专利权 | 保护期为10年(从申请日开始) | |
商业秘密 | 不确定,公开后公众可用 |
不侵权 | 侵权 |
---|---|
①个人学习、研究或者欣赏; ②适当引用; ③公开演讲内容 ④用于教学或科学研究 ⑤复制馆藏作品; ⑥免费表演他人作品; ⑦室外公共场所艺术品临幕、绘画、摄影、录像; ⑧将汉语作品译成少数民族语言作品或盲文出版。 |
①未经许可,发表他人作品; ②未经合作作者许可,将与他人合作创作的作品 当作自己单独创作的作品发表的; ③未参加创作,在他人作品署名; ④歪曲、篇改他人作品的; ⑤盗窃他人作品的; ⑥使用他人作品,未付报酬; ⑦未经出版者许可,使用其出版的图书、期刊的版式设计的。 |
标准的分类
标准的编号
大题题型固定,主要靠刷题
答题技巧
详细分析试题说明
数据管理员可通过中间件进行用户管理、操作管理和权限管理。用户管理维护用户信息,用户信息(用户名、密码)存储在用户表中;操作管理维护数据实体的标准操作及其所属的后端数据库信息,标准操作和后端数据库信息存放在操作表中;权限管理维护权限表,该表存储用户可执行的操作信息。
==>
数据管理员是一个外部实体;
中间件中有“用户管理”、“操作管理”、“权限管理”这些加工;
中间件中有“用户表”这个数据存储,且该存储与“用户管理”相关;
后端数据库是一个外部实体;
中间件中有“操作表”这个数据存储,且该存储与“操作管理”相关:
中间件中有“权限表”这个数据存储,且该存储与“权限管理”相关。
利用数据平衡原则
一、补充实体
实体可能是:
(1)人物角色:如客户、管理员、主管、经理、老师、学生
(2)组织机构:如银行、供应商、慕捐机构
(3)外部系统:如银行系统、工资系统、后台数据库(当要开发的是中间件时)
二、补充存储
存储的文字方面特征:“**文件” “**表” “**库” “**清单” “**档案”
三、补充数据流
1、数据平衡原则
(1)顶层图与0层图对比,是否有顶层图有,但0层图无的数据流,或反之。
(2)检查图中每个加工,是否存在只有入没有出,或只有出没有入,或根据输入的数据无法产生对应的输出的情况。
2、按题目说明与图进行匹配
说明中的每一句话,都能与图中有对应关系,当把说明中的实体与数据流标识出来之后,容易缩小对应范围,找出漏。
四、补充加工名
加工是用于处理数据流的,所以要补充加工名,可以把该加工涉及到的数据流,在说明中标识出来,再在数据流名称所在的句子中,找“动词+名词”的结构,分析是否可作为加工。
“动词+名词”如:生成报告,发出通知,批改作业,记录分数,当然这只是普遍情况,也有例外,如物流跟踪、用户管理
求时间复杂度、分治算法、回溯算法、贪心算法、动态规划算法(重点)
C++/Java面向对象题目二选一,掌握面向对象知识即可