1. 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:()
CFHGEBDA
CDFEGHBA
FGHCDEBA
CFHGEDBA
【解析】
正确答案: D
2. 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:()
8 3 2 5 1 6 4 7
3 2 8 5 1 4 6 7
3 8 2 5 1 6 7 4
8 2 3 5 1 4 7 6
【解析】
答案解释:初始化序列:1 8 6 2 5 4 7 3(按照 i和2*1、2*i+1的关系比较大小),,小根堆就是要求结点的值小于其左右孩子结点的值,左右孩子的大小没有关系,那么小根堆排序之后为:1 2 4 3 5 6 7 8;
中序遍历:先遍历左孩子,然后访问根结点,最后访问有孩子,故遍历结果为:8 3 2 5 1 6 4 7
正确答案: A
3. S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?()
37.5%
32.5%
28.6%
26.1%
【解析】
正确答案: C
4. 静态变量通常存储在进程哪个区?()
栈区
堆区
全局区
代码区
【解析】
正确答案: C
5. P地址131.153.12.71是一个()类IP地址。
A
B
C
D
【解析】
正确答案: B
6. 下推自动识别机的语言是:()
0型语言
1型语言
2型语言
3型语言
【解析】
文法的四种类型分别是0型、1型、2型和3型。
0型文法产生的语言称为0型语言。
1型文法产生的语言称为1型语言,也称作上下文有关语言。
2型文法产生的语言称为2型语言,也称作上下文无关语言。
3型文法产生的语言称为3型语言,也称作正规语言。
在编译原理中,图灵机(TM)识别0型语言;
线性界限自动机(LBA)识别上下文有关语言(1型);
下推自动机(PDA)识别上下文无关语言(2型);
有穷自动机(FA)识别正规语言(3型)。
正确答案: C
7. 浏览器访问某页面,HTTP协议返回状态码为403时表示:()
找不到该页面
禁止访问
内部服务器访问
服务器繁忙
【解析】
400 Bad Request
1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
2、请求参数有误。
401 Unauthorized
当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。参见RFC 2617。
402 Payment Required
该状态码是为了将来可能的需求而预留的。
403 Forbidden
服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个404响应,假如它不希望让客户端获得任何信息。
404 Not Found
请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久 的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个 状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。出现这个错误的最有可能的原因是服务器端没有这个页面。
405 Method Not Allowed
请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。
鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。
正确答案: B
8. 如果某系统15*4=112成立,则系统采用的是()进制。
6
7
8
9
【解析】
假设是X进制 则:(x+5)*4 = x*x +x +2
求解得:x = 6
正确答案: A 你的答案: B (错误)
9. 某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的编码:()
a(001) b(000) h(01) i(10) o(11)
a(0000) b(0001) h(001) o(01) i(1)
a(000) b(001) h(01) i(10) o(00)
a(0000) b(0001) h(001) o(000) i(1)
【解析】
详见:TT 哈夫曼编码
详址:http://blog.csdn.net/u013630349/article/details/48223665
正确答案: A
10. 一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?()
EDCBA
DECBA
DCEAB
ABCDE
【解析】
正确答案: C
11. 对于派生类的构造函数,在定义对象时构造函数的执行顺序为?
(1:成员对象的构造函数; 2:对象成员的构造函数; 3:派生类本身的构造函数)
123
231
321
213
【解析】
当派生类中不含对象成员时
· 在创建派生类对象时,构造函数的执行顺序是:基类的构造函数→派生类的构造函数;
· 在撤消派生类对象时,析构函数的执行顺序是:派生类的构造函数→基类的构造函数。
当派生类中含有对象成员时
· 在定义派生类对象时,构造函数的执行顺序:基类的构造函数→对象成员的构造函数→派生类的构造函数;
· 在撤消派生类对象时,析构函数的执行顺序:派生类的构造函数→对象成员的构造函数→基类的构造函数。
正确答案: D
12. 递归函数最终会结束,那么这个函数一定?
使用了局部变量
有一个分支不调用自身
使用了全局变量或者使用了一个或多个参数
没有循环调用
【解析】
直接排除AD,注意力集中在B和C。
B肯定是对的,只有一次循环满足某个条件,不调用自己就返回,递归才会一层一层向上返回。
那么C呢,想一下,全局变量和参数确实可以用来控制递归的结束与否。
该不该选C呢?再仔细看一下题目(说实话,我很讨厌这种文字游戏),“这个函数一定...“,所以,问题集中在,是否是一定会使用这两种方式呢? 显然不是的。
除了C中提到的两种情况外,还有如下控制递归的方式:
1. 局部静态变量是可以控制递归函数最终结束的 2. 可能通过异常来控制递归的结束。 3. 可以利用BIOS或OS的一些数据或一些标准库的全局值来控制递归过程的终止。 4. 可以把一些数据写入到BIOS或OS的系统数据区,也可以把数据写入到一个文件中,以此来控制递归函数的终止。
所以,答案为B
13. 编译过程中,语法分析器的任务是
分析单词是怎样构成的
分析单词串是如何构成语言和说明的
分析语句和说明是如何构成程序的
分析程序的结构
【解析】
语法 分析 是编译过程的一个 逻辑 阶段。 语法 分析 的 任务 是在 词法分析 的基础上将 单词 序列组合成各类语法短语,如“ 程序 ”,“语句”,“ 表达式 ”等等.语法 分析 程序判断源 程序 在结构上是否正确.
【注】
词法分析:对源代码进行扫描,将字符分割成"单词",将单词标记为:关键字,标识符,字面值常量等;
语法分析:以"单词"做为输入,分析单词符号串是否符合语法规则;
例如:3=a;这个表达式就是不符合语法规则的,左操作数不能为字面值常量;
而a=3/0;这个表达式是符合语法规则,
语义分析:各个类型的分析和检查;
静态语义包括声明和类型的匹配,类型的转换;
动态语义一般是运行期出现的语义相关问题,比如将0作为除数等;
这道题也可选B吧 ???
正确答案: D
14. 进程进入等待状态有哪几种方式?
CPU调度给优先级更高的线程
阻塞的线程获得资源或者信号
在时间片轮转的情况下,如果时间片到了
获得spin lock未果
【解析】
进程分为基本的三个状态:运行、就绪、阻塞/等待。
A. 高优先级的抢占CPU,使得原来处于运行状态的进程转变为就绪状态。
B. 阻塞的进程等待某件事情的发生,一旦发生则它的运行条件已经满足,从阻塞进入就绪状态。
C. 时间片轮转使得每个进程都有一小片时间来获得CPU运行,当时间片到时从运行状态变为就绪状态。
D. 自旋锁(spin lock)是一种保护临界区最常见的技术。在同一时刻只能有一个进程获得自旋锁,其他企图获得自旋锁的任何进程将一直进行尝试(即自旋,不断地测试变量),除此以外不能做任何事情。因此没有获得自旋锁的进程在获取锁之前处于忙等(阻塞状态)。
正确答案: D
15. 当n=5时,下列函数的返回值是:()
int foo(int n) {
if (n < 2)
return n;
return foo(n - 1) + foo(n - 2);
}
5
7
8
10
【解析】
波那契数列,1,1,2,3,5
正确答案: A
16. 下列程序的运行结果为:
#include<iostream>
using namespace std;
void main() {
int a = 2;
int b = ++a;
cout << a / 6 << endl;
}
【解析】
正确答案: 0
17. 下列哪两个数据结构,同时具有较高的查找和删除性能?()
有序数组
有序链表
AVL树
Hash表
【解析】
正确答案: C D
http://www.nowcoder.com/questionTerminal/da248bc0352f4603847b452a59a51242
18. 下列排序算法中,哪些时间复杂度不会超过nlogn?
快速排序
堆排序
归并排序
冒泡排序
【解析】
正确答案: B C
http://www.nowcoder.com/profile/566186/test/1127862/1029?onlyWrong=0
19. Unix系统中,哪些可以用于进程间的通信?()
Socket
共享内存
消息队列
信号量
【解析】
Linux进程间通信:管道、信号、消息队列、共享内存、信号量、套接字(socket)
Linux线程间通信:互斥量(mutex),信号量,条件变量
Windows进程间通信:管道、消息队列、共享内存、信号量 (semaphore) 、套接字(socket)
Windows线程间通信:互斥量(mutex),信号量(semaphore)、临界区(critical section)、事件(event)
A socket可以实现同一个主机的进程之间通信,也可以实现不同的两台主机之间的不同进程的通信。
B 申请一块内存,不同的进程都可以使用,使用的时候,最好加锁
C 消息队列是可以实现的
D 信号量semget函数可以实现进程通信。
正确答案: A B C D
20. TCP和IP分别对应了OSI中的哪几层?()
Application layer
Presentation layer
Transport layer
Network layer
【解析】
传输层协议:TCP、UDP、SCTP
网络层协议:IP、ARP、RARP、ICMP、IGMP、OSPF
应用层协议:http,FTP、SMTP、RIP、DNS
TCP(Transmission Control Protocol 传输控制协议)是为应用程序提供完整的传输服务的,是一个刘传输协议 所以在传输层(Transport layer)C
而IP是网络传输时逻辑寻址用的,所以在网络层Network layer
所以 答案 CD
http://www.nowcoder.com/profile/566186/test/1127862/1051?onlyWrong=0
21. 同一进程下的线程可以共享以下?
stack
data section
register set
file fd
【解析】
线程共享的内容包括:
1.进程代码段
2.进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)
3.进程打开的文件描述符、
4.信号的处理器、
5.进程的当前目录和
6.进程用户ID与进程组ID
线程独有的内容包括:
1.线程ID
2.寄存器组的值
3.线程的堆栈
4.错误返回码
5.线程的信号屏蔽码
正确答案: B D
22. 如何减少换页错误?
进程倾向于占用CPU
访问局部性(locality of reference)满足进程要求
进程倾向于占用I/O
使用基于最短剩余时间(shortest remaining time)的调度机制
【解析】
正确答案: B
23. 同步机制应该遵循哪些基本准则?
空闲让进
忙则等待
有限等待
让权等待
【解析】
同步机制应该遵循的基本准则
· 空闲让进:当无进程处于临界区时,表明临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,以有效利用临界资源
· 忙则等待:当已有进程处于临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问
· 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态
· 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态
正确答案: A B C D
24.设计模式中,属于结构型模式的有哪些?
状态模式
装饰模式
代理模式
观察者模式
【解析】
正确答案: B C
http://www.nowcoder.com/profile/566186/test/1127862/1063?onlyWrong=0
25. 设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按二路归并方法对该序列进行一趟扫描后的结果为 1 。
(输出结果请按照以下格式:ABCDEFG,字母之间没有逗号)
【解析】
正确答案: 1 DQFXAPBNMYCW
http://www.nowcoder.com/questionTerminal/e11435c3318e4132898d9e7042f6709a
26. 关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell的排序法,则一趟扫描的结果是 1 ;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是 2 。
【解析】
参考答案 1 QACSQDFXRHMY
参考答案 2 FHCDQAMQRSYX
http://www.nowcoder.com/questionTerminal/7c83432c473e4e9ea8b8306741e7f06b
27. 二进制地址为011011110000,大小为(4)10和(16)10块的伙伴地址分别为: 1 , 2 。
【解析】
1 参考答案 011011110100
2 参考答案 011011100000
http://www.nowcoder.com/profile/566186/test/1127862/1278?onlyWrong=0
28. 略