10个选择题,3个编程题,还有4个Android/iOS的附加题,附加题不记得了,记录一下选择题和编程题。
一、选择题
1.有6个不同颜色的珠子,可以串成多少种不同的手环?(旋转、翻转能变成一样的认为是一种)
A.30 B.60 C.120 D.720
2、在主线程中int i = 0,再并发同时执行A和B两个函数,函数A的内容是i++;i++;函数B的内容是i+=2;则i的结果可能为?(多选)
A.0 B.1 C.2 D.3 E.4 F.5 G.6
3、bash中不是用来处理字符串的是?
A.cut B.awk C.sed D.pushd
4、【1,2,3,4,5】入栈,出栈不可能为?
A.【23415】 B.【54132】 C.【23145】 D.【15432】
5、已知一颗二叉树的先序遍历序列为GDAFEMHZ,中序遍历序列为ADEFGHMZ,则后序遍历序列为?
A.ADEFGHMZ B.DAEFHZMG C.AEFDHZMG D.AFEDHMZG
6、不属于操作系统进程间实现同步的方式是?
A.临界区 B.互斥量 C.进程锁 D.事件
7、在传输层中未使用TCP协议的是?
A.SMTP B.FTP C.TELNET D.DNS
8、下列哪个排序方式的平均时间复杂度不是O(nlogn)?
A.选择排序 B.快速排序 C.归并排序 D.堆排序
9、下列不是死锁产生条件的是?
A.互斥 B.请求与保持 C.竞争 D.循环等待
10、TCP的可靠传输实现不包括下列哪个选项?
A.滑动窗口 B.冗余校验 C.超时重传 D.确认机制
二、编程题
1.定义一个数据结构Edge
class Edge{ private int a; private int b; }
表示节点a和节点b是连接在一起的。
实现如下方法,即给定一个Edge数组Edge[]graph,以及任意两个节点p和q,返回p和q是否联通。
bool isConnected(Edge[]graph , int p , int q)
2.实现一个方法:给定股票的价格序列数组prices[n],找到在该区间内股票的最大回撤值。
(找到p1,p2两个点需满足以下条件:p1在p2左边,prices[p1]>=prices[p2],prices[p1] – prices[p2]在整个区间最大)
示例:
prices[n] = {2,3,4,1,10,8,5,1,7,2}
最大回撤:prices[4] – prices[7] = 10 – 1 = 9
prices[n] = {9,8,7,6,5}
最大回撤:prices[0] – prices[4] = 9 – 5 = 4
double getMaxDrawdown(double prices[])
3.已知M*N矩阵,矩阵的每行从左到右递增,每列从上到下递增,给定目标值,写程序计算给出的目标值是否存在矩阵中。
bool isExist (double matrix[][] , double value)