2015 系统工程师研发笔试题

4)在小端序的机器中,如果union X{ int x; char y[4];};如果X a;a.x=0x11223344;//16进制则:()y[0]=11y[1]=11y[2]=11y[3]=11y[0]=22y[3]=22【解析】union是联合体(共用体),也就是 int x; 和 char y[4];的首地址相同,给x赋值的同时改变了y数组的值a.x=0x11223344;小端存储,低位存在低地址。0x44是最低位,所以它存放在最低的地址。y[0]取的是低地址的值,所以y[0]=0x44,y[3]=0x11正确答案: D8)Linux系统中某个可执行文件属于root并且有setid,当一个普通用户mike运行这个程序时,产生的进程的有效用户和实际用户分别是____?root mikeroot rooymike rootmike mikedeamon mikemike deamon【解析】setuid的用途是允许普通用户完成一些任务,而完成这些任务需要特权和通常被禁止的访问权限。在实际应用中,通常用来允许普通用户以root用户的角色运行只有root帐号才能运行的程序或命令。当一个具有setid访问模式的文件被执行时,进程的有效UID将会变成文件所有者的UID,并使用该UID的访问权限来访问其他的文件和资源。由于可执行文件属于root,因此当程序设置了setid权限位时,普通用户会临时变成root权限,但实际用户任然是原来的mike。正确答案: A10)硬币游戏:连续扔硬币,直到某一人获胜。A获胜条件是先正后反,B获胜是出现连续两次反面,问AB游戏时A获胜概率是()?1/61/41/31/22/33/4【解析】A赢的条件是:正反B赢的条件是:反反从第一次抛硬币开始计算假设第一次是:正,概率是1/2第二次如果是 反 则A赢,如果是正,则都不赢,继续抛,直道出现 反 也就是A赢为止。也就是说在第一次结果为 正 的情况下A必赢假设第一次是:反,概率是1/2第二次如果是 反 则B赢,概率是1/2,如果是 正 则又出现A必赢的情况所以A赢的概率是1/2+(1/2)*(1/2)=3/4B赢的概率是(1/2)*(1/2)=1/4正确答案: F12)有一个用数组C[1..m]表示的环形队列,m为数组的长度。假设f为队头元素在数组中的位置,r为队尾元素的后一位置(按顺时针方向)。若队列非空,则计算队列中元素个数的公式应为?(m+r-f)mod mr-f(m-r+f) mod m(m-r-f) mod m(r-f) mod m需要判断边界

【解析】

如果r>f则元素个数为r-f如果r<f,则元素个数为r-f的补集,也就是m+r-f统一起来就写成 ——(m+r-f)mod m

正确答案:A13)下列关键字序列为堆的是()?100,60,70,50,32,6560,70,65,50,32,10065,100,70,32,50,6070,65,100,32,50,6032,50,100,70,65,6050,100,70,65,60,32

【解析】

我们所说的堆一般指二叉堆。二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。一般都用数组来表示堆,i结点的父结点下标就为(i – 1) / 2。它的左右子结点下标分别为2 * i + 1和2 * i + 2。如第0个结点左右子结点下标分别为1和2。首先BCDF选项的第一个数(跟节点)既非最大也非最小,不满足堆的定义,排除E选项中,根节点最小,可能是最小堆,但是100却大于其孩子节点60,,所以不是堆A选项是最大堆,100的子节点是60,70. 且100>60,100>7060的子节点是50,32 且60>50,60>3270的子节点是65 且70>65

正确答案:A

14)有4个进程A,B,C,D,设它们依次进入就绪队列,因相差时间很短可视为同时到达。4个进程按轮转法分别运行11,7,2,和4个时间单位,设时间片为1。四个进程的平均周转时间为 ()?15.2516.2516.7517.2517.7518.25【解析】详见:教你理解时间片轮转调度算法

详址:?url=Tlva3QeSTkoEjECHThJKqok5LdOzJehFWcSQPj18QsoowVX6pZlrVGM2ft_jffbAUyCqO5mAIyLvf6OFZqYknJJfi527cIamlIadZQM65VG

正确答案:B

15)下列关于网络编程错误的是?UDP是不可靠服务主动关闭的一端会出现TIME_WAIT状态服务端编程会调用listen(),客户端会调用bind()TCP建立和关闭连接都只需要三次握手linux通过提供socket接口来进行网络编程长连接相对短连接可以节省建立连接的时间【解析】C,服务器端调用bind()D,TCP释放连接不需要三次握手client端不需要bind;TCP建立连接需要三次握手 断开连接需要四次服务器端socket–>bind–>listen–>accept客户端

socket–>connect

正确答案:CD

16)A公司打算搭建一个Andriod App下载的Web站点,计划将目前常见的手机APP都放到这个网站上提供下载。因为业务开展初期下载量很小,技术部门就用了1台服务器,给服务器配置了一个公网IP对外进行服务。随着销售部门的推广到位,用户量和下载量呈指数级上载,要求技术部门马上进行改造。如果你是技术部门经理,你会怎么改造这个站点,以满足高负载的需求。提示:短时间修改网站的代码不现实,其他方面的各种改造建议都可以,建议越多越好。【解析】硬件方面:1、增加带宽,多机房部署,购买CDN。2、增加服务器,增加服务器的硬件资源。软件方面:1、首先为了防止因为大量用户下载APP,带宽占用过高导致网站原有的功能瘫痪或者体验严重下降,需要将APP下载的地址和网站服务分开部署。2、动静态分离,使用CACHE。2、NGINX反响代理,多点集群。

版权声明:本文为博主原创文章,未经博主允许不得转载。

别让别人徘徊的脚步踩碎你明天美好的梦想,

2015 系统工程师研发笔试题

相关文章:

你感兴趣的文章:

标签云: