软考-软件设计师备考

上午题

一、计算机系统

1、计算机硬件系统:运算器、控制器、存储器、输入设备、输出设备
2、中央处理单元(CPU):由运算器(数据处理)、控制器(程序控制、操作控制、时间控制)集成,是计算机系统的核心部件,负责获取程序指令、对指令进行译码并加以执行
备注:
	操作控制:CPU产生每条指令的操作信号并将操作信号送往对应的部件

1、运算器

运算器组成:算术逻辑单元(ALU)、累加寄存器(AC)、数据缓冲寄存器(DR)、状态条件寄存器(PSW)
备注:
	累加寄存器:通用寄存器,当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。

2、控制器

控制器组成:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、指令译码器(ID)
指令寄存器(IR)用于暂存从内存取出的、正在运行的指令,这是由系统使用的寄存器,程序员不能访问。
存储器数据寄存器()

在这里插入图片描述

3、进制

1、二进制:0,1,满2进1;
2、八进制:0~7,满8进1;
3、十进制:0~9,满10进1;
4、十六进制:0~9,A~F(10~15),满16进1;

3.1、进制转换

1、二进制转十进制
110010=0*2+1*2+0*2*2+0*2*2*2+1*2*2*2*2 +1*2*2*2*2*2 = 50
2、八进制转十进制
0777  = 7 * 1 + 7 * 8 + 7 * 8 * 8 = 511
3、十六进制转十进制
9CA1 = 1 * 1 + 10 * 16 + 12 * 16 * 16  + 9 * 16 * 16 * 16 = 40097
4、十进制转二进制
将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制
5、十进制转八进制
将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制
6、十进制转十六进制
将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制
7、二进制转八进制
将二进制数每三位一组(从低位开始组合),转成对应的八进制数即可
8、二进制转十六进制
将二进制数每四位一组(从低位开始组合),转成对应的十六进制数即可
9、八进制转二进制
将八进制的每一位,转成对应的一个3位的二进制数即可,从右往左开始
10、十六进制转二进制
将十六进制的每一位,转成对应的一个4位的二进制数即可,从右往左开始
备注:n进制转十进制,乘以n的幂次方;十进制转n进制,除以n取余数;二进制转n进制,以三位或者四位凑一块,拼在一起;n进制转二进制,将n里面的每一位都转换为三位或者4位的二进制数拼在一起

3.2、进制加减法

1、加法
逢n进1
2、减法
借1为n
3、乘法参照加法,除法参照减法
备注:n为进制数

4、单位转换

1、最小的存储单位 bit(比特) 一个0或者是一个1;
2、最基本的存储单元是 byte(字节) 每个字节由8个bit构成;
3、单位换算
1 Kb = 1024 b
1 Mb = 1024 Kb
1 Gb = 1024 Mb
1 Tb = 1024 Gb

5、数据表示

1、最高位为符号位,0表示正数,1表示负数,0的原码:+0=00000000,-0=10000000
2、正数的反码和原码相同,负数的反码则是其绝对值按位求反(符号位不变,其他位取反),0的反码:+0:00000000,-0=11111111
3、正数的补码与其原码和反码相同,负数的补码则等于其反码的末位+1,0的补码:+0=-0=00000000
4、移码是在补码的基础上符号位取反,0的移码:+0=-0=10000000
5、X的补码的补码=X的原码

在这里插入图片描述

6、浮点数

1、浮点数:用阶码和尾数表示的数,这种表示数的方法称为浮点表示法,N=2的E次方*F,E为阶码,F为尾数
2、当两个数阶码不一样时,首先対阶,小阶向大阶对齐,浮点数向右移
3、浮点数所能表示的数值范围主要由阶码决定,所表示的数值的精度则由尾数决定
4、规格化就是将尾数的绝对值限定在区间[0.5,1]
5、定点数的补码和移码可表示2的n次方个数,而其补码和反码只能表示2的n次方-1个数

阶码为带符号的纯整数,尾数为带符号的纯小数
在这里插入图片描述

7、寻址

速度由快到慢:
立即寻址>寄存器寻址>立即寻址>寄存器间接寻址>间接寻址

在这里插入图片描述

8、奇偶校验码

奇校验:编码中1的个数为奇数;
偶校验:编码中1的个数为偶数;
常用的奇偶校验码:水平奇偶校验码、垂直奇偶校验码、水平垂直校验码
备注:
	码距为2,具有检错能力,码距大于等于3,才肯呢个有纠错能力;
	可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况;
	只能检错,不能纠错。

9、海明码

在这里插入图片描述

码距=2具有检错能力,码距=3才有检错纠错能力

10、循环冗余码

码距=2;
可以检错但不能纠错;

11、RISC和CISC

RISC:精简指令集计算机,CISC:复杂指令集计算机

12、流水线

顺序执行:N * 第一条指令花费的时间
流水线执行:第一条指令花费的时间 + (N-1) * 每条指令中花费最长时间段的时间
加速比 = 流水线执行 / 流水线执行
操作周期 = 每条指令中花费最长时间段的时间
吞吐率 = 1 / 每条指令中花费最长时间段的时间(单条)
吞吐率 = N / (第一条指令花费的时间 + (N-1) * 每条指令中花费最长时间段的时间)(N条)

13、存储器

在这里插入图片描述

按照访问方式分类:按地址访问存储器、按内容访问存储器(相联存储器)
按照寻址方式分类:随机存储器、顺序存储器、直接存储器
虚拟存储器:主存 + 辅存
计算机系统的主存主要由DRAM(动态随机存储器)构成:需要周期性的刷新来保持信息
计算机系统的Cache主要由SRAM(静态随机存储器)
Cache(高速缓冲存储器)
Flash(闪存)
EEPROM(电可擦编程存储器)
空间局部性:左邻右舍都访问
时间局部性:换个时间继续访问

14、Cache

作用:提高CPU访问主存的效率,对程序员是透明的
地址映像方法:
直接映像:冲突多
全相联映像:冲突少
组相联映像:冲突较少
Cache与主存地址的映射是由硬件自动完成的

15、中断

定义:计算机在执行程序的过程中,当遇到急需处理的事件时,暂停当前正在运行的程序,转去执行有关服务程序,处理完成后自动返回源程序。
中断向量:提供了中断服务程序的入口地址
中断响应时间:发出中断请求开始,到进入中断服务程序
保存现场目的:返回来执行源程序

16、输入输出(IO)控制方式

控制方式:
程序查询方式:
1、CPU和IO(外设)只能串行工作,CPU需要一直轮询检查,长期处于忙等状态,CPU利用率低
2、一次只能读/写一个字
3、由CPU将数放入内存
中断驱动方式:
1、IO设备通过中断信号主动向报告IO操作已完成
2、CPU和IO(外设)可并行工作
3、CPU利用率得到提升
4、由CPU将数据放入内存
直接存储方式(DMA):
1、CPU和IO(外设)可并行工作
2、仅在传递数据块的开始和结束时才需要CPU的干预
3、由外设直接将数据放入内存
4、一次读写的单位为“块”而不是字

17、总线

总线分类:数据总线、地址总线、控制总线
常用总线:ISA总线、EISA总线、PCI总线、PCI Express总线、前端总线、RS-232C、SCSI总线、SATA、USB、IEEE-1394、IEEE-488总线
PCI总线:目前微型机上广泛应用的内总线,采用并行传输方式——并行内总线
SCSI总线:并行外总线
系统总线又称为内总线,SCSI总线不属于系统总线
内存容量决定地址总线的宽度,字长决定数据总线的宽度
在计算机系统中采用总线结构,便于实现系统的积木化构造,同时可以减少信息传输线的数量
总线复用方式可以减少总线中信号线的数量
并行总线适合近距离高速数据传输
串行总线适合长距离数据传输
单总线结构在一个总线上适应不同种类的设备,设计简单,但无法达到高的性能要求
专用总线在设计上可以与连接设备实现最佳匹配

18、加密技术与认证技术

加密技术:
1、对称加密(私有密钥加密):加密和解密是同一把密钥,只有一把密钥
缺点:
密钥分发有缺陷
优点:
加密解密速度很快;
适合加密大量明文数据
2、非对称加密(公开密钥加密):加密和解密不是同一把密钥,一共有两把密钥,分别是公钥和私钥,用公钥加密只能用私钥解密,用私钥加密只能用公钥解密,不能通过一把推出另一把,用接收方的公钥加密明文,可以实现防止窃听的效果
优点:
密钥分发没有缺陷
缺点:
加密解密速度很慢
3、混合加密

认证技术:
摘要:将发送的明文进行Hash算法后得到摘要放在密文后以前发送过去,与接收方解密后的明文进行相同的Hash算法得到的摘要进行对比,如果一致,则没有篡改,否则有篡改
数字签名:发送方用自己的私钥对摘要进行签名(加密)得到数字签名后放到密文后一起发送过去,接收方用发送方的公钥对数字签名进行验证(解密),如果验证成功则该消息没有被假冒且不能否认,否则该消息的真实性为假冒发送
CA:权威机构
数字证书:用户向CA机构申请数字证书,将个人信息和公钥发给CA机构,CA机构颁给用户数字证书,数字证书用CA的私钥进行签名(加密),用CA的公钥验证(解密)数字证书,得到用户的公钥

19、加密算法

对称密钥(私钥、私有密钥加密)算法:(共享密钥加密算法)
DES、3DES、RC-5、IDEA、AES(分组加密算法)、RC4
非对称密钥(公钥、公开密钥加密)算法:
RSA、ECC、DSA
非对称密钥可用于数字签名
MD5是摘要算法,对任意长度的输入计算得到的结果长度为128位
认证处理主动攻击,加密阻止被动攻击

20、可靠性公式

串联系统:R=R1R2R3...Rn
并联系统:R=1-(1-R1)(1-R2)...(1-Rn)

二、程序设计语言

1、可靠性公式

低级语言:机器语言、汇编语言
高级语言:JAVA、C、C++、PHP、Python等
解释器:
翻译源程序时不生成独立的目标程序
解释程序和源程序要参与到程序的运行过程中

编译器:
翻译时将源程序翻译成独立保存的目标程序
机器上运行的是与源程序等价的目标程序,源程序和编译都不再参与目标程序的运行过程


2、程序设计语言基本成分

控制成分:顺序结构、选择结构、循环结构
程序中的数据必须具有类型,作用:
便于为数据合理分配存储单元
便于对参与表达式计算的数据对象进行检查
便于规定数据对象的取值范围及能够进行的运算
常量和变量:
变量的取值在程序运行过程中可以改变,常量则不行;
变量和常量都具有类型属性;
变量具有对应的存储单元,常量则没有;
可以对变量赋值,不能对常量赋值。

程序设计语言的基本成分包括数据、运算、控制和传输等。
高级程序设计语言不依赖于具体的机器硬件。
程序中局部变量的值在运行时不能改变。
程序中常量的值在运行时不能改变。

3、传值调用与传地址调用

传值调用:将实参的值传递给形参,实参可以是常量、变量和表达式。不可以实现形参和实参间双向传递数据的效果。
传引用(地址)调用:将实参的地址传递给形参,形参必须有地址,实参不能是常量(值),表达式。可以实现形参和实参间双向传递数据的效果,即改变形参的值同时也改变了实参的值。

4、编译、解释程序翻译阶段

在这里插入图片描述

编译方式:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成
解释方式:词法分析、语法分析、语义分析

编译器和解释器都不可省略词法分析、语法分析、语义分析且顺序不可交换,即词法分析、语法分析、语义分析是必须的
编译器方式中中间代码生成和代码优化不是必要,可省略,即编译器方式可以在词法分析、语法分析、语义分析阶段后直接生成目标代码

编译方式下,在机器上运行的目标程序完全独立于源程序。

4.1、符号表

符号表:
不断收集、记录和使用源程序中一些相关符号的类型和特征等信息,并将其存入符号表中。记录源程序中各个字符的必要信息,以辅助语义的正确性检查和代码生成。

4.2、词法分析

输入:源程序
输出:记号流
词法分析阶段的主要作用:
分析构成程序的字符及由字符按照构造规则构成的符号是否符合程序语言的规定

4.3、语法分析

输入:记号流
输出:语法树(分析树)
语法分析阶段可以发现程序中所有的语法错误
语法分析阶段的主要作用:
对各条语句的结构进行合法性分析,分析程序中的句子结构是否正确

4.4、语义分析

输入:语法树(分析树)
语义分析阶段的主要作用:
进行类型分析和检查

语义分析阶段不能发现程序中所有的语义错误
语义分析阶段可以发现静态语义错误不能发现动态语义错误,动态语义错误运行时才能发现

4.5、目标代码生成

目标代码生成阶段的工作与具体的机器密切相关,寄存器的分配工作处于目标代码生成阶段 

4.6、中间代码生成

常见的中间代码:
后缀式、三地址码、三元式、四元式、和树(图)等形式。

中间代码与具体的机器无关(不依赖具体的机器),可以将不同的高级程序语言翻译成同一种中间代码,中间代码可以跨平台。

因为与具体的机器无关,使用中间代码有利于进行与机器无关的优化处理和提高编译程序的可移植性。

5、正规式

在这里插入图片描述

6、有限自动机

有限自动机是词法分析的一个工具,它能正确地识别正规集

确定的有限自动机(DFA):对每一个状态来说识别字符后转移的状态是唯一的
不确定的有限自动机(NFA):对每一个状态来说识别字符后转移的状态是不确定的

7、中缀、后缀表达式转换

优先级相同,从右向左

8、语法树中、后续遍历

中序遍历——中缀式——左根右
后序遍历——后缀式(逆波兰式)——左右根

三、数据结构

1、时间复杂度

算法时间复杂度:以算法中基本操作重复执行的次数(简称为频度)作为算法的时间度量。一般不必要精确计算出算法的时间复杂度,只要大致计算出相应的数量即可。

在这里插入图片描述

加法规则:多项相加,保留最高阶项,并将系数化为1
乘法规则:多项保留都相乘,并将系数化为1
加法乘法混合规则:小括号再乘法规则最后加法规则

2、渐进符号

O记号:渐进上界
Ω记号:渐进下界
Θ记号:渐进紧致界

3、递归式主方法

主方法:也称为主定理,给出了求解以下形式的递归式的快速方法。
T(n) = aT(n/b) + f(n)
其中,a大于等于1和b大于1是常数,f(n)是一个渐进的正函数。

在这里插入图片描述

4、线性结构

线性结构:基本的数据结构,主要用于对客观世界中具有单一前驱和后继的数据关系进行描述。线性结构的特点是数据元素之间呈现一种线性关系,即元素“一个接一个排列”

4.1、线性表

线性表:最简单、最基本也是最常用的一种线性结构。常采用顺序存储和链式存储,主要的基本操作是插入、删除和查找等。
特点:
1、有限序列;
2、存在唯一“第一个”
3、存在唯一“最后一个”
4、除第一个,其他每一个都只有一个前驱
5、除最后一个,其他每一个都只有一个后继

4.2、线性表的存储结构

顺序存储:线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理地址上也相邻。在这种存储方式下,元素间的逻辑关系无需占用额外的空间来存储。
顺序存储优点:
可以随机存取表中的元素
顺序存储缺点:
插入和删除操作需要移动元素

等概率下插入一个新元素需要移动的元素个数期望值:n/2
等概率下删除一个元素时需要移动的元素个数期望值:(n-)/2

链式存储:线性表的链式存储是用通过指针链接起来的结点来存储数据元素,其中,数据域用来存储数据元素的值,指针域则存储当前元素的直接前驱或直接后继的位置信息,指针域中的信息称为指针(或链)。
和顺序存储区别:
存储各数据元素的结点的地址并不要求是连续的,因此存储数据元素的同时必须存储元素之间的逻辑关系。另外,结点空间只有在需要的时候才申请,无须实现分配。

结点之间通过指针域构成一个链表,若结点中只有一个指针域,则称为线性链表(或单链表)
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值