关注公众号:儒思HR人力资源网(微信搜索 ID:cuixg111 进入) 下载海量名企管理资料(全部免费)
第二部分 不定向选项(4题,每题5分。每题有1-5个正确选项,完全正确计5分,漏选计2分,不选计0分,多选、错选计-2分)
21. 要提高多线程程序的效率,对锁的控制策略非常重要。一种策略是在锁的个数不太多、控制结构不太复杂的情况下,尽可能降低加锁的粒度;另一种策略是在合适的条件下取消用锁。以下情况中不可能取消锁的是 。 A. 多线程写一个共同的数据结构,且写操作是原子操作 B. 多线程写一个共同的数据结构,且写操作不是原子操作 C. 多线程读一个共同的数据结构,且读操作不是原子操作
D. 一个线程写,多个线程读一个共同的数据结构,写操作是原子操作,读操作不是原子操作
E. 一个线程写、多个线程读一个共同的数据结构,写操作不是原子操作,读操作是原子操作
22. 一颗非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树可能是 。
A. 所有的结点均无右孩子 B. 只有一个叶子结点 C. 是一颗二叉树索树
D. 所有的结点均无左孩子
23. 以下数字在表示为double(8字节的双精度浮点数)时存在舍入误差的有 。 A.
2 B. 10的30次方 C. 0.1 D. 0.5 E. 100
24. 给定如下C程序: typedef struct node_s{ int item;
struct node_s* next;
}node_t;
void reverse_list(node_t* head) {
node_t* n=head; head=NULL; while(n){ }
return head; }
关注公众号:儒思HR人力资源网(微信搜索 ID:cuixg111 进入) 下载海量名企管理资料(全部免费)
以下哪项能实现该函数的功能
A. node_t* m=head; head=n; head->next=m; n=n->next; B. node_t* m=n; n=n->next; m->next=head; head=m; C. node_t* m=n->next; n->next=head; n=m; head=n;
D. head=n->next; head->next=n; n=n->next;
第三部分 填空与问答(5题,共30分)
25. (4分)某无聊的程序员在玩Windows上的记事本程序,不用鼠标,每次可以按以下键或组合之一:A、Ctrl+A(全选)、Ctrl+C(拷贝)、Ctrl+V(粘贴),那么在10次按键只能可以制造的最长文本长度为 。
26. (4分)若初始序列为gbfcdae,那么只会少需要 次两两交换,才能使该序列变为abcdefg。任给一个自由a--g这7个字母组成的排列,最坏的情况下需要至少 次两两交换,才能使序列变为abcdefg。
27. (5分)在某恶劣天气,若地图上S点到T点的交通网如下图所示,其中每条边表示一条双向通道,其上的数字为该通路可通行的概率,且该概率两两独立。求S到T的可通行概率 。
1/3 1/2 1/2
1/2
1/2
1/3
28. (8分)6度分离假说的含义是,世界上任何两个人要么是朋友,要么是朋友的朋友,或者更高阶的朋友的朋友(如朋友的朋友的朋友),改论断中“朋友”一词出现的次数为两人之间的距离,那么该距离小于等于6。如果某SNS(如QQ、旺旺等),有100万用户,其人际关系网咯符合以下两个假设:
1) 朋友关系是一种对称关系(如A和B是朋友,那么B和A也是朋友) 2) 符合2度分离假说
3) 第i个人拥有的朋友的个数为ni ,所有ni 中最大值为n 试估算n的最小值 。
关注公众号:儒思HR人力资源网(微信搜索 ID:cuixg111 进入) 下载海量名企管理资料(全部免费)
29. (9分)某电子商务网站进行A、B两种推荐算法的效果对比测试,对用户的访问请求按照1:9的比例随机分配给A和B两种算法处理。产生推荐结果后,按照两种指标对比两种算法产生的结果好坏:第一种指标是CTRPV=该算法下用户的点击展现次数/该算法下所有的展现次数,第二种指标是CTRUV=该算法下有点击的用户数/该算法下所有的用户数。假定每个用户会对该推荐服务2次访问,如果A和B的CTRPV持平(假设为0.01)。那么CTRUV哪个大,大的比小的大百分之多少 。
第四部分:JAVA附加题(注,阿里有大量JAVA研发工程师需求;选作以下题目有机会增加该方向面试机会)
1.以下每个线程输出的结果是什么?(不用关注输出的顺序,只需写出输出的结果集即可)
public class TestThread{ public static vod main(String[] args){ // test1 Thread t1 = new Thread(){ @Override public void run(){ try{ int i=0; while(i++<100000000){ // nothing } System.out.println(\ }catch(Exception e){ System.out.println(\ } }; }; t1.start(); t1.interrupt(); // test2 Thread t2 = new Thread(){ public void run(){ try{ Thread.sleep(5000); System.out.println(\ }catch(Exception e){ System.out.println(\ }
关注公众号:儒思HR人力资源网(微信搜索 ID:cuixg111 进入) 下载海量名企管理资料(全部免费)
}
}
}; };
t2.start();
// t2.interrupt(); //不确定是否有这句话
// test3
Thread t3 = new Thread(){ public void run(){ try{ Thread.sleep(50000); System.out.println(\ }catch(Exception e){ System.out.println(\ } }; };
t3.start();
t3.interrupt();
// test4
Thread t4 = new Thread(){ public void run(){ try{ Thread.sleep(50000); System.out.println(\ }catch(Exception e){ System.out.println(\ } }; };
t4.start();
t4.interrupt();
// test5 try{ t4.start(); System.out.println(\}catch(){ System.out.println(\}