软考
#1 程序语言基础
1.1 编程语言分类
通用的编程语言有C语言、C++语言、Java语言、C#语言、PHP语言、Python语言、VB语言、JavaScript语言等。
标记语言是名称带有ML即MarkLanguage的语言
SQL为数据库语言
通用脚本语言包括 Python, Ruby, VBScript,PHP。
COBOL是面向事务处理的语言;
XML即可扩展标记语言;
PROLOG是逻辑式语言;
LISP是函数式语言
1.2 变量存放位置
变量实际上是存储位置的名字。
代码区存放指令,运行过程中不可修改。
全局变量的存储单元位于静态数据区。
局部变量的存储单元位于栈区。
根据需要进行动态申请和释放的动态变量存储空间在堆区。
1.3 程序变量叙述
函数的调用和返回控制都是用栈来进行的,以保证运算逻辑的正确性。
函数的声明必须在该函数的调用之前,定义可以在函数调用之后。
动态绑定是程序运行过程中,把函数(或过程)调用与响应调用所需要的代码相结合的过程
连接程序是将来源不同的目标程序装配成一个可执行程序
程序的错误可以分为两类:语法错误和语义错误,语法描述语言的结构,语义表达语言的含义。语法错误会在编译阶段
#2 线性表
2.1 串
串的模式匹配算法是指在串中查找指定的模式串是否出现及其位置
两个字符串比较时,按照对应字符(编码)的大小关系进行比较。
2.2排序
#3 软工&项管
3.1 软件开发模型
RUP是统一过程的商业版本,是用力和风险驱动、以架构为中心、迭代的增量开发过程。
XP是一种轻量级,高效,低风险,柔性,可预测的,科学的软件开发方式,不断迭代。
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期在前一个螺旋周期的基础上迭代进行开发。
瀑布模型适用于软件需求确定,开发过程能够以线性化的方式完成的那些软件开发项目。能否用于某个项目或者快速开发某个项目并不取决于所开发的软件项目的规模或开发团队的规模。而且只要软件需求确定,开发过程能够采用线性方式进行,现今的软件开发仍然可以使用瀑布模型。
V模型是瀑布模型的一种演变模型,将测试和分析与设计关联进行。
原形模型通过快速构建可运行的原型系统,然后根据运行过程中获取的用户反馈进行改进,特别适用于对软件需求缺乏认识的情况。
敏捷开发有:XP,SCRUM,水晶法
RUP属于统一开发过程
Mc Call软件质量模型从软件产品的运行、修整、转移三个方面确定了11个质量特性。
运行方面的特性包括正确性、可靠性、易使用性、效率和完整性;
产品转移方面特性包括可移植性、复用性和互用性;
产品修正方面特性包括可维护性、灵活性、可测试性;
CMM:
可重复级: 建立了基本的项目管理过程和实践来跟踪项目费用,进度和功能性。
已定义级: 所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。
已管理级: 收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制。
优化级: 过程的量化反馈和先进的新思想,新技术促使过程不断改进。
云计算: 用户所需的资源和调用方式对用户透明,向用户提供方便、灵活的服务。
以质量为中心的信息系统工程控制管理工作是由三方:建设单位(主建方)、集成单位(承建方)和监理单位分工合作实施的。
#4 办公自动化 √
#5 中央处理器 CPU
5.1 中央处理器的内部构成
中央处理器(CPU) 是指由 运算器(ALU)、控制器(CU)、寄存器组(Registers)、内部总线所组成
运算器由算术逻辑单元(ALU)、累加器、数据缓冲寄存器和状态条件寄存器组成
控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成
I/O总线是在内存与外设(显示器、打印机、扫描仪、外部存储设备等)间传送数据的通路
程序计数器用于存放下一条指令所在单元的地址。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为 “取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。
累加器用于暂时存放操作数和中间运算结果。
总线宽度分为地址总线宽度和数据总线宽度
地址总线宽度决定了CPU可以访问的物理地址空间,简单地说就是CPU到底能够使用多大容量的内存。
CPU执行算术运算或者逻辑运算时,算术逻辑运算部件(ALU)将计算结果保存在累加器(AC)中。
数据寄存器用于暂时存放由内存读取的一条指令或数据字,反之,当向内存写入一个数据字时,也暂时将他们存放在数据缓冲寄存器中。
计算机的用途不同,对其不同部件的性能指标要求也有所不同。用作科学计算为主的计算机,其对主机的运算速度要求很高;用作大型数据库处理为主的计算机,其对主机的内存容量、存取速度和外存储器的读写速度要求较高:对于用作网络传输的计算机,则要求有很高的I/O速度。
CPU对主存的访问方式属于随机存储。
连入计算机系统的设备都要进行编址以便进行访问,对于I/O设备,可以采用与内存统一编址的方式或独立的编址方式。若与内存单元统一编址,则访问I/O设备接口如同访问内存单元,在指令系统中就不需要加以区分(即不需要设置专门的访问I/O设备接口的指令);若采用独立的编址方式,则I/O设备接口的编号与内存单元的地址可能重叠,因此访问I/O设备接口的指令应该与访问内存单元的指令相互区分。
RISC(精简指令集计算机)指令系统的最大特点是:选取使用频率最高的一些简单指令,指令条数少; 指令长度固定,指令格式种类少;只有取数_/存数指令访问存储器,其余指令的操作都在寄存器之间进行。
CPU字长指CPU在单位时间内能一次处理的二进制数的位数。
数据总线负责计算机中数据在各组成部分之间的传送.
访问IO设备接口的指令应该与访问内存单元的指令相互区分。
时钟频率直接反映了机器的速度,通常主频越高其速度越快。
时钟周期也称为震荡周期,定义为时钟脉冲的倒数,是计算机中最基本的、最小的时间单位。
指令周期是执行一条指令所需要的时间。
机器周期是完成一项基本操作所需要的时间。
MIPS(Million Instruction Per Second):来描述每秒钟所执行的指令条数。
MFLOPS(Million Floating-point Operations per Second):是衡量计算机系统的技术指标。
中断向量提供中断服务程序的入口地址。
5.2 寻址方式
直接寻址方式下,操作数在内存中,指令中给出操作数的地址,需要再访问一次内存来得到操作数。
立即寻址方式下,操作数在指令中,所以在取得指令时就得到操作数,是速度最快的。
寄存器寻址方式下,操作数在CPU的寄存器中。
寄存器间接寻址方式下,操作数的地址在CPU的寄存器中,还需要访问一次内存(主存单元)来得到操作数。
间接寻址下,间接寻址意味着指令中给出的地址A不是操作数的地址,二是存放操作数地址的主存单元的地址,简称操作数地址的地址。
无条件传送、程序查询和中断方式都需要CPU执行程序指令进行数据的输入和输出。DMA方式则是一种不经过CPU而直接从内存存取数据的数据交换模式。 在DMA模式下,CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完之后再把信息反馈给CPU即可。
#6 数据库语言
6.1 属性分类:
简单属性: 不能再划分的更小部分属性
复合属性: 可以在划分为更小部分,也就是可以在划分一下其他属性的属性
单值属性: 数据库中所定义的属性对于一个特定的实体来说只有一个单独的值
多值属性: 在某种情况下对某个特定的实体而言,一个属性可能对应一组值
派生属性: 可以从别的实体或相关属性派生出来
6.2 关系模型中有三类完整性约束:
实体完整性: 对主属性值域的约束
参照完整性: 对参照关系的外码属性值域的约束
(如果一个关系中的一个属性是另外一个关系中的主码则这个属性为外码。外码的值或为空,或为其对应的主码中的一个值)\color{#696969}{(如果一个关系中的一个属性是另外一个关系中的主码则这个属性为外码。外码的值或为空,或为其对应的主码中的一个值)}(如果一个关系中的一个属性是另外一个关系中的主码则这个属性为外码。外码的值或为空,或为其对应的主码中的一个值)**
用户定义完整性: 对其他属性值域的约束
6.3 SQL语句补全
查询语句
//查询 零件名为P2, 供应商包含华德, 利润在1280~2500的 零件名,供应商以及利润(售价-进货价)
SELECT 零件名, 供应商, 售价 - 进货价 as 利润
FROM P
WHERE 零件名 = 'P2'
AND 供应商 like '%华德%'
AND 利润 Between 250 AND 500
//寻找比所有计算机系学生的年龄都小的其他系的学生 姓名及年龄
SELECT 姓名, 年龄
FROM 学生
WHERE 年龄 < ALL(
SELECT 年龄 FROM 学生 WHERE
专业 = '计算机')
AND 专业 <> '计算机';
//查询至少选择了四门课程的学生学号、姓名及平均成绩
SELECT 学号, 姓名, AVG(成绩) AS 平均成绩
FROM Student GROUP BY 学号
HAVING COUNT(课程号)>3
修改语句
//
UPDATE P
SET 价格 = 价格*0.98
WHERE 供应商 = 'S2';
插入语句
INSERT INTO EMP Values(10058, '黄晓华' , '开发部')
建表语句
//
CREATE TABLE Emp(
员工号 CHAR(4),
姓名 CHAR(10),
性别 CHAR(1) CHECK(性别 IN ('M','F')),
部门 CHAR(4) REFERENCES Dept(部门),
家庭住址 CHAR(30),
PRIMARY KEY (员工号);
#7 面向对象技术 √
面向对象中,基类和超类属于同一个概念,等价于面向对象继承关系中的父类。
面向对象程序设计语言的最主要的作用是进行面向对象的系统实现,它并不能用于系统的分析与设计,目前,较为流行的面向对象系统分析与设计工具或语言主要是统一建模语言UML。
多态有参数多态、包含多态、过载多态和强制多态四类
参数多态是应用比较广泛的多态,被称为最纯的多态;
包含多态在许多语言中都存在,做常见的例子就是子类型化,即一个类型是另一个类型的子类型;
过载多态是同一个名字在不同上下文中所代表的含义不同
#8 应用数学
#9 数据的表示
原码: 正数的符号位为0,负数的符号位为1
反码: 正数的反码等于他的原码。负数的符号位不变,其他位取反。
补码: 正数的补码等于他的原码。负数的补码等于反码+1。
移码: 补码符号位取反,数值位不变。
海明码: 利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的确定位置上插入k个校验位,通过扩大码距来实现检错和纠错。
奇偶校验码: 通过增加一位校验位来使编码中“1”的个数横为奇数或偶数。
两个数值相同,亦或结果为0,两个数不同,亦或结果为1;
循环冗余校验码: 的基本原理是在尺位信息码后再拼接位的校验码,整个编码长度为N位。
数值中的小数点在硬件中不明确表示,二是采用约定位置的方式。
在IEEE754浮点表示法中,阶码采用移码表示
如果浮点数的尾数用补码表示,负数的话,小数点后第一位一定是0,正数的话,则一定是1。
#10 系统分析与系统设计
解释器模式: 定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言“”是指使用规定格式和语法的代码
N-S盒图,PAD图和程序流程图主要用于表示软件模块的执行过程。
E-R图是在对系统进行数据建模时采用,用于表示实体与实体之间的联系。
面向对象分析结果主要是面向对象分析模型,当前主流的技术是采用面向对象建模语言来描述和表达。
面向对象分析与设计主要是得到系统的模型,但面向对象分析的主要任务是描述系统应该解决什么问题,即分析模型
好的设计耦合性低,而差的设计耦合性高。
数据耦合是指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递;
标记耦合是指两个模块之间传递的是数据结构;
内容耦合是指如果一个模块与另一个模块的内部属性有关,不经调用直接使用另一个模块的程序代码或内部数据;
公共耦合是指通过一个公共数据环境相互作用的那些模块间的耦合。
程序模块设计的原则包括:规模适中,接口简单,单入口出口;
UML统一建模语言可以用来描述面向对象分析与设计的结果。
DFD数据流图是结构化分析中的一种重要的工具,描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能,用于功能建模。
一般来说模块内聚性由低到高有偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、信息内聚和功能内聚 7种类型
#11 存储器系统
静态存储器(SRAM) 由触发器存储数据,其优点是速度快、使用简单、不需刷新、静态功耗极低,常用做高速缓存(Cache),缺点是元件数多、集成度低、运行功耗大。
动态存储器(DRAM) 需要不停地刷新电路,否则内部的数据将会消失,其优点是集成度高、功耗低,价格也低。
可编程的只读存储器(PROM) 其内容可以由用户一次性写入,写入后不能再修改。
可擦除可编程只读存储器(EPROM) 其内容既可以读出,也可以由用户写入,写入后还可以修改。改写的方法是,写入之前先用紫外线照射15〜20分钟以擦去所有信息,然后再用特殊的电子设备写入信息。
虚拟存储器是为了给用户提供更大的随机存取空间而采用的一种存储技术。它将内存与外存结合使用,好像有一个容量极大的内存储器,工作速度接近主存,每位的成本又与辅存相近,在整体形成多层次存储系统。
虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。
在请求分页系统中, 当访问的页面不在主存时会产生一个缺页中断,缺页中断与一般中断的主要区别是缺页中断是在指令执行期间产生并进行处理的, 而一般中断是在一条指令执行完,下一条指令开始执行前进行处理的。缺页中断在一条指令执行期间可能会产生多次,每当发生缺页中断并进行处理后,将返回到被中断指令开始重新执行。
操作系统是通过文件目录和目录项来组织和管理外存中的信息,使得用户可以按名存取
#12 Windows基本操作
#13 程序测试基础知识
13.1 测试的分类
静态测试: 包括人工测试和计算机辅助静态分析。
动态测试: 通过运行程序发现错误。
**黑盒测试: ** 包括等价类划分,错误猜测,因果图等
**白盒测试(结构测试): **
路径覆盖: 要求每一条独立路径都执行过。
语句覆盖: 要求所有语句至少执行一次。
条件覆盖: 每个判断里的每个条件的可能取值至少执行一次
判定覆盖: 每个判断的取真分支和取假分支至少经历一次
#14 网络协议与标准
SNMP属于OSI/RM的应用层协议
在电子邮件系统中,发送邮件通常使用SMTP协议,而接收邮件通常使用POP3协议
#15 处理机标准
#16 树和二叉树√
#17 统一建模语言UML
行为事物也称作动作事物,是UML中动态的部分,代表时间和空间上的动作。有三类行为事物:交互、状态机和活动。
活动图(Activity Diagrams):是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。
#18 数据模型
数据模型的三要素是:数据结构、数据操作及完整性约束条件。
E-R图来描述现实世界的概念模型,称为实体一联系模型,简称E-R模型。E-R图的三要素是实体、联系和属性。
#19 数据安全与保密
防火墙总体上分为包过滤、应用级网关等类型,代理服务器也属于应用级网关类型。
防火墙的基本功能是包过滤,能对进出防火墙的数据包包头中的IP地址和端口号进行分析处理,从而可以控制对特殊站点的访问、能对进出的数据包进行过滤、能对部分网络攻击行为进行检测和报警;但对数据包的内容一般无法分析处理,所以防火墙本身不具备防范网络病毒入侵的功能,防火墙一般与放病毒软件一起部署
URL过滤是HTTP过滤的基本模式,URL过滤可包括URL白名单、黑名单、关键字等。
主动攻击包含攻击者访问他所需信息的故意行为。
被动攻击主要是收集信息而不是进行访问,数据的合法用户对这种活动一点也不会察觉到。被动包括嗅探、信息收集、窃听等攻击方法。
#20 著作权及实施条例
根据《计算机软件保护条例》的规定,著作权法保护的计算机软件是指计算机程序及有关文档。
#21 音频
最基本的声音信号数字化方法是取样——量化法,它分成三个步骤:采样、量化、编码。
#22 Internet
cookies中文名成为小型文本文件,指某些网站为了辨别用户身份而存储在用户本地终端上的数据。