4)在小端序的机器中,如果
union X
{
int x;
char y[4];
};
如果
X a;
a.x=0x11223344;//16进制
则:()
y[0]=11
y[1]=11
y[2]=11
y[3]=11
y[0]=22
y[3]=22
【解析】
union是联合体(共用体),也就是 int x; 和 char y[4];的首地址相同,给x赋值的同时改变了y数组的值
a.x=0x11223344;
小端存储,低位存在低地址。0x44是最低位,所以它存放在最低的地址。y[0]取的是低地址的值,所以y[0]=0x44,y[3]=0x11
正确答案: D
8)Linux系统中某个可执行文件属于root并且有setid,当一个普通用户mike运行这个程序时,产生的进程的有效用户和实际用户分别是____?
root mike
root rooy
mike root
mike mike
deamon mike
mike deamon
【解析】
setuid的用途是允许普通用户完成一些任务,而完成这些任务需要特权和通常被禁止的访问权限。
在实际应用中,通常用来允许普通用户以root用户的角色运行只有root帐号才能运行的程序或命令。
当一个具有setid访问模式的文件被执行时,进程的有效UID将会变成文件所有者的UID,并使用该UID的访问权限来访问其他的文件和资源。
由于可执行文件属于root,因此当程序设置了setid权限位时,普通用户会临时变成root权限,但实际用户任然是原来的mike。
正确答案: A
10)硬币游戏:连续扔硬币,直到某一人获胜。A获胜条件是先正后反,B获胜是出现连续两次反面,问AB游戏时A获胜概率是()?
1/6
1/4
1/3
1/2
2/3
3/4
【解析】
A赢的条件是:正反
B赢的条件是:反反
从第一次抛硬币开始计算
假设第一次是:正,概率是1/2
第二次如果是 反 则A赢,如果是正,则都不赢,继续抛,直道出现 反 也就是A赢为止。
也就是说在第一次结果为 正 的情况下A必赢
假设第一次是:反,概率是1/2
第二次如果是 反 则B赢,概率是1/2,如果是 正 则又出现A必赢的情况
所以A赢的概率是1/2+(1/2)*(1/2)=3/4
B赢的概率是(1/2)*(1/2)=1/4
正确答案: F
12)有一个用数组C[1..m]表示的环形队列,m为数组的长度。假设f为队头元素在数组中的位置,r为队尾元素的后一位置(按顺时针方向)。若队列非空,则计算队列中元素个数的公式应为?
(m+r-f)mod m
r-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
正确答案:A
13)下列关键字序列为堆的是()?
100,60,70,50,32,65
60,70,65,50,32,100
65,100,70,32,50,60
70,65,100,32,50,60
32,50,100,70,65,60
50,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>70
60的子节点是50,32 且60>50,60>32
70的子节点是65 且70>65
正确答案:A
14)有4个进程A,B,C,D,设它们依次进入就绪队列,因相差时间很短可视为同时到达。4个进程按轮转法分别运行11,7,2,和4个时间单位,设时间片为1。四个进程的平均周转时间为 ()?
15.25
16.25
16.75
17.25
17.75
18.25
【解析】
详见:教你理解时间片轮转调度算法
详址:http://wenku.baidu.com/link?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反响代理,多点集群。
版权声明:本文为博主原创文章,未经博主允许不得转载。