笔试题集锦
第一部分(必做):计算机基础类
(所有的选择题都是多项选择)
1、假设进栈次序是e1, e2, e3, e4,那可能的出栈次序是()
A、e2, e4, e3, e1
B、e2, e3, e4, e1
C、e3, e2, e4, e1
D、e1, e2, e4, e3
2、表达式X=A+B*(C-D)/E的后缀表示形式可以是()
A、XAB+CDE/-*=
B、XA+BC-DE/*=
C、XABCD-*E/+=
D、XABCDE+*/=
3、以下排序算法是非稳定排序的是()
A、冒泡排序 B、归并排序 C、快速排序 D、堆排序 E、希尔排序
4、一个包含n个结点的四叉树,每一个节点都有4个指向孩子节点的指针,这4n个指针有(3*n+1)个空指针.
4*n-(n-1) = 3*n+1
5、请问func(0x7f530829)的返回值是()
- int func(unsigned int i)
- {
- unsigned int temp = i;
- temp = (temp & 0x55555555) + ((temp & 0xaaaaaaaa)>>1);
- temp = (temp & 0x33333333) + ((temp & 0xcccccccc)>>2);
- temp = (temp & 0x0f0f0f0f) + ((temp & 0xf0f0f0f0)>>4);
- temp = (temp & 0xff00ff) + ((temp & 0xff00ff00)>>8);
- temp = (temp & 0xffff) + ((temp & 0xffff0000)>>16);
- return temp;
- }
A、15 B、16 C、17 D、18
函数实现的是求二进制表示的时候,1的个数,一共15个
最开始把每一个位看做一个节点,相邻节点值相加,结果用两个位表示。。。
然后每两个位看做一个节点,相邻节点值相加,结果用四个位表示。。。
以此类推,直到只剩下一个节点。。。
6、进程和线程的差别有()
A、操作系统只调度进程,不调度线程
B、线程共享内存地址空间,进程不共享
C、线程可以共享内存数据,但进程不可以
D、进程间可以通过IPC通信,但线程不可以
7、关于段页式管理中,地址映像表是()
A、每个进程一张段表,一张页表
B、进程的每个段一张段表,一张页表
C、每个进程一张段表,每个段一张页表
D、每个进程一张页表,每个段一张段表
8、关于TCP协议,下面哪种说法是错误的()
A、TCP关闭连接过程中,两端的socket都会经过TIME_WAIT状态
B、对一个Established状态的TCP连接,调用shutdown函数可以让主动调用的一方进入半关闭状态
C、TCP协议默认保证了当TCP的一端发生意外崩溃(当机、网线断开或路由器故障),另一端能自动检测到连接失效
D、在成功建立连接的TCP上,只有在Established状态才能收发数据,其他状态都不可以。
9、关于主键Primary Key和索引index的说法哪些是错误的?()
A、唯一索引的列允许为NULL值
B、一个关系表中的外键必定是另一表中的主键
C、一个表中只能有一个唯一性索引
D、索引主要影响查询过程,对数据的插入影响不大
10、数据库的事务隔离级别一般分为4个级别,其中可能发生“不可重复读”的事物级别有()
A、SERIALIZABLE
B、READ COMMITTED
C、READ UNCOMMITTED
D、REPEATABLE READ
11、如果F(n)为该数列的第n项,那么这句话可以写成如下形式:
F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2) (n>=3)
请实现该函数F(n)的求解,并给出算法复杂度,要求算法复杂度小于O(n^2)。
思路:使用滚动数组可以保存以前保存的结果,加快速度,减少空间复杂度。
第二 部分(必做):程序设计
1、下面的程序的输出是什么?
1 #include<stdio.h> 2 3 int main(void) 4 { 5 int n; 6 char y[10] = "ntse"; 7 char *x = y; 8 n = strlen(x); 9 *x = x[n]; 10 x++; 11 printf("x=%s\n",x); 12 printf("y=%s\n",y); 13 return 0; 14 }
输出:
x=tse
y=
因为n=4,则*x = x[n]; 的功能是将x指向的第一个字符n修改为\0,这样y字符串就结束了,所以第二输出为空,x++操作后,x指向第二个字符t,所以第一个输出为:tse。
2、请给出下面程序的输出结果,并说明原因。
1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 5 template<class t> 6 class array 7 { 8 public: 9 array(int size); 10 size_t getVectorSize() 11 { 12 return _data.size(); 13 } 14 size_t getSize() 15 { 16 return _size; 17 } 18 public: 19 vector<t> _data; 20 size_t _size; 21 }; 22 23 template<class t> 24 array<t>::array(int size) : _size(size) , _data(_size) 25 { } 26 27 28 29 int main(void) 30 { 31 array<int> *arr = new array<int>(3); 32 cout<<arr->getVectorSize()<<endl; 33 cout<<arr->getSize()<<endl; 34 35 return 0; 36 }
原因:
数据挖掘岗位 第三部分 专业知识(简答题)
1、数据预处理在数据挖掘中是一个重要的步骤,请你谈谈你对数据预处理的理解
2、请说出你对中文分词的理解,并谈谈它的难点和切分算法
3、请列举并说明几个知名的分类算法
4、请阐述K-均值聚类算法
5、如果设计一个商品推荐系统,请谈谈你的思路
6、请你谈谈你对观点挖掘的理解
转自:http://blog.csdn.net/hackbuteer1/article/details/8060917
微信公众号:
猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。