1、银行it面试题银行it面试题一、选择题1、计算机系统中采用补码运算的目的是为了(B)。 A、与手工运算方法保持一致 B、提高运算速度 C、简化计算机的设计 D、提高运算的精度 2、长度相同但格式不同的两种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其他规定均相同,则它们可表示的数的范围和精度为(2)。 A、两者可表示的数的范围和精度相同 B、前者可表示的数的范围大但精度低 C、后者可表示的数的范围大但精度高 D、前者可表示的数的范围大但精度高 3、数值x*的近似值x0.121510-2,若满足|x-x*|(3),则称x有4位有效数字。 A、0.510-3 B、0.510-4 C、0.5
2、10-5 D、0.510-6 4、一个具有767个结点的完全二叉树,其叶子结点个数为(4)。 A、383 B、384 C、385 D、386 5、对于一个线性表既要求能够进行较快的插入和删除,又要求存储结构能够反应数据之间的逻辑关系,则应该用(5)。 A、顺序方式存储 B、链接方式存储 C、散列方式存储 D、以上方式均可 6、地址码长度为二进制24位时,其寻址范围是(C)。 A、512kB B、1MB C、16MB D、24MB 解析:2的10次方是1024b,也就是1KB,16M=16*1024*1024也就是2的24次方,所以24位时就是16MB.7、有m个进程共享同一临界资源,若使用信号
3、量机制实现对一临界资源的互斥访问,则信号量的变化范围是(A)。A.1至(m-1) B.1至m-1 C.1至m D.1至m程序的执行结果是(19)。 A、函数调用出错 B、8 C、9 D、7 20、选择下面程序的运行结果是(20)。 #include struct stu int num; char name10; int age; ; void fun(stu *p) cout(*p).name) 图中所示为一个小的死锁的例子。这时进程P1占有资源R1而申请资源R2,进程P2占有资源R2而申请资源R1,按循环等待条件,进程和资源形成了环路,所以系统是死锁状态。进程P1,P2是参与死锁的进程。
4、下面我们再来看一看死锁检测算法。算法使用的数据结构是如下这些: 占有矩阵A:n*m阶,其中n表示并发进程的个数,m表示系统的各类资源的个数,这个矩阵记录了每一个进程当前占有各个资源类中资源的个数。 申请矩阵R:n*m阶,其中n表示并发进程的个数,m表示系统的各类资源的个数,这个矩阵记录了每一个进程当前要完成工作需要申请的各个资源类中资源的个数。 空闲向量T:记录当前m个资源类中空闲资源的个数。 完成向量F:布尔型向量值为真(true)或假(false),记录当前n个并发进程能否进行完。为真即能进行完,为假则不能进行完。 临时向量W:开始时W:=T。算法步骤: (1)W:=T, 对于所有的i=1
5、,2,.,n, 如果Ai=0,则Fi:=true;否则,Fi:=false (2)找满足下面条件的下标i: Fi:=false并且Ri=W 如果不存在满足上面的条件i,则转到步骤(4)。 (3)W:=W+Ai Fi:=true 转到步骤(2) (4)如果存在i,Fi:=false,则系统处于死锁状态,且Pi进程参与了死锁。什麽时候进行死锁的检测取决于死锁发生的频率。如果死锁发生的频率高,那麽死锁检测的频率也要相应提高,这样一方面可以提高系统资源的利用率,一方面可以避免更多的进程卷入死锁。如果进程申请资源不能满足就立刻进行检测,那麽每当死锁形成时即能被发现,这和死锁避免的算法相近,只是系统的开销
6、较大。为了减小死锁检测带来的系统开销,一般采取每隔一段时间进行一次死锁检测,或者在CPU的利用率降低到某一数值时,进行死锁的检测。2.死锁的恢复 一旦在死锁检测时发现了死锁,就要消除死锁,使系统从死锁状态中恢复过来。 (1)最简单,最常用的方法就是进行系统的重新启动,不过这种方法代价很大,它意味着在这之前所有的进程已经完成的计算工作都将付之东流,包括参与死锁的那些进程,以及未参与死锁的进程。 (2)撤消进程,剥夺资源。终止参与死锁的进程,收回它们占有的资源,从而解除死锁。这时又分两种情况:一次性撤消参与死锁的全部进程,剥夺全部资源;或者逐步撤消参与死锁的进程,逐步收回死锁进程占有的资源。一般来
7、说,选择逐步撤消的进程时要按照一定的原则进行,目的是撤消那些代价最小的进程,比如按进程的优先级确定进程的代价;考虑进程运行时的代价和与此进程相关的外部作业的代价等因素。 此外,还有进程回退策略,即让参与死锁的进程回退到没有发生死锁前某一点处,并由此点处继续执行,以求再次执行时不再发生死锁。虽然这是个较理想的办法,但是操作起来系统开销极大,要有堆栈这样的机构记录进程的每一步变化,以便今后的回退,有时这是无法做到的。2.2. 画出网络中的星型结构、总线结构、环型结构和树型拓扑结构,并说明星型和总线型拓扑结构。 2.3. 把中缀表达式转化成后缀表达式 2.4. A-H 8个字符出现的频率依次为 0.
8、16 0.10 0.01 0.29 0.10 0.05 0.09 0.26 (注明:这几个数我记不清,反正就是这么几个数)构造最优二叉树,并将 A-H 8个字符用二进制码表示及计算平均码长。 2.5. 操作系统中的快表相关的问题 2.6. java的异常处理机制有什么优点 2.7. 输出字符串中第一个只出现一次的字符,用两种方案。2.8. 某进程被唤醒并立即运行,该系统采用的是剥夺调度方法吗?为什么? 某进程被唤醒并立即运行并不能说明该系统是剥夺调度算法。进程调度有以下两种基本方式:(1)、非剥夺方式:一旦把处理器分配给某进程后便让它一直运行下去,知道进程完成或发生某事件阻塞时,才把处理器分配
9、给另一个进程。(2)、剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理器,将之分配给其他进程。2.9. A,B,C,D四个元素依次进栈,进栈过程中允许出栈,写出所有可能的出栈序列。解题思路:1、先进先出2、先进后出3、还没进完就出4、进完了才出进一个出一个,ABCD先进两个,AB进,进C出C,进D出D,出B出A,CDBA进A进B,进C进D,出D出C出B出A,DCBA下面的不解释了,不明白你再问BCDA,BDCA,BCAD,BADC,BACD,前三个一起进CBAD,CBDA,CDBA第一个进去就出来ADCB,ACDB,ACBD一共14种2.10. UML中四类动态建模图
10、(状态图,协作图,活动图,序列图)的区别与用途UML提供图来描述系统的结构和行为。在其中,类图用于描述系统的静态结构,状态图,协作图,活动图,序列图则用于描述系统的动态行为,描述系统在执行期间不同时间点是如何动态交互的。 在这四种图中可以大体分为两类:以描述系统状态转移为主的状态图和活动图,以描述系统系统对象通讯和交互为主的协作图和序列图。1,以描述系统状态转移为主的状态图和活动图状态图:用来描述对象,子系统,系统的生命周期。通过状态图可以了解一个对象所能达到的所有状态,以及对象收到的事件对对象状态的影响。活动图:显示动作及其结果。着重描述操作(方法)实现中所完成的工作以及实例或对象中的活动,
11、它是状态图的一个变种。状态图与活动图的区别:活动图主要描述动作及对象状态改变的结果。状态图主要描述的是事件对对象状态的影响。2,以描述系统对象通讯和交互为主的协作图和序列图序列图:描述对象是如何交互的。重点放在消息序列上,描述消息在对象间是如何收发的。协作图:描述协作对象的交互与链接。协作图和序列图的区别:协作图和序列图都是描述对象交互的,但是序列图强调的是时间,协作图强调的空间。2.11. 用图描述出进程的三元状态,并简单说明状态之间的转换条件。进程有三个状态:就绪状态、运行状态、阻塞状态2.12. 简述网上银行的基本支付模式。卡号支付、专业版支付、动态密码支付、令牌支付、密码卡支付。常见的
12、就这些了。2.13. 给出一棵二叉树的前序遍历序列和中序遍历序列,画出二叉树并写出后序遍历序列。先来了解二叉树的相关知识。2.13.1. 二叉树概念 二叉树(binary tree)是一种数据结构,是一种树型结构,它的特点是每个结点至多只有二棵子树 (即二叉树中不存在度大于2的结点 ),并且,二叉树的子树有左右之分,其次序不能任意颠倒 。2.13.2. 二叉树的存储结构 2.13.2.1. 顺序存储结构 连续的存储单元存储二叉树的数据元素。例如图 6.4(b)的完全二叉树 , 可以向量 (一维数组 ) bt(1:6)作它的存储结构,将二叉树中编号为 i的结点的数据元素存放在分量 bti中 ,如图 6.6(a) 所示。但这种顺序存储结构仅适合于完全二叉树 ,而一般二叉树也按这种形式来存储 ,这将造成存 贮浪费。如和
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1