1.计算机系统知识
1.1 原反补移
正数:原反补一样
负数:原码:对应正数的符号位改为1
反码:原码除符号位外,全部取反
补码:反码+1
总结:取反+1
移码:补码的符号位取反
1.2 浮点数
用移码表示阶码,原码表示尾数
相加或相减运算时,将小阶向大阶对齐,同时 将尾数右移n位
1.3 流水线
100条指令,每条指令:取指2ns,分析2ns,执行1ns
吞吐率 = 100/203 指令数/流水线时间
最大吞吐率 = 1/2 1/指令周期
加速比 = 500/203 不用流水线的时间/用流水线的时间
效率 = 实际使用的时间/所有时间 24/60
1.4 源操作数和结果暂存在累加器
1.5 当采用DMA方式时,不需要CPU 执行程序指令来传送数据。
1.6 海明码
数据位 n,校验位 k
2^k -1 >=n+k
1.7 Cache位于主存与CPU之间,不会扩大了主存的容量
1.8 高速缓存与主存之间的地址映射有硬件自动完成
1.9 计算机中提供指令地址的程序计算器在PC的控制器中
1.10 CPU主要有运算器,控制器,寄存器组和内部总线等组成
1.10.1 运算器包括算术逻辑单元,累加寄存器,数据缓存寄存器,状态条件寄存器
1.10.1.1 算术逻辑单元:负责处理数据(算术运算和逻辑运算)
1.10.1.2 累加寄存器:累加器,通用寄存器(运算的工作区)
1.10.1.3 数据缓存寄存器:暂存从内存读取的指令或数据(数据的中转站)
1.10.1.4 状态条件寄存器:状态标志和控制标志
1.10.2 控制器包括指令寄存器,程序计数器,地址寄存器和指令译码器
1.10.2.1指令寄存器:指令:内存->缓冲寄存器->指令寄存器->指令译码器
1.10.2.2程序计数器:又叫指令计数器,存储下一条要执行指令的地址
1.10.2.3地址寄存器:当前CPU所访问的内存单元的地址,程序员可修改
1.10.2.4指令译码器:指令分为操作码和地址
1.11 中断向量提供中断服务程序入口地址
2.程序设计语言基础知识
2.1 语法,判断程序语句。语义,判断上下文,语境。
2.2对于编译型语言,处理过程为预处理-编译-链接
2.3语法制导翻译是一种静态语义分析
3.数据结构与数据运算
3.1 系统用栈实现嵌套调用函数的正确返回.
4.操作系统知识
5.软件工程基础知识
5.1 螺旋模型是一个风险驱动的过程模型,因此要求开放人员必须具有丰富的风险评估知识和经验,螺旋模型是一个迭代的模型,螺旋模型适用于大规模的软件项目开发。
5.2 敏捷开发方法是一个强调灵活性和快速开发的一种开发方法,极限编程是敏捷方法中最普遍的—种方法。集体所有权表示任何开发人员可以对系统任何部分进行改变,结对编程实际上存在一个非正式的代码审查过程,可以获得更高的代码质量。结对编程的编码速度与传统的单人编程相当。
5.3将具有相似功能的模块合并,不能改进设计质量。
5.4白盒测试的几种覆盖方法
5.4.1语句覆盖:每一个语句至少被执行一次
5.4.2判定覆盖(分支覆盖):程序中的每一个分支都至少执行一次
5.4.3条件覆盖:每个条件至少有一次真值、有一次假值
5.4.4路径覆盖:覆盖程序中所有可能的执行路径
5.5采用McCabe度量法计算其环路复杂度:环+1
5.6 结构化分析的输出包括数据流图,数据字典,加工逻辑,不包括结构图
5.7 COCOMO II 的体系结构阶段:功能点,代码行,对象点,模型把工作量表示为代码行数.
5.8 喷泉模型是一种适合于面向对象开发方法的软件过程模型.该过程模型的特点:以用户需求为动力,支持软件重用,具有迭代性
5.9 吞吐量:在给定的时间内,系统所能处理的任务的数量.
5.10 响应时间:系统对请求作出响应的时间.
5.11 容量:存储器所能存储的全部信息量.
5.12 改写代码仅使其结构上更紧凑,并不能提高执行效率.
6.结构化开发方法(下午第一题)
6.1 设计阶段接口设计主要依据需求分析阶段的数据流图,接口设计的任务主要是描述软件与外部环境之间的交互关系,软件内模块之间的调用关系
6.2耦合
6.2.1非直接耦合:没有直接关系
6.2.2数据耦合:传值(值传递)
6.2.3标记耦合:传对象(地址传递)
6.2.4控制耦合:传入的参数作为判断的依据。
6.2.5外部耦合:模块访问全局变量
6.2.6公共耦合:模块访问公共数据环境,公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
6.2.7内容耦合:模块访问另一模块内部
6.3内聚
6.3.1偶然内聚(巧合内聚):没有任何联系
6.3.2逻辑内聚:把几种相关的功能组合在一起,通过参数确定该模块完成哪一个功能。
6.3.3时间内聚:把需要同时执行的动作组合在一起形成的模块。
6.3.4过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程执行。
6.3.5通信内聚:各处理使用相同的输入数据或者产生相同的输出数据。
6.3.6顺序内聚:一个模块完成多个功能,这些模块又必须顺序执行。
6.3.7功能内聚:模块内所有元素共同完成一个功能,联系紧密,缺一不可。
6.4 数据流图中的元素在数据字典中进行定义,数据字典的条目包括数据流,数据项,数据存储和基本加工
7.面向对象技术(下午第三题)
7.1一个类有多个父类,称为多重继承,可能造成该类存在二义性的成员
7.2UML有4种关系:依赖,关联,泛化,实现
7.2.1依赖:--→(虚线实箭头),一个事物发生变化会影响另一个事物(依赖事物)的语义.
7.2.2关联:一(实线),关联,关联是一种结构关系,是对象之间的连接.聚合和组合都是特殊类型的关联.
7.2.2.1聚合一◇(空心的菱形),聚合关系是"has-a"的关系,删了聚合关系,不一定删除聚合的成员
7.2.2.2组合一◇(实心的菱形),组合关系是"contains-a"的关系,删了组合关系,一定删除组合的成员
7.2.3泛化一→(实线空心箭头),子类继承父类,父类是子类的泛化
7.2.4实现--→(虚线空心箭头),实现接口
7.3 UML中的图
7.3.1类图:展现了一组对象,接口,协作和他们之间的关系,包含类(属性,操作),接口,协作,依赖,泛化和关联关系.
7.3.2对象图:某一时刻一组对象以及它们之间的关系,包括对象(对象名:类)和链
7.3.3用例图:一组用例,参与者以及它们之间的关系.包括用例,参与者(小人),用例之间的扩展关系,包含关系,参与者和用例之间的关联关系,泛化关系.
7.3.4交互图
7.3.4.1序列图(时序图):以时间顺序组织的对象之间的交互活动.包括对象,生命线,消息
7.3.4.2通信图:强制收发消息的对象的结构组织.包括对象,链,消息
7.3.4.3交互概览图:它是活动图的变体,描述业务过程中的控制流概览,包含类的方法,判断
7.3.4.4计时图:类似示波器的图形
7.3.5状态图:展现了一个状态机,它由状态,转换,事件和活动组成.
7.3.6活动图:一种特殊的状态图,展现的是从一个活动到另一个活动的流程.包括活动状态,动作状态,转换和对象.
7.3.7构件图:展现了一组构件之间的组织和依赖,包含构件,供接口(圆形),依赖,需接口(半圆形).
7.3.8组合结构图:展示一组相互协作的实例如何完成特定的任务,描述设计,架构模式或策略.上面会有这个结构图的名称.
7.3.9部署图:展现了运行时处理结点以及其中构件的配置,一般有server和client
7.3.10包图:展现由模型本身分解而成的组织单元以及其间的依赖关系,像文件夹的形状
7.4设计模式
7.4.1创建型设计模式:与对象的创建有关
7.4.1.1 Abstract Factory(抽象工厂)
提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类.只想显示它们的接口而不是实现时.
7.4.1.2 Builder(生成器)
将一个复杂对象的构造与它的表示分离,使得同样的构建过程可以创建不同的表示.
7.4.1.3 Factory Method(工厂方法)
定义一个用于创建对象的接口,让子类决定实例化哪一个类.
7.4.1.4 Prototype(原型)
用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象.
7.4.1.5 Singleton(单例)
保证一个类只有一个实例,并提供一个访问它的全局访问点.
7.4.2结构型设计模式:处理类与对象的组合
7.4.2.1 Adapter(适配器)
将一个类的接口转换成客户希望的另外一个接口.
7.4.2.2 Bridge(桥接)
将抽离部分与其实现部分分离,使它们都可以独立地变化.
7.4.2.3 Composite(组合)
将对象组合成树型结构以表示"部分-整体"的层次结构.
7.4.2.4 Decorator(装饰)
动态地给一个对象添加一些额外的职责.
7.4.2.5 Facade(外观)
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.
7.4.2.6 Flyweight(享元)
运用共享技术有效地支持大量细粒度的对象.
7.4.2.7 Proxy(代理)
为其他对象提供一种代理以控制对这个对象的访问.
7.4.3行为型设计模式:对类或对象怎样交互和怎样分配职责进行描述
7.4.3.1 Chain of Responsibility(责任链)
使多个对象都有机会处理请求,避免请求的发送者和接受者的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.
7.4.3.2 Command(命令)
将一个请求封装为一个对象,从而使得可以用不同的请求对客户进行参数化;
7.4.3.3 Interpreter(解释器)
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子.
7.4.3.4 Iterator(迭代器)
提供一种方法顺序访问一个聚合对象的各个元素,且不需要暴露该对象的内部表示.
7.4.3.5 Mediator(中介者)
用一个中介对象来封装一系列的对象交互.
7.4.3.6 Memento(备忘录)
在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态.
7.4.3.7 Observer(观察者)
定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于她的对象都得到通知并被自动更新.
7.4.3.8 State(状态)
允许一个对象在其内部状态改变时改变它的行为.
7.4.3.9 Strategy(策略)
定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换.
7.4.3.10 Template Method(模板方法)
定义一个操作中的算法骨架,并将一些步骤延迟到子类中.
7.4.3.11 Visitor(访问者)
表示一个作用于某个对象结构中的各元素的操作.
7.5 设计原则
7.5.1共同封闭:包中所有类对于同一种性质的变化应该是共同封闭的,有变化,保内的所有类一起改变.
7.5.2共同重用:一个包内的所有类是共同重用的,重用了一个类,相当于重用了包中的所有类.
7.5.3开放-封闭:对扩展开放,对修改封闭.
7.5.4接口隔离:使用多个专门的接口比使用单一的总接口要好.
7.6 过载的多态是指同一个名字在不同的上下文所代表的含义不同.
8.算法设计与分析(下午第四题)
8.1 分治法
分治算法在每一层递归上都有3个步骤:分解,求解,合并
8.2 动态规划法
与分治法类似,不同的是动态规划法用一个表记录子问题的答案,在需要时找出已求得的答案
8.3 贪心法
贪心法根据当前已有信息作出选择,达到局部最优的效果,比如背包问题(可拆分),所以贪心算法并不总能得到最优解.
8.4 回溯法
回溯法按照深度优先,从根节点触发搜索空间树,比如0-1背包问题
8.5 分支限界法
分支限界法类似于回溯法,但它只是要找到一个解
8.6 概率算法
8.7 近视算法
8.8 数据挖掘算法
8.9 智能优化算法
9.数据库技术基础(下午第二题)
10.网络与信息安全基础知识
10.1适合对大量的明文消息进行加密传输的是RC5
10.2 当两个用户所使用的证书来自于不同的认证机构时,需要先对两个CA的身份进行认证
10.3 MD5是摘要算法,128位
10.4 常见的对称加密算法有:DES,RC5,IDEA,AES
10.5 1. A将邮件用随机对称加密秘钥K加密,将邮件密文发送给B
2. A将邮件生成摘要(MD5,SHA),将摘要用A的私钥加密(数字签名),将摘要密文发送给B
3. A将随机对称加密秘钥K用B的公钥加密,将秘钥密文发给B
4. B将随机对称加密秘钥密文用B的私钥解密,生成秘钥K
5. B将邮件密文使用秘钥K解密生成邮件正文,再生成摘要
6.B将摘要密文使用A的公钥解密,生成摘要,再与上面的摘要进行比对,看是否一致
10.6 访问控制的任务不包括审计
10.7 BGP属于外部网关协议
10.8 信息安全包括机密性,完整性,可用性,可控性,可审查性
10.8.1机密性:信息不暴露给未授权的实体或进程
10.8.2完整性:未经授权不能进行改变
10.8.3可用性:得到授权的实体在需要时可访问数据
10.9 windows命令
10.9.1 ipconfig:显示ip,mac等信息
10.9.2 traceroute:用于确定IP数据包访问目标所采取的路径.
10.9.3 netstat:用于显示网络连接,路由表和网络接口信息.
10.9.4 nslookup:查询DNS记录
10.10 无效的IP地址:169.254.x.x 和 0.0.0.0
10.11主域名服务器在接收到域名请求后,首先查询的是本地缓存
11.标准化和软件知识产权基础知识
11.1.专利权只有一个,但是可以作为共同申请人,谁先申请则属于谁.
11.2 必须使用注册商标的是烟草类商品
12.软件系统分析与设计
13.新技术
14.专业英语
15.多媒体
15.1语音信号定义的频率最高值为4kHz