往年百度校园招聘笔试题
第1篇:往年百度校园招聘笔试题
往年百度校园招聘笔试题
在现实的学习、工作中,我们都可能会接触到试题,借助试题可以更好地考核参考者的知识才能。什么样的试题才能有效帮助到我们呢?以下是小编整理的往年百度校园招聘笔试题,欢迎阅读与收藏。
往年百度校园招聘笔试题1
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+__/=
分析:XABCD-__E/+=
3、四叉树中包含地空指针数量有多少?假设每个节点含有四个指向其孩子的指针,那么给定n个节点,其4n个指针有多少指向空?(比较简单的题目,n个节点使用了的指针有n-1,所以最后的答案位4n-(n-1)=3n+1)
分析:或者举例说明也行。。
4、那个排序算法是非稳定的?选择,冒泡、希尔,堆排序,快速等(也是比较基础的题目)
A、冒泡排序B、归并排序C、快速排序D、堆排序E、希尔排序
分析:凡是O(n^2)的全部是稳定排序,O(nlogn)的全部是非稳定排序。。
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状态才能收发数据,其他状态都不可以。
分析:tcp/ip协议的实际使用过程中的问题:例如单方面断开后,另一端出于哪种状态,还有
9、关于主键Primary Key和索引index的说法哪些是错误的?()
A、唯一索引的列允许为NULL值
B、一个关系表中的外键必定是另一表中的主键
C、一个表中只能有一个唯一性索引
D、索引主要影响查询过程,对数据的插入影响不大
分析:数据库方面的知识:主键和索引的基本定义及其性质,例如主键在表中是否唯一,索引的速度以及对表的改变的影响;无论是唯一索引还是非唯一索引,索引列都允许取NULL值
10、数据库的'事务隔离级别一般分为4个级别,其中可能发生“不可重复读”的事物级别有()
A、SERIALIZABLE
B、READ COMMITTED
C、READ UNCOMMITTED
D、REPEATABLE READ
分析数据库:数据库的不可重复访问异常,四种事务隔离级别中哪些可以避免该类异常?
各隔离级别对各种异常的控制能力
LU丢失更新DR脏读NRR非重复读SLU二类丢失更新PR幻像读
未提交读RU Y Y Y Y Y
提交读RC N N Y Y Y
可重复读RR N N N N Y
串行读S N N N N Y
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)。
思路:使用滚动数组可以保存以前保存的结果,加快速度,减少空间复杂度。
int Fib(int index)
{
if(index<1)
{
return-1;
}
int a1=1,a2=1,a3=1;
For(int i=0;i
{
A3=a1+a2;
A1=a2;
A2=a3;
}
return a3;
}
第二部分(必做):程序设计
1、下面的程序的输出是什么?
#include
int main(void)
{
int n;
Char y[10] = “ntse”;
Char __x = y;
n = strlen(x);
__x = x[n];
x++;
printf(“x=%s”,x);
printf(“y=%s”,y);
return 0;
}
输出:
x=tse
y=
因为n=4,则__x = x[n];的功能是将x指向的第一个字符n修改为,这样y字符串就结束了,所以第二输出为空,x++操作后,x指向第二个字符t,所以第一个输出为:tse。
2、请给出下面程序的输出结果,并说明原因。
#include
#include
Using namespace std;
Template
Class array
{
public:
Array(int size);
size_t getVectorSize()
{
return _data、size();
}
size_t getSize()
{
return _size;
}
public:
vector _data;
size_t _size;
};
Template
Array::array(int size) : _size(size) , _data(_size)
{ }
int main(void)
{
Array __arr = new array(3);
Cout
Cout
return 0;
}
12、写一个程序来确定系统是大端模式还是小端模式;
13、编程实现采用位操作来实现整数的加法操作。
14、图的矩阵表示法,图的深度优先遍历,算法思路及其实现。
15、CAS(compare and swap)操作实现:(具体原理可以参考)
16、fork函数的用法。具体题目为:
#include
#include
#include
int main(void)
{
int i;
For(i=0; i<2; i++){
Fork();
printf(“-”);
Fflush(stdout);
}
return 0;
}
6个-
详见:style=“text-indent: 2em; text-align: left;”>17、spin lock原理:
先来一些代码吧!
void initlock(volatile int__ lock_status)
{
__lock_status = 0;
}
void lock(volatile int__ lock_status)
{
while(test_and_set(lock_status = =1);
}
void unlock(volatile int__ lock_status)
{
__lock_status = 0;
}
问题:volatile的作用?lock函数优化(针对在多cpu上提高cpu cache)?上面的缺陷(内存模式上的)?
volatile的作用:作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。
18、给定一个巨大的文件,如何从中选出k行,随处输出k行到文件中。要求每一行出现的概率都相等。设计算法、说明思路,算法复杂度。
19、win32中WM_Quit的作用是什么?
20、比较mutex和临街区之间的区别,并说明其使用场景。
21、多线程编程,如何安全退出线程。
还有网易数据挖掘方面的题目,这次数据挖掘的题目比较新奇,都是简答题。如下:
1,简述你对数据与处理的认识;
2,简述你对中文分词的理解,说明主要难点和常用算法;
3,常见的分类算法有哪些;
4,简述K-MEANS算法;
5,设计一个智能的商品推荐系统;
6,简述你对观点挖掘的认识
网易游戏笔试的人太少,因此可提供的笔试题目都不全,只是听说特别的难。还有好多是数学方面的智力题。例如:
1、英雄升级,从0级升到1级,概率100%。
从1级升到2级,有1/3的可能成功;1/3的可能停留原级;1/3的可能下降到0级;
从2级升到3级,有1/9的可能成功;4/9的可能停留原级;4/9的可能下降到1级。
每次升级要花费一个宝石,不管成功还是停留还是降级。
求英雄从0级升到3级平均花费的宝石数目。
往年百度校园招聘笔试题2
笔试的题目:
一、简答题
1、简述iso的7层设计
2、如何在多个进行间进行数据共享(至少写出3种)
3、简述TCP与UDP的区别
二、算法题
1、有一个数据A = [a_1,a_2,a_3、、、、、a_n],n的大小不定,请设计算法将A中的所有数据组合进行输出
2、有一个数组,里面的元素相邻之间相差绝对值1,如{4,5,6,5,4,5,6,7,8,7,8,9},先给定已数据A请输出该数据在数组中的位置J?
3、二叉树的面积等于二叉树的长乘以二叉树的宽,二叉树的宽等于最长节点间的距离,二叉树的长等于根节点到子节点的最长长度,请设计算法计算二叉树的面积?
三、算法设计题
百度地图中存在需要标注的很多点,并且这些点都需要带描述,现将描述假设为矩形,并且可以位于点的左边或右边,但点不能移动,如果两个点间的描述发生覆盖,则
需要将其中的一个点进行删除
1、在一个区域内,请设计算法将有效的点进行输出(尽可能多的点)?
2、如果区域足够大,点足够多,算法会出现性能的瓶颈,请设计详细的算法来说明并解决问题?
往年百度校园招聘笔试题3
一、简答题
1、OSI的七层模型。(10分)
OSI的七层模型如下图所示:
2、请列举下不同进程之间共享数据的方式(至少举出三种)。(10分)
1、文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址间一块内存那样来对待
2、共享内存(Shared Memory)实际就是文件映射的一种特殊情况
3、命名管道(Named Pipe)是服务器进程和一个或多个客户进程之间通信的单向或双向管道
4、邮件槽(Mailslots)提供进程间单向通信能力,任何进程都能建立邮件槽成为邮件槽服务器
5、剪贴板(Clipped Board)为不同应用程序之间共享不同格式数据提供了一条捷径
6、动态连接库(DLL)中的全局数据可以被调用DLL的所有进程共享
3、请描述下TCP和UDP的差别,并且各列举出一个上层协议。(10分)
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
经常使用“ping”命令的原理就是向对方主机发送UDP数据包,ftp等就是使用到的TCP协议
二、算法与程序设计
1、给出一个数据A={a_0,a_1,a_2…a_n}(其中n可变),打印出该数值元素的所有组合。(15分)
因为题目要求n可变,所以不可能是n层for循环的方式,可以采用递归的方式来实现,每次取一个元素,在剩下元素的数组中递归,要注意递归结束的条件。
2、有这样一个数组A,大小为n,相邻元素差的绝对值都是1,如A={4,5,6,5,6,7,8,9,10,9},现在给定数组A和目标整数t,请找到t在A中的位置。(15分)
最简单的方式是循环遍历每一个元素之后比较,找到t在A中的位置,此种方法效率最低;
改进:因为相邻元素差的绝对值都是1,那么任意两个元素相距的位置至少是两元素差的绝对值个,假设要找的元素是t,t和a(0)的差为y1=abs(t-a[0]),那么t和a[0]的距离至少是y1,再求一次差值y2=abs(t-a[y1]),t和a[y1+y2]的距离至少是y2,继续向后查找,直到相等为止,此种方法效率较前一种高
3、有一颗二叉树,定义树的高度为从根到叶子节点的最长距离,树的宽度为每层节点的最大值,树的面积定义为高度和宽度的乘积。写一个函数计算一个二叉树的面积。(15分)
广度遍历求树的宽度,深度遍历求树的高度,之后计算面积
第2篇:百度校园招聘web前端广州站笔试题
百度校园招聘web前端广州站笔试题(锦集8篇)由网友“Onceathief”投稿提供,下面是小编帮大家整理后的百度校园招聘web前端广州站笔试题,希望对大家有所帮助。
篇1:百度校园招聘web前端广州站笔试题
,
5. 不知道你们有没有留意,经常会用到那个清楚浏览器缓存的操作,这里说道的缓存是指代哪些数据,且描述这写数据的名字及其常用的作用?
6. 手机浏览器输入:“www.baidu.com”时候会出现一段空白时间,俗称“白屏”,请写处至少五种解决这个问题的解决方案。
7. 我们在进行组建开发的时候,精彩会需要用到大量颜色。有两种方法。方法1:预先定义好大量的颜色;方法2:自定义函数,采用随机生成颜色的方式。请采用方法2实现随机颜色汲取。
附加题:描述你认为影象最深刻的项目,从一下几个方面来描述:
1. 用到了什么新技术?
2. 遇到了什么挑战?
3. 最大的收获是什么?
篇2:百度校园招聘Web前端笔试题
百度校园招聘Web前端笔试题
上午9:00去西电百度的Web前端笔试,不得不说,百度的效率还是蛮高的,晚上大概23:00收到面试通知,
下面就把我记忆中的百度Web前端的'笔试题给大家分享一下:
1、HTML5强调标签的语义化,请写出5个HTML5的语义化标签。(本人写了6个)
2、使用javascript实现,将文档中className有“test”的td标签背景色设为黄色。(本人用JS和JQuery都写了)
3、HTML和CSS实现一个小页面,今年出的事百度MP3的歌曲Top200哪个。(风骚了一下,用HTML5写的)
4、用javascript实现控制一个文本框的输入字数限制,超出字数限制文本框飘红显示。(这个不难)
5、使用Javascript打印出1-10000之间的所有素数。(基础的算法题)
6、当你打开浏览器输入百度网址,在搜索框中输入“HTML5”的,然后返回结果,在这个过程中计算机与网络发生了什么?你有什么建议?
7、历来是个开放题:谈谈你所做的项目
1 你在项目中担任怎样的职位,
2 如果是研发工作,你是怎么处理需求与研发之间关系的?当需求变更呢?
3
4 谈谈你认为怎样做能是项目做的更好?
上边6、7题都是大意,第7题的3 真心忘了,各位抱歉,
更多热门文章推荐参考:
1、百度校招产品经理笔试题汇总
2、百度软件笔试题
3、2015百度春招产品经理笔试题
4、百度软件测试常见笔试题
5、百度校招产品经理笔试题
6、2015校招360产品助理网测笔试题
7、中兴笔试题目
8、奇虎360笔试题汇总
9、华为20上机笔试题
10、美团2015校招研发笔试题
篇3:百度校园招聘前端开发笔试题
百度校园招聘前端开发笔试题
1.列举你所知道的.行内元素,块级元素和空(void)元素,
2.CSS中link和@import的区别。
3(记得是写延迟加载的方法)
4下列程序,写出x,y,z最后的值
var x=1,y=z=0;
function add(n){
return n=n+1;
}
y=add(x);
function add(n){
return n=n+3;
}
z=add(x);
5.(文字太多,记不清了,是关于域名劫持,说明过程,有哪些危害)
6写出至少5个前端优化的方法,并写明理由,
7所谓千分位形式就是从数字个位数每三位加一个逗号,比如‘100,000’,输入一个数字实现千分位。(大概描述,不精确)
篇4:百度校园招聘笔试题
百度校园招聘笔试题
一:简答题(30)
1:数据库以及线程发生死锁的原理及必要条件,如何避免死锁
答:
产生死锁的原因主要是:
(1) 因为系统资源不足,
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。
产生死锁的四个必要条件:
(1)互斥条件:一个资源每次只能被一个进程使用。
(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
避免死锁:
死锁的预防是通过破坏产生条件来阻止死锁的产生,但这种方法破坏了系统的并行性和并发性。
死锁产生的前三个条件是死锁产生的必要条件,也就是说要产生死锁必须具备的条件,而不是存在这3个条件就一定产生死锁,那么只要在逻辑上回避了第四个条件就可以避免死锁。
避免死锁采用的是允许前三个条件存在,但通过合理的资源分配算法来确保永远不会形成环形等待的封闭进程链,从而避免死锁。该方法支持多个进程的并行执行,为了避免死锁,系统动态的确定是否分配一个资源给请求的进程。
预防死锁:具体的做法是破坏产生死锁的四个必要条件之一
2:面向对象的三个基本元素,五个基本原则
答:
三个基本元素:
封装
继承
多态
五个基本原则:
单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。
开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。
Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。
依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。
接口隔离原则(Interface-Segregation Principle):使用多个小的专门的接口,而不要使用一个大的总接口。
3:windows内存管理的机制以及优缺点
答:
分页存储管理基本思想:
用户程序的`地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等,
可将用户程序的任一页放在内存的任一块中,实现了离散分配。
分段存储管理基本思想:
将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。
段页式存储管理基本思想:
分页系统能有效地提高内存的利用率,而分段系统能反映程序的逻辑结构,便于段的共享与保护,将分页与分段两种存储方式结合起来,就形成了段页式存储管理方式。
在段页式存储管理系统中,作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号,然后再将每段分成若干个大小相等的页。对于主存空间也分成大小相等的页,主存的分配以页为单位。
段页式系统中,作业的地址结构包含三部分的内容:段号 页号 页内位移量
程序员按照分段系统的地址结构将地址分为段号与段内位移量,地址变换机构将段内位移量分解为页号和页内位移量。
为实现段页式存储管理,系统应为每个进程设置一个段表,包括每段的段号,该段的页表始址和页表长度。每个段有自己的页表,记录段中的每一页的页号和存放在主存中的物理块号。
二:程序设计题(40)
1:公司里面有1001个员工,现在要在公司里面找到最好的羽毛球选手,也就是第一名,每个人都必须参赛,问至少要比赛多少次才能够找到最好的羽毛球员工。
答:两两比赛,分成500组剩下一人,类似于归并排序的方式,比出冠军后,让冠军之间再比,主要是要想想多余的那一个选手如何处理,必然要在第一次决出冠军后加入比赛组。
2:现在有100个灯泡,每个灯泡都是关着的,第一趟把所有的灯泡灯泡打开,第二趟把偶数位的灯泡制反(也就是开了的关掉,关了的打开),第三趟让第3,6,9....的灯泡制反.......第100趟让第100个灯泡制反,问经过一百趟以后有多少灯泡亮着
答:
1.对于每盏灯,拉动的次数是奇数时,灯就是亮着的,拉动的次数是偶数时,灯就是关着的。
2.每盏灯拉动的次数与它的编号所含约数的个数有关,它的编号有几个约数,这盏灯就被拉动几次。
3.1——100这100个数中有哪几个数,约数的个数是奇数。我们知道一个数的约数都是成对出现的,只有完全平方数约数的个数才是奇数个。
所以这100盏灯中有10盏灯是亮着的。
它们的编号分别是: 1、4、9、16、25、36、49、64、81、100。
3:有20个数组,每个数组有500个元素,并且是有序排列好的,现在在这20*500个数中找出排名前500的数
答:TOP-K问题,用个数为K的最小堆来解决
4. 字符串左移,void *pszStringRotate(char *pszString, intnCharsRotate),比如ABCDEFG,移3位变DEFGABC,要求空间复杂度O(1),时间复杂度O(n)
篇5:百度校园招聘笔试题
百度校园招聘笔试题精选
一、简答题
1. 动态链接库和静态链接库的优缺点
2. 轮询任务调度和可抢占式调度有什么区别?
3. 列出数据库中常用的锁及其应用场景
二、算法设计题
1. 给定N是一个正整数,求比N大的最小“不重复数”,这里的不重复是指没有两个相等的相邻位,如1102中的11是相等的两个相邻位故不是不重复数,而12301是不重复数,
2. 设N是一个大整数,求长度为N的字符串的最长回文子串。
3. 坐标轴上从左到右依次的点为a[0]、a[1]、a[2]……a[n-1],设一根木棒的长度为L,求L最多能覆盖坐标轴的几个点?
三、系统设计题
1. 在现代系统的设计过程中,为了减轻请求的压力,通常采用缓存技术,为了进一步提升缓存的命中率,同常采用分布是缓存方案。调度模块针对不同内容的用户请求分配给不同的缓存服务器向用户提供服务。请给出一个分布式缓存方案,满足如下要求:
1) 单台缓存服务器故障,整个分布式缓存集群,可以继续提供服务。
2)通过一定得分配策略,可以保证充分利用每个缓存服务的存储空间,及负载均衡。当部分服务器故障或系统扩容时,改分配策略可以保证较小的缓存文件重分配开销。
3)当不同缓存服务器的.存储空间存在差异时,分配策略可以满足比例分配。
下面给出我自己的一些解答,不保证100%正确,欢迎批评指正。
一、简答题1. 动态链接库和静态链接库的优缺点
解答:(1)动态链接库(Dynamic Linked Library):Windows为应用程序提供了丰富的函数调用,这些函数调用都包含在动态链接库中。其中有3个最重要的DLL,Kernel32.dll、User32.dll和GDI32.dll。有两种使用方式:一种是静态加载,即在应用程序启动时被加载;一种是动态加载,即是该动态链接库在被使用时才被应用程序加载。优点如下:
a. 共享:多个应用程序可以使用同一个动态库,启动多个应用程序的时候,只需要将动态库加载到内存一次即可;
b. 开发模块好:要求设计者对功能划分的比较好。
缺点是不能解决引用计数等问题。
(2)静态库(Static Library):函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件(.EXE文件)。静态链接库作为代码的一部分,在编译时被链接。优缺点如下:
代码的装载速度快,执行速度也比较快,因为编译时它只会把你需要的那部分链接进去,应用程序相对比较大。但是如果多个应用程序使用的话,会被装载多次,浪费内存。
2. 轮询任务调度和可抢占式调度有什么区别?
解答:(1)轮询调度的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。只有在当前任务主动放弃CPU控制权的情况下(比如任务挂起),才允许其他任务(包括高优先级的任务)控制CPU。其优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。但不利于后面的请求及时得到响应。
(2)抢占式调度允许高优先级的任务打断当前执行的任务,抢占CPU的控制权。这有利于后面的高优先级的任务也能及时得到响应。但实现相对较复杂且可能出现低优先级的任务长期得不到调度。
3. 列出数据库中常用的锁及其应用场景
解答:数据库中的锁是网络数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性,
各种大型数据库所采用的锁的基本理论是一致的,但在具体实现上各有差别。目前,大多数数据库管理系统都或多或少具有自我调节、自我管理的功能,因此很多用户实际上不 清楚锁的理论和所用数据库中锁的具体实现。在数据库中加锁时,除了可以对不同的资源加锁,还可以使用不同程度的加锁方式,即锁有多种模式,SQL Server中锁模式包括:
1)共享锁
SQL Server中,共享锁用于所有的只读数据操作。共享锁是非独占的,允许多个并发事务读取其锁定的资源。默认情况下,数据被读取后,SQL Server立即释放共享锁。例如,执行查询“SELECT * FROM my_table”时,首先锁定第一页,读取之后,释放对第一页的锁定,然后锁定第二页。这样,就允许在读操作过程中,修改未被锁定的第一页。但是,事务 隔离级别连接选项设置和SELECT语句中的锁定设置都可以改变SQL Server的这种默认设置。例如,“ SELECT * FROM my_table HOLDLOCK”就要求在整个查询过程中,保持对表的锁定,直到查询完成才释放锁定。
2)修改锁
修 改锁在修改操作的初始化阶段用来锁定可能要被修改的资源,这样可以避免使用共享锁造成的死锁现象。因为使用共享锁时,修改数据的操作分为两步,首先获得一 个共享锁,读取数据,然后将共享锁升级为独占锁,然后再执行修改操作。这样如果同时有两个或多个事务同时对一个事务申请了共享锁,在修改数据的时候,这些 事务都要将共享锁升级为独占锁。这时,这些事务都不会释放共享锁而是一直等待对方释放,这样就造成了死锁。如果一个数据在修改前直接申请修改锁,在数据修 改的时候再升级为独占锁,就可以避免死锁。修改锁与共享锁是兼容的,也就是说一个资源用共享锁锁定后,允许再用修改锁锁定。
3)独占锁
独占锁是为修改数据而保留的。它所锁定的资源,其他事务不能读取也不能修改。独占锁不能和其他锁兼容。
4)结构锁
结构锁分为结构修改锁(Sch-M)和结构稳定锁(Sch-S)。执行表定义语言操作时,SQL Server采用Sch-M锁,编译查询时,SQL Server采用Sch-S锁。
5)意向锁
意 向锁说明SQL Server有在资源的低层获得共享锁或独占锁的意向。例如,表级的共享意向锁说明事务意图将独占锁释放到表中的页或者行。意向锁又可以分为共享意向锁、 独占意向锁和共享式独占意向锁。共享意向锁说明事务意图在共享意向锁所锁定的低层资源上放置共享锁来读取数据。独占意向锁说明事务意图在共享意向锁所锁定 的低层资源上放置独占锁来修改数据。共享式独占锁说明事务允许其他事务使用共享锁来读取顶层资源,并意图在该资源低层上放置独占锁。
6)批量修改锁
批量复制数据时使用批量修改锁。可以通过表的TabLock提示或者使用系统存储过程sp_tableoption的“table lock on bulk load”选项设定批量修改锁。
二、算法设计题1. 给定N是一个正整数,求比N大的最小“不重复数”,这里的不重复是指没有两个相等的相邻位,如1102中的11是相等的两个相邻位故不是不重复数,而12301是不重复数。
算法思想:当然最直接的方法是采用暴力法,从N+1开始逐步加1判断是否是不重复数,是就退出循环输出,这种方法一般是不可取的,例如N=11000000,你要一个个的加1要加到1101,一共循环百万次,每次都要重复判断是否是不重复数,效率极其低下,因此是不可取的。这里我采用的方法是:从N+1的最高位往右开始判断与其次高位是否相等,如果发现相等的(即为重复数)则将次高位加1,注意这里可能进位,如8921D>9021,后面的直接置为010101...形式,如1121D>1201,此时便完成“不重复数”的初步构造,但此时的“不重复数”不一定是真正的不重复的数,因为可能进位后的次高位变为0或进位后变成00,如9921D>10001,此时需要再次循环判断重新构造直至满足条件即可,这种方法循环的次数非常少,我认为不超过3次就能满足条件。
篇6:百度招聘笔试题
百度校园招聘笔试题目分享:
1、找到满足条件的数组
给定函数d(n)=n+n的各位之和,n为正整数,如d(78)=78+7+8=93,这样这个函数可以看成一个生成器,如93可以看成由78生成。
定义数A:数A找不到一个数B可以由d(B)=A,即A不能由其他数生成。现在要写程序,找出1至10000里的所有符合数A定义的数。
回答:
申请一个长度为10000的bool数组,每个元素代表对应的值是否可以有其它数生成。开始时将数组中的值都初始化为false。
由于大于10000的数的生成数必定大于10000,所以我们只需遍历1到10000中的数,计算生成数,并将bool数组中对应的值设置为true,表示这个数可以有其它数生成。
最后bool数组中值为false的位置对应的整数就是不能由其它数生成的。
2、实现一个函数,对一个正整数n,算得到1需要的最少操作次数。操作规则为:如果n为偶数,将其除以2;如果n为奇数,可以加1或减1;一直处理下去。
例子:
func(7) = 4,可以证明最少需要4次运算
n = 7
n-1 6
n/2 3
n-1 2
n/2 1
要求:实现函数(实现尽可能高效) int func(unsign int n);n为输入,返回最小的运算次数。给出思路(文字描述),完成代码,并分析你算法的时间复杂度。
答:
假设n表示成二进制有x bit,可以看出计算复杂度为O(2^x),也就是O(n)。
将n转换到二进制空间来看(比如7为111,6为110):
- 如果最后一位是0,则对应于偶数,直接进行除2操作。
- 如果最后一位是1,情况则有些复杂。
**如果最后几位是???01,则有可能为???001,???1111101。在第一种情况下,显然应该-1;在第二种情况下-1和+1最终需要的步数相同。所以在???01的情况下,应该选择-1操作。
**如果最后几位是???011,则有可能为???0011,???11111011。在第一种情况下,+1和-1最终需要的步数相同;在第二种情况下+1步数更少些。所以在???011的情况下,应该选择+1操作。
**如果最后有更多的连续1,也应该选择+1操作。
如果最后剩下的各位都是1,则有11时应该选择-1;111时+1和-1相同;1111时应选择+1;大于四个1时也应该选择+1;
由以上的分析可知,奇数的时候加1或减1,完全取决于二进制的后两位,如果后两位是10、00那么肯定是偶数,选择除以2,如果后两位是01、11,那么选择结果会不一样的,如果是*****01,那么选择减1,如果是*****11,那么选择加1,特殊情况是就是n是3的时候,选择减1操作,
3、一个大的含有50M个URL的记录,一个小的含有500个URL的记录,找出两个记录里相同的URL。
回答:
首先使用包含500个url的文件创建一个hash_set。
然后遍历50M的url记录,如果url在hash_set中,则输出此url并从hash_set中删除这个url。
所有输出的url就是两个记录里相同的url。
4、海量日志数据,提取出某日访问百度次数最多的那个IP。
回答:
如果日志文件足够的大,大到不能完全加载到内存中的话。
那么可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到1024个小文件中。每个小文件最多包含4M个IP地址。
对于每个小文件,可以构建一个IP作为key,出现次数作为value的hash_map,并记录当前出现次数最多的1个IP地址。
有了1024个小文件中的出现次数最多的IP,我们就可以轻松得到总体上出现次数最多的IP。
5、蚂蚁爬杆问题
有一根27厘米长的细木杆,在第3厘米,7厘米,11厘米,17厘米,23厘米这五个位置上各有一只蚂蚁,木杆很细,不能同时通过两只蚂蚁,开始时,蚂蚁的头朝向左还是右是任意的,他们只会朝前走或掉头,但不会后退,当两只蚂蚁相遇后,蚂蚁会同时掉头朝反方向走,假设蚂蚁们每秒钟可以走1厘米的距离。求所有蚂蚁都离开木杆的最小时间和最大时间。
答案:
两只蚂蚁相遇后,各自掉头朝相反方向走。如果我们不考虑每个蚂蚁的具体身份,这和两只蚂蚁相遇后,打个招呼继续向前走没有什么区别。
所有蚂蚁都离开木杆的最小时间为
max(min(3,27-3),min(7,27-7), min(11,27-11), min(17,27-17),min(23,27-23))=11
所有蚂蚁都离开木杆的最大时间为
max(max(3,27-3),max(7,27-7), max(11,27-11), max(17,27-17),max(23,27-23))=24
6、有10个文件,每个文件1G,每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。如何按照query的频度排序?
回答:
1)读取10个文件,按照hash(query)%10的结果将query写到对应的文件中。这样我们就有了10个大小约为1G的文件。任意一个query只会出现在某个文件中。
2)对于1)中获得的10个文件,分别进行如下操作
-利用hash_map(query,query_count)来统计每个query出现的次数。
-利用堆排序算法对query按照出现次数进行排序。
-将排序好的query输出的文件中。
这样我们就获得了10个文件,每个文件中都是按频率排序好的query。
3)对2)中获得的10个文件进行归并排序,并将最终结果输出到文件中。
篇7:Web前端开发笔试题
1、什么是web标准?
WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些标准大部分由W3C起草和发布,也有一些是其他标准组织制订的标准,比如ECMA(European Computer Manufacturers Association)的ECMAScript标准。
2、XHTML与HTML有什么区别?你觉得应该使用哪一个,并说出理由。
XHTML1.0和HTML4.01之间的主要差异是它遵守XML编码约定。
标签不能重叠,可以嵌套
标签与属性都要小写
标签都要有始有终,要么以
形式结束,要么以
形式结束
每个属性都要有属性值,并且属性值要在双引号中
别用name用id
3、请解释一下DOCTYPE的作用,有DOCTYPE和没有DOCTYPE有什么区别?
DOCTYPE声明是指HTML文档开头处的一行或两行代码,它描述使用哪个DTD。DTD(文档类型定义)是一组机器可读的规则,它们定义XML或HTML的特定版本中允许有什么,不允许有什么。在解析网页时,浏览器将使用这些规则检查页面的有效性并且采取相应的措施。浏览器通过分析页面的DOCTYPE声明来了解要使用哪个DTD,由此知道要使用HTML的哪个版本。
DOCTYPE当前有两种风格,严格(strict)和过渡(transitional)。过渡的目的是帮助开发人员从老版本迁移到新版本,仍然允许使用已经废弃的元素。严格版本禁止使用废弃的元素,从而把内容和表现分隔开。
篇8:Web前端开发笔试题
1、严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。
当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性。为了实现这一点,他们创建了两种呈现模式:标准模式和混杂模式。在标准模式中,浏览器根据规范呈现页面;在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。混杂模式通常模拟老式浏览器的行为以防止老站点无法工作。
浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。如果XHTML文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。对于HTML4.01文档,包含严格DTD的DOCTYPE常常导致页面以标准模式呈现。包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URI会导致页面以混杂模式呈现。DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。
根据DOCTYPE是否存在选择呈现模式,被称为DOCTYPE切换或DOCTYPE侦测。
DOCTYPE切换是浏览器用来区分遗留文档和符合标准的文档的手段。无论是否编写了有效的CSS,如果选择了错误的DOCTYPE,那么页面就将以混杂模式呈现,其行为就可能会有错误或不可预测。因此一定要在每个页面上包含形式完整的DOCTYPE声明,并且在使用HTML时选择严格的DTD。
2、各种CSS样式的简写。如padding,border,font等。
第3篇:中国联通校园招聘考试笔试题八
查看更多河南银行招聘考试信息
2018中国联通校园招聘考试笔试题(8)
1.增加塔放后,虽然NodeB上行接收灵敏度可以提高,但是这样对于外界干扰更敏感,使得增加塔放后噪声系数的改善量没有理论分析的那么大。(√)2.国标要求:信号电缆应由地下进出移动通信基站,电缆内芯线在进站处应加装相应的信号避雷器,避雷器和电缆内的空线对均应作保护接地,站内严禁布放架空缆线。(×)3.在链路预算工具中,下行业务信道的最大发射功率应根据业务种类的不同,设置时要保证上下行链路平衡,对于高速数据业务,同样需要保证链路平衡。(×)4.我们常用的标准宏蜂窝模型和Cost 231模型一样都是纯经验模型。(×)5.Tcell用来定义一个小区的SCH、CPICH和下行扰码的发射起始时间与BFN的相对时延,它的主要目的是防止不同NodeB下的小区发射的从同步信道产生交叠,从而影响UE在小区搜索中影响帧同步和码组识别。
6.RAKE接收机是通过多个相关检测器接收多径信号中的各路信号,并把它们合并在一起,来改善接收信号的信噪比。其理
第4篇:中国银行招聘笔试题
中国银行招聘计算机相关专业笔试题目(值得参考)
来源:余鑫的日志
一、判断题
1.如果A∈B及B¢C,则A不属于C。×
2.二叉数以后序遍历序列与前序遍历序列反映同样的信息。√
3.外部排序中使用置换选择排序的目的,是为了增强初始归并段的长度。
4.虚拟存储器常用的地址映象方式是段相联。
5.码元的传输速率受奈式准则的限制,体现通信系统中传输系统两端的信号传输速率。
6.ODBC中的“句柄”概念是指应用程序变量。×
7.没有路由器,第三层VLAN不能互通。×
8.JDBC—ODBC桥利用ODBC驱动程序提供ODBC访问。只要本地机装有ODBC驱动,采用JDBC— ODBC桥驱动就可以访问所有的数据库。
9.控制报文协议ICMP用来保证IP数据报的传送不丢失。
10.在LINUX系统中,在/etc/gateways文件中指定了网络的路由信息。(对)√
二、单项选择
1.下列语句中,不是命题的是:(B)
A.离散数学是计算机科学与技术专业的一门必修课
B.不存在最大质数
C.14>=8+7
D.P=9
2.设G是由5个顶点组成的完
第5篇:工商银行招聘笔试题
2009年工商银行笔试真题(回忆版)部分工行笔试题目: 80道单选,涉及时事,经济,天文,地理,历史,管理,会计,金融等等,0.5分一道。记忆比较深的:
1、“老死不相往来”是谁的主张。我选的老子。
2、对西方文官制度影响深重的中国历史上人才选拔制度。我选的科举。
3、关于黑洞正确的是„„题具体忘了,但印象中我选的似乎是黑洞的引力对周围行星分布的影响。
4、法律规定,如果加班,加班工资是正常工资滴多少倍。
5、股票发行时会有溢价,发行价由谁决定。
6、资产负债表反映滴是公司的财务状况,财务状况是指„„
7、被踢出太阳系行星行列的是哪颗,太阳系现有几颗行星? 我是应届生
8、由那个方向沿着穿过子午变更线会少一天。
9、收购中,指并购完成后,并购者无法使整个企业产生经营、财务、市场份额等协同效应,这是虾米风险,营运,选错了T_T10、我国获得第一枚奥运金牌滴人。
11、谁谁谁在哪的讲话,指出今年反腐倡廉的重点是„„
12、一道数列题,非常简单,基本上一次差分后是个以4为公差的等差数列。
差不多全是这类的题吧。接下来,
第6篇:公司招聘笔试题
基础数学题
(1)有三个不同的信箱,今有4封不同的信欲投其中,共有多少种不同的投法?
(2)连续4次抛掷一枚硬币,求恰出现两次是正面的概率和最后两次出现是正面的概率。
(3)一个口袋内装有除颜色外其他都相同的6个白球和4个红球,从中任意摸出2个,求:A、2个都是白球的概率;B、2个都是红球的概率;C、一个白球,一个红球的概率。
(4)有30支篮球队,先分3组(每组10队)按单循环制进行比赛,然后将每组前三名集中,再按单循环制进行比赛,规定在小组赛已相遇的两队不再重赛,求先后比赛共有多少场?
(5)你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到红球的准确几率是多少?
(6)M、N是两个平等平面,在M内取4个点,在N内取5个点,这9个点中,无其它四点共面,且其中任意三点不共线。求:A、这些点最多能决定几条直线?几个平面?B、以这些点为顶点,能作多少个三棱锥?四棱锥?
(7)某轮船公司每天中午有一艘轮船从哈佛开往纽约
