一、简答题(30分)
1、简述数据库操作的步骤(10分)
2、TCP/IP的四层结构(10分)
3、什么是MVC结构,简要介绍各层结构的作用(10分)
二、算法与程序设计(45分)
1、由a-z、0-9组成3位的字符密码,设计一个算法,列出并打印所有可能的密码组合(可用伪代码、C、C++、Java实现)(15分)
2、实现字符串反转函数(15分)
3、百度凤巢系统,广告客户购买一系列关键词,数据结构如下:(15分)
User1 手机 智能手机 iphone 台式机 …
User2 手机 iphone 笔记本电脑 三星手机 …
User3 htc 平板电脑 手机 …
(1)根据以上数据结构对关键词进行KMeans聚类,请列出关键词的向量表示、距离公式和KMeans算法的整体步骤
(2)计算给定关键词与客户关键词的文字相关性,请列出关键词与客户的表达符号和计算公式
三、系统设计题(25分)
一维数据的拟合,给定数据集{xi,yi}(i=1,…,n),xi是训练数据,yi是对应的预期值。拟使用线性、二次、高次等函数进行拟合
线性:f(x)=ax+b
二次:f(x)=ax^2+bx+c
三次:f(x)=ax^3+bx^2+cx+d
(1)请依次列出线性、二次、三次拟合的误差函数表达式(2分)
(2)按照梯度下降法进行拟合,请给出具体的推导过程。(7分)
(3)下图给出了线性、二次和七次拟合的效果图。请说明进行数据拟合时,需要考虑哪些问题。在本例中,你选择哪种拟合函数。(8分)
(4)给出实验方案(8分)
第一部分 填选题
(选择题全都是不定项选择)
1. e1, e2, e3, e4按顺序依次入栈,以下可能的出栈顺序有()
A. e2, e3, e4, e1
B. e1, e2, e4, e3
C. e3, e2, e4, e1
D. e2, e4, e3, e1
ABCD
2. 运算式X=A+B*(C-D)/E可能的后缀表达式()
A. XABCDE/-*+=
B. XABC-DE/*+=
C. XABCD-*E/+=
D. XAB+CD/E-*=
画出表达式树然后后序遍历(*和+可交换左右子树),只有C满足
3. 非稳定排序有()
A. 冒泡排序 B归并排序 C快速排序 D堆排序 E希尔排序
冒泡是稳定的,归并无需交换也是稳定的,快牌需要非相邻交换不稳定,堆排是选择排序的变种也需要非相邻交换不稳定,希尔的不同插入排序过程中元素可能被交换也是不稳定的,答案CDE。
4. 一个有n个结点的四叉树,每一个结点都有4个指向子节点的指针,问有多少个空指针_______。
答:初始1个结点,4个空指针,每多1个结点则多3个空指针。4+3*(n-1)=3n+1
5. 一个函数,求运行结果
A15 B16 C17 D18
函数实现的是二进制下1的个数,一共15个选A。
6. 进程和线程的区别()
A. 操作系统只能调度进程,不能调度线程
B. 线程可以共享内存地址空间,进程不能
C. 线程可以共享内存数据,进程不能
D. 进程可以用IPC进行通信,线程不行
操作系统可以调度线程;进程可以通过共享内存进行通信;进程的进程间通信IPC不一定适用于线程(关于进程线程通信,可以看看wonder的这篇总结http://blog.csdn.net/wonderwander6642/article/details/8008241)。答案D。
7. 关于段页式管理,哪个说法是正确的()
A. 每个进程一个段表,一个页表
B. 每个进程一个段,一个页
C. 每个进程一个段表,每段一个页表
D. 每个进程一个页表
为实现段页式存储管理,系统应为每个进程设置一个段表,包括每段的段号,该段的页表始址和页表长度。每个段有自己的页表,记录段中的每一页的页号和存放在主存中的物理块号。C
8. 关于TCP协议,哪个说法是错误的()
A. 当连接关闭过程中,两端socket都要经过TIME_WAIT状态
B. 一个established的TCP连接,shutdown可以让主动调用端进入半关闭
C. TCP协议默认保证了当一端崩溃,另一端能自动检测失效
D. 只有established的连接可以收发信息,其他都不能
主动关闭的Socket端会进入TIME_WAIT状态,并且持续2MSL(maximum segment lifetime最大分节生命期)时间长度;
举个例子,说明客户端shutdown关闭socket过程:客户端调用shutdown,客户端向服务器发送了FIN,服务器确认ACK,然后发送完tcp对列中的数据PSH ACK,客户端确认ACK,然后向客户端发送FIN标志,客户端确认ACK。与closesocket关闭连接不同,shutdown关闭了发送数据通道,而没有关闭接收数据通道,因此主动调用端近日半关闭;
对于每个TCP连接,TCP管理4个不同的定时器。
(1)重传定时器用于当希望收到另一端的确认。
(2)坚持定时器使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口。
(3)保活定时器可检测到一个空闲连接的另一端何时崩溃或重启。
(4) 2MSL定时器测量一个连接处于TIME_WAIT状态的时间。
答案A
9. 关于主键Primary Key和索引index,以下说法错误的有()
A. 唯一索引列允许为NULL
B. 一个关系表中的外键必为另一表的主键
C. 一个关系表只能有一个唯一性索引
D. 索引只用于查询操作,对插入操作影响不大
如果某列有多行包含 NULL 值,则不能在该列上创建唯一索引。同样,如果列的组合中有多行包含 NULL 值,则不能在多个列上创建唯一索引。在创建索引时,这些被视为重复的值。而主键的值不可重复,也不可为空(NULL)。
|
主键 |
外键 |
索引 |
定义: |
唯一标识一条记录,不能有重复的,不允许为空 |
表的外键是另一表的主键, 外键可以有重复的, 可以是空值 |
该字段没有重复值,但可以有一个空值 |
作用: |
用来保证数据完整性 |
用来和其他表建立联系用的 |
是提高查询排序的速度 |
个数: |
主键只能有一个 |
一个表可以有多个外键 |
一个表可以有多个惟一索引 |
10. 数据库中事务隔离分为4个级别,其中允许“不可重复读”的有()
A. SERIALIZABLE
B. READ COMMITTED
C. READ UNCOMMITTED
D. REPEATABLE READ
事务的隔离级别,从级别低到高依次为:
READ UNCOMMITTED 幻像读、不可重复读和脏读都允许。111
READ COMMITTED 允许幻像读、不可重复读,但不允许脏读。110
REPEATABLE READ 允许幻像读,但不允许不可重复读和脏读。InnoDB默认级别。100
SERIALIZABLE 幻像读、不可重复读和脏读都不允许。000
关于脏读,不可重复读,幻象读定义可以参阅http://blog.csdn.net/memray/article/details/8051893
答案BC
11. 如果F(n)表示数列的第n项,其中定义如下
F(1)=1, F(2)=2, F(n)=F(n-1)+F(n-2) (n>=3)
请写出一个函数求解F(n),并列出运算复杂度,要求运算复杂度小于O(n^2)。
答:编程实现题,只要不用F(n){F(n)=F(n-1)+F(n-2);}这种暴力递归就行(复杂度O(2^n))就行。
第二部分 专业知识(简答题)
1. 数据预处理在数据挖掘中是一个重要的步骤,请你谈谈你对数据预处理的理解
2. 请说出你对中文分词的理解,并谈谈它的难点和切分算法
3. 请列举并说明几个知名的分类算法
4. 请阐述K-均值聚类算法
5. 如果设计一个商品推荐系统,请谈谈你的思路
6. 请你谈谈你对观点挖掘的理解
一、简答题30分
1、静态数据库和动态数据库的优缺点?10分
2、轮询任务调度和抢占式任务调度?10分
3、n折交叉验证的思想?10分
二、算法与程序题45分
1、对一个正整数,找到比它大的最小的不重复数,其中不重复数就是相临的两个数不同,比如1101 是重复数,1231不是重复数?15分
2、很长的一串字符串,求最长回文子串。15分
3、数组a[0],a[1]…a[n-1]是数轴上从左到右的n个数字点,长为L的绳子最多能覆盖几个点?15分
三、系统设计25分 记不清了!!好像如下:
查询q,将样本分为两类xi和xj两个集合,yi和yj是对应相关函数,yi比yj更相关则记为xi>xj;fi(xi)和fj(xj),定义损失函数为 L=log(1+e^(fj-fi));xi>xj
1,求L关于fj,fi的导数;
2.损失函数的缺陷,重新设计