您的当前位置:首页正文

中级程序员考试备考

来源:九壹网


一、数据的表示

1、进制转换

例如:

 在数字后面加上不同的字母来表示不同的进位制。
B(Binary)表示二进制,
O(Octal)表示八进制,
D(Decimal)或不加表示十进制,
H(Hexadecimal)表示十六进制。

例如:
将(101011)B转换成八进制,从右往左分割数字,每3位数字可以对应一个八进制位
则将101011分割为 101 和 011 ,且101= 5,011=3
所以(101011)B=(53)O

将(101011)B转换成十进制,
等于1×2^5+1×2^3+1×2^1+1×2^0 = 43
所以(101011)B=(43)D

将(101011)B转换成十六进制,从右往左分割数字,每4位数字可以对应一个十六进制位
则将101011分割为 10 和 1011 ,将10补全则为 0010 和 1011
且0010=1×2^1= 2,1011=1×2^3+1×2^1+1×2^0 = 11 = B
所以(101011)B==(2B)H

R进制转十进制使用“按权展开法”

例如:二进制转换成十进制:

10100.01 = 1×2^4+1×2^2+1×2^-2

例如:七进制转换成十进制:

604.01 = 6×7^2+4×7^0+1×7^-2

十进制转R进制使用“短除法”

例如:将十进制数94转换成2进制:

2进制转8进制(从右往左每3位数字可以对应一个八进制位)

在十六进制中:

  • 10——用A表示
  • 11——用B表示
  • 12——用C表示
  • 13——用D表示
  • 14——用E表示
  • 15——用F表示
  • 16——用G表示

2、源码,补码和反码

3、浮点数运算

1000——→1.0×10^3
119——→1.19×10^2
两数相加步骤:
首先对阶(将低阶转换成高阶,保证阶数相同)——→再进行尾数计算——→最后将结果格式化
1.19×10^2转换成0.119×10^3——→1.0+0.119=1.119——→将结果1.119×10^3格式化仍为×10^3(尾数不能为0,也不能超过1位数字)

注意:
格式化的结果不能是0.1119×10^4或者是11.19×10^2</font>

4、运算器和控制器的构成

二、计算机体系结构分类——Flynn


三、CISC和RISC两种指令类型的比较

四、流水线

流水线的概念

1、流水线的计算

例如:如上图所示,若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns。那么,流水线周期是多少?100条指令全部执行完毕需要的时间是多少?

  • 流水线周期为执行时间最长的一段:故流水线周期是2ns,
  • 100条指令全部执行完毕需要的时间是:
流水线计算方式分为两种:

(1)理论公式:一条执行指令+(指令条数-1)×流水线周期
    (t1+t2+..+tk)+(n-1)×△t 即:(2+2+1)+(100-1)×2 =203

(2)实践公式:一个完整任务完成时间 +(指令条数-1)×流水线周期
    这里将每个部分时间工整化,都取2ns
    k+(n-1)×△t 即:6+(100-1)×2 =204

2、流水线的吞吐率计算


例如:计算上题的流水线吞吐率为多少?

流水线吞吐率 = 指令条数 / 流水线执行时间 
即:TP=100 / 203 = 0.493

3、流水线的加速比


例如:计算上题的流水线加速比为多少?

流水线加速比  = 不使用流水线执行时间 / 使用流水线执行时间

计算不使用流水线执行100条指令需要花费的时间 T = (2+2+1)×100 =500,使用流水线执行时间为203
故S = 500 / 203 =0.985

该比值的高低决定了流水线的效率的好快程度(即:比值越高,流水线效率越高)

4、流水线的效率


例如:计算上图的流水线效率为多少?

E = n个任务占用的时空区/ K 个流水线的总时空区
即:E = (△t +△t +△t +3△t )×4 / 15△t×4

相当于计算阴影面积占全部面积的比值

五、计算机组成与体系结构

层次化存储结构

寄存器容量极小,但速度非常快,故是属于存储结构的最高层
Cache是高速缓存存储器
内存
外存

速度从上往下逐步变慢,内存从上往下逐步增大(实际上是基于性价比的考量)

1、Cache的概念


例如:Cache的访问命中率为95%,Cache的周期时间为1ns,主储存器周期时间为1ms,求系统的平均周期?
系统的平均周期 = 访问命中率×Cache的周期时间+(1-访问命中率)×主储存器周期

2、局部性原理

3、主存分类

4、主存编址计算

换算:
1KB (Kilobyte 千字节) = 1024B = 2^10B
1MB (Megabyte 兆字节 简称“兆”) = 1024KB = 2^10KB
1GB (Gigabyte 吉字节 又称“千兆”) = 1024MB = 2^10MB

在内存中:
1KB = 1024B = 1024字节 = 2^10字节
1MB= 1024KB = 1048576字节 = 2^20字节
1GB= 1024MB = 1073741824字节 = 2^30字节
1TB= 1024GB = 1099511627776字节 = 2^40字节
1PB= 1024TB = 1125899906842624字节 = 2^50字节
练习1

解:字节换算:1MB=2^20B,故16MB=2^24B,
             1B(字节)=8bit,所以16MB=2^24×8bit,
且按字节编址,就是每8bit编一个地址,所以需要2^24×8bit/8bit=2^24个地址。
故要产生这么多地址,所以主存地址至少需要你用24个二进制数表示。
解:字节换算:16MB=2^24×8bit,2^24×8bit/4bit=2^25个地址。
故要产生这么多地址,所以主存地址至少需要你用25个二进制数表示。
解:字节换算:64bit=8B,16MB=2^24B,2^24B/8B=2^21个地址
故要产生这么多地址,所以主存地址至少需要你用21个二进制数表示。
练习2

解:计算内存容量DFFFF-A0000= 3FFFF
3FFFFH换成二进制就是0011 1111 1111 1111 1111,从右往左第18位是最后一个1,也就是2的18次方
即2^10×2^8=1KB*256,即256KB;
练习3


计算下题:

解:
首先十六进制计算:尾地址-首地址+1,即C7FFFH-AC000H+1 = 1C000
然后转换为十进制:
1C000 = 0001 1100 0000 0000 0000 =2^16+2^15+2^14 B= 2^14(2^2+2^1+1)B =7×2^4×2^10B
最后字节换算:B与KB之间的转换:
7×2^4×2^10B/2^10 = 112KB,故共有112K个地址单元

求存储单元:
112×16/28×16×Y,即Y=4,故该芯片每个存储单元存储4位

5、磁盘结构与参数

练习1


根据图片解析:

解:磁盘旋转周期为33ms,说明磁盘转动一周经过11个物理块时间为33ms,每个物理块的读取时间为3ms
而每条记录的处理时间也为3ms,且为单缓冲区,一次只能处理单个物理块
故:R0的处理时间为3+3=6ms
每个物理块的处理时间=磁盘转动一周+处理时间
故:R1到R9都处理完花费时间为,(33+3)×10 =360ms
总处理时间360+6 = 366ms,因此48题答案选择C

分布优化后每个物理块所需时间为 = 读取时间 + 处理时间
即(3+3)×11 = 66ms,因此48题答案选择B

6、总线

7、系统可靠性分析

串联系统

并联系统

混合系统

8、差错控制

码距

循环校验码CRC


具体案例计算:

海明校验码

计算:

六、操作系统基本原理

概述:


进程管理:

1、进程状态

2、前驱图

3、进程的同步与互斥

4、PV操作

P表示进程等待状态,V表示进程活动状态

使用上图的pv操作进行案例分析:

关键在于找出约束条件:

练习1

练习2

使用PV关系描述前驱图,如下图所示:

根据上图思路,解答下题

答案为C、A、A

5、死锁问题

n表示资源数量,k表示进程数量
则不可能发生死锁至少需要的资源数量为:k×(n-1)+1


银行家算法计算


进程分配分析表:

存储管理:

1、分区式存储管理:

2、页式存储管理:

3、段式存储管理:

页存储的大小一致,段存储的大小不一致

4、段页式存储管理:

5、页面置换算法:

先进先出(FIFO)算法:

FIFO与URL算法习题:

算法习题2:

文件管理:

1、索引文件结构:

索引文件结构练习题:

2、文件和树形目录结构:

3、空闲存储空间的管理:

位示图练习题


设备管理:

1、设备传输控制方式:

2、虚设备与SPOOLING技术:

3、微内核操作系统:

七、数据库系统

1、三级模式—两级映射

2、数据库设计过程

2、ER模型实例

集成方式

关系模式练习题

3、关系代数与元组演算

一般以选择题的形式出现

  • 交、并、差
  • 笛卡尔积、投影、选择
  • 联接

4、规范化理论

函数依赖

价值与用途

求候选键

理论方法:

练习题:

范式

第一范式

第二范式

第三范式

BCNF

例题

模式分解

无损分解案例分析

无损分解案例——图表分析方法


无损分解案例——关系代数计算分析方法

并发控制

存在问题

封锁协议——解决存在问题

5、数据库完整性约束

1、数据库安全

数据备份


数据库故障与恢复

2、数据仓库与数据挖掘


3、反规范化

4、大数据


5、七层模型


根据上图七层模型解答下题:

网络技术标准与协议

TCP协议属于可靠传输协议,经过三次握手建立连接传输信息。UDP不可靠传输协议,直接传输信息

TCP协议(可靠传输)

DHCP协议

DNS协议(域名和IP地址的转换)

练习题:

6、网络技术

网络类型与拓扑结构

通常办公室使用的是星型拓扑结构

网络规划




ip地址与子网划分


例题


无分类编址

特殊含义的ip地址

7、HTML(选择题)

8、无线网

网络接入技术

IPV6

信息系统安全属性

对称加密技术

非对称加密技术

信息摘要

数字签名

数字信封与PGP

9、网络安全

各个网络层次的安全保障

网络威胁与攻击


防火墙

八、数据结构与算法基础

1、数组

2、稀疏矩阵


3、数据结构的定义

线性表

顺序存储与链式存储

链表的基本操作

线性表——顺序存储与链式存储比较

线性表——队列与栈

考查案例

广义表

树与二叉树

二叉树类型和性质

二叉树遍历

反向构造二叉树


上图组成的最终二叉树如下图:

树转二叉树

1、根据概念转二叉树
2、根据连线法转二叉树

查找二叉树

最优二叉树——构造哈夫曼树

线索二叉树

平衡二叉树

图的存储


图的遍历

拓扑排序

图的最小生成树——普里姆算法

树:n个结点有n-1条边
图:n个结点有n条边

图的最小生成树——克鲁斯卡尔算法

4、算法

算法的特性

算法的复杂度

顺序查找

二分查找



散列表

5、排序

直接插入排序

希尔排序

直接选择排序

堆排序


大顶堆排序:

冒泡排序

最小元素从依次比较排序到前面

快速排序

使用基准排序,分成大小两个序列后,再将两个序列进行基准排序,直到序列有序。

归并排序

首先两两进行排序,再依次合并排序

基数排序

排序的时间、空间复杂度(重点)

九、程序设计语言与处理

编译程序

文法定义


有限自动机(重点)



表达式

传值与传址

各种语言特点(重点)

法律法规

保护期限





标准分类(重点)

十、多媒体基础(考查1~3分)

音频的概念

超声波>20kHz
低声波/次声波<20Hz

图像的概念

多媒体的概念

多媒体的计算


传输数据的小k=1000
存储数据的大K=1024

多媒体的标准

压缩基础

十一、软件开发模型

开发模型

瀑布模型

原型模型

构造简易系统,适用于需求不明确的情况

螺旋模型

由多个模型组合而成,考试选择最匹配优先

V模型

测试占有重要地位,测试贯穿于开发的始终

CBSD模型

开发方法

敏捷开发方法

使用于小型项目

信息系统开发方法

需求开发

结构化设计

软件测试


McCabe复杂度

公式:m-n+2

系统运行与维护

软件过程改进

项目管理(1~2分)



十二、面向对象



数据流图


符合自顶向下的原则,故数据流图属于结构化工具

数据字典

数据流图平衡原则(重点)

案例分析1(数据流图)




案例分析2





十三、数据库设计

E-R模型

案例分析1(数据库)




案例分析2






UML建模

用例图

类图与对象图



顺序图

活动图


状态图

通信图

其实是顺序图的另一种表达方式

案例分析1(UML建模分析)



数据结构及算法应用

分治法(递归)



回溯法

贪心法(背包问题)

动态规划法

案例分析1(算法)






案例分析2



面向对象程序设计






案例分析1(面向对象)



案例分析2


静态方法通过类名调用:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top