考试类型:软件开发A1
考试时长:120分钟
一、不定项选择题(共25题,每题4分,共100分,少选、错选、多选不得分)
1. 已知一颗二叉树,如果线序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历的结果为:()
A. CFHGEBDA B. CDFEGHBA C. FGHCDEBA D. CFHGEDBA
2. 下列那两个数据结构,同时具有较高的查找和删除性能:()
A. 有序数组 B. 有序链表 C. AVL树 D. Hash表
3. 下列排序算法中,那些的时间复杂度不会超过nlogn:()
A. 快速排序 B. 堆排序 C. 归并排序 D. 冒泡排序
4. 初始顺序为:1 8 6 2 5 4 7 3 一组数采用堆排序,当排序(小根堆)完毕时,堆排序对应的二叉树中序遍历序列为:()
A. 8 3 2 5 1 6 4 7
B. 3 2 8 5 1 4 6 7
C. 3 8 2 5 1 6 7 4
D. 8 2 3 5 1 4 7 6
5. 当n=5时,下列函数的返回值是:()
int foo(int n)
{
if (n<=2)
return n;
return foo(n-1)+foo(n-2);
}
A. 5 B. 7 C. 8 D. 10
6. S市A、B共有两个区,人口比例为3:5,根历史统计A区犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大:()
A. 37.5% B. 32.2% C. 28.6% D. 26.1%
7. Unix系统中,下列那些可以用于进程间的通讯:()
A. socket B. 共享内存 C. 消息队列 D. 信号队列
8.静态变量通常存储在进程中哪一区:()
A. 栈区 B. 堆区 C. 全局区 D. 代码区
9. 查询性能()
A. 在Name字段上添加主键
B. 在Name字段上添加索引
C. 在Age字段上添加主键
D. 在Age字段上添加索引
10. IP地址131.153.12.71是一个______类IP地址:()
A. A B. B C. C D. D
11. 下推自动识别的语言是:()
A. 0型语言 B.1型语言 C. 2型语言 D. 3型语言
12. 下列程序的输出是:()
#define add(a,b) a+b
int main()
{
printf (“%d\n”, 5*add(3,4));
return 0 ;
}
A. 23 B. 35 C .16 D. 19
13. 浏览器访问某页面,HTTP协议返回状态码为403时表示:()
A. 找不到该页面
B . 禁止访问
C. 内部服务器错误
D. 服务器繁忙
14. 如果某系统15*4=112 成立,则系统采用的是_____进制()
A. 6 B. 7 C. 8 D. 9
15. 某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用huffman编码进行编码,那种是可能的编码:()
A. a(000),b(001),h(01),i(10),o(11)
B. a(0000),b(0001),h(001),o(01),i(1)
C. a(000),b(001),h(01),i(10),o(00)
D. a(0000),b(0001),h(001),o(000),i(1)
16. TCP和IP分别对应了OSI中的哪几层?()
A. Application layer
B. Presentation layer
C. Transport layer
D. Network layer
17. 一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?()
A. EDCBA B. DECBA C. DCEAB D. ABCDE
18. 同一进程下的线程可以共享以下?()
A. stack B. data sectiin C. register set D. file fd
19. 对于派生类的构造函数,在定义对象时构造函数的执行顺序为?()
1:成员对象的构造函数 2:基类的构造函数 3:派生类本身的构造函数
A. 123 B. 231 C.321 D. 213
20. 如何减少换页错误?()
A. 进程倾向于占用CPU
B. 访问局部性(locality of reference)满足进程要求
C. 进程倾向于占用I/O
D. 使用基于最短剩余时间(shortest remaining time)的调制机制
21. 递归函数最终会结束,那么这个函数一定?()
A. 使用局部变量 B. 有一个分支不调用自身
C. 使用了全局变量或者使用了一个或多个参数
D. 没有循环调用
22. 编译过程中,语法分析器的任务是()
A. 分析单词是怎样构成的 B. 分析单词串是如何构成语句和说明的
C. 分析语句和说明是如何构成程序的 D. 分析程序的结构
23. 同步机制应遵循哪些基本准则?()
A. 空闲让进 B. 忙则等待 C. 有限等待 D. 让权等待
24. 进程进入等待状态有哪几种方式?()
A. CPU调度给优先级更高的线程 B. 阻塞的线程获得资源或者信号
C. 在时间片轮转的情况下,如果时间片到了 D. 获取spinlock未果
25. 设计模式中,属于结构型模式的有哪些?()
A. 状态模式 B. 装饰模式 C. 代理模式 D. 观察者模式
二、填空题(共4题10个空,没个空2分,共20分)
1. 设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按2路归并排序方法对该序列进行一趟扫描后的结果 【26】
2. 关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell排序法,则一趟扫描的结果是 【27】 ;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是 【28】 。
3. 二进制地址011011110000,大小为(4)10和(16)10块的伙伴地址分别为: 【29】、 【30】。
4. 设t是给定的一颗二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左、右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。N2、NL、NR、N0都是全局量,且在调用count(t)之前都置为0。
typedef struct node
{int data; struct node *lchild, *rchild;} node;
int N2,NL,NR,N0;
void count(node *t)
{ if (t->lchild!=NULL) if 【31】N2++; else NL++;
else if 【32】 NR++; else 【33】;
if(t->lchild!=NULL) 【34】;if(t->rchild!=NULL) 【35】;
} /*call form : if(t!=NULL) count(t);*/
三、Web前端方向简答题(共2题,每题20分,要求采用javascript语言答题,作为面试参考,不计入总分)
1. 请用JavaScript实现,控制一个文本框只能输入正整数,如输入不符合条件则文本框全部字体标红,要求写出完整的文本框HTML代码和JavaScript逻辑代码。
2. 在网页里显示一个div浮层,位于网页正中,该浮层内的文本显示用户电脑当前时间,格式YYY-MM-DD hh:mm:ss,如2017-08-16 10:22:05。参考样式如下:
2017-08-16 10:22:05
浮层居中可以使用JavaScript或者CSS实现。
四、其他方向简答题(共2题,每题20分,选做1题,不计入总分)
1. 请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队伍中所处的位置和变化,队伍可能随时有人加入和退出,当有人退出影响到用户的位置排名时需要及时反馈到用户。
2. A,B两个整数集合,设计一个算法求它们的交集,尽可能的高效。