欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

百度面试题及答案

时间:2023-05-31 08:28:04 其他范文 收藏本文 下载本文

以下是小编给大家收集的百度面试题及答案,本文共11篇,欢迎大家前来参阅。

百度面试题及答案

篇1:百度面试题及答案

* 有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。

* 木杆很细,不能同时通过一只蚂蚁。开始 时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,

* 但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。

* 编写程序,求所有蚂蚁都离开木杆 的最小时间和最大时间。

*

*

* 分析:题目中的蚂蚁只可能相遇在整数点,不可以相遇在其它点,比如3.5cm处之类的,也就是可以让每只蚂蚁走 1秒,然后

* 查看是否有相遇的即可.

*

* 这样我的程序实现思路就是,初始化5只蚂蚁,让每只蚂蚁走1秒,然后看是否有相遇的,如果有则做相应处理.当每只蚂蚁都

* 走出木杆时,我就记录当前时间.这样就可以得到当前状态情况下,需要多久可以走出木杆,然后遍历所有状态则可以得到所胡

* 可能.

*/

package baidu;

public class Ant {

/*

* step 表示蚂蚁每一个单位时间所走的长度

*/

private final static int step = 1;

/*

* position表示蚂蚁所处的初始位置

*/

private int position;

/*

* direction表示蚂蚁的前进方向,如果为1表示向27厘米的方向走, 如果为-1,则表示往0的方向走。

*/

private int direction = 1;

/*

* 此函数运行一次,表示蚂蚁前进一个单位时间,如果已经走下木杆则会抛出异常

*/

public void walk {

if (isOut()) {

throw new RuntimeException(“the ant is out”);

}

position = position + this.direction * step;

};

/**

* 检查蚂蚁是否已经走出木杆,如果走出返回true

*

*/

public boolean isOut() {

return position <= 0 || position >= 27;

}

/**

* 检查此蚂蚁是否已经遇到另外一只蚂蚁

* @param ant

* @return 如果遇到返回true

*/

public boolean isEncounter(Ant ant) {

return ant.position == this.position;

}

/**

* 改变蚂蚁的前进方向

*/

public void changeDistation() {

direction = -1 * direction;

}

/**

* 构造函数,设置蚂蚁的初始前进方向,和初始位置

* @param position

* @param direction

*/

public Ant(int position, int direction) {

this.position = position;

if (direction != 1) {

this.direction = -1;//方向设置初始位置,比如为0时,也将其设置为1.这样可以方便后面的处理

} else {

this.direction = 1;

}

}

}

/////////////////////////////////////////////////////////

package baidu;

public class Controller {

public static void main(String[] args) {

int time = 0;

for (int i = 0; i < 32; i++) {

Ant[] antArray = getAntList(getPoistions(), getDirections(i));

while (!isAllOut(antArray)) {

for (Ant ant : antArray) {

if (!ant.isOut()) {

ant.walk();

}

}

time++;

// 查看是否有已经相遇的Ant,如果有则更改其前进方向

dealEncounter(antArray);

}

System.out.println(time);

// 将时间归0,这样可以重新设置条件,再次得到全部走完所需要的时间.

time = 0;

}

}

/**

* 这个函数的算法很乱,但暂时能解决问题

*

* @param list

*/

public static void dealEncounter(Ant[] antArray) {

int num_ant = antArray.length;

for (int j = 0; j < num_ant; j++) {

for (int k = j + 1; k < num_ant; k++) {

if (antArray[j].isEncounter(antArray[k])) {

antArray[j].changeDistation();

antArray[k].changeDistation();

}

}

}

}

/**

* 因为有5只Ant,所以组合之后有32种组合.刚好用5位二进制来表示,如果为0则表示Ant往0的方向走 如果为1,则表示往27的方向走

*

* 注:在通过Ant的构造函数设置初始值时,通过过滤把0修改成了-1.

*/

public static int[] getDirections(int seed) {

int result[] = new int[5];

result[0] = seed % 2;

result[1] = seed / 2 % 2;

result[2] = seed / 4 % 2;

result[3] = seed / 8 % 2;

result[4] = seed / 16 % 2;

System.out.println(“directions is ” + result[0] + “|” + result[1] + “|”

+ result[2] + “|” + result[3] + “|” + result[4]);

return result;

}

/**

* 批量设置Ant的初始位置,这样设置不是十分必要,可以直接在代码中设置

*

* @return

*/

public static int[] getPoistions() {

return new int[] { 3, 7, 11, 17, 23 };

}

/**

* 取得设置好初始值的5只Ant

*

* @param positions

* @param directions

* @return

*/

public static Ant[] getAntList(int[] positions, int[] directions) {

Ant ant3 = new Ant(positions[0], directions[0]);

Ant ant7 = new Ant(positions[1], directions[1]);

Ant ant11 = new Ant(positions[2], directions[2]);

Ant ant17 = new Ant(positions[3], directions[3]);

Ant ant23 = new Ant(positions[4], directions[4]);

return new Ant[] { ant3, ant7, ant11, ant17, ant23 };

}

/**

* 判断是否所有的Ant都已经走出了木杆,也就是设置退出条件

*

* @param antArray

* @return

*/

public static boolean isAllOut(Ant[] antArray) {

for (Ant ant : antArray) {

if (ant.isOut() == false) {

return false;

}

}

return true;

}

}

编程:

用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。

2 编程:

用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove

函数的功能是拷贝src所指的内存内容前n个字节

到dest所指的地址上。

3 英文拼写纠错:

在用户输入英文单词时,经常发生错误,我们需要对其进行纠错。假设已经有一个包

含了正确英文单词的词典,请你设计一个拼写纠错

的程序。

(1)请描述你解决这个问题的思路;

(2)请给出主要的处理流程,算法,以及算法的复杂度;

(3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。

4 寻找热门查询:

搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串

的长度为1-255字节。假设目前有一千万个记录,

这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个

。一个查询串的重复度越高,说明查询它的用户越多,

也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。

(1)请描述你解决这个问题的思路;

(2)请给出主要的处理流程,算法,以及算法的复杂度。

5 集合合并:

给定一个字符串的集合,格式如:

{aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}

要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应

输出

{aaa bbb ccc ddd hhh},{eee fff}, {ggg}

(1)请描述你解决这个问题的思路;

(2)请给出主要的处理流程,算法,以及算法的复杂度

(3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。

////////////////////////////////1

1 题

char *revert(char * str)

{

int n=strlen(str);

int i=0;

char c;

for(i=0;i

{

c=str;

str=str[n-i];

str[n-i]=c;

}

return str;

}

///////////////////////////////////

2 题

void * memmove(void *dest,const void *src,size_t n)

{

assert((dest!=0)&&(src!=0));

char * temp=(char * )dest;

char * ss=(char * )src;

int i=0;

for(;i< p=“”>

{

*temp++=*ss++;

}

return temp;

}

/////////////////////////////////////////////////

3 题

(1)思路 :

字典以字母键树组织,在用户输入同时匹配

(2)

流程:

每输入一个字母:

沿字典树向下一层,

a)若可以顺利下行,则继续至结束,给出结果;

b)若该处不能匹配,纠错处理,给出拼写建议,继续至a);

算法:

1.在字典中查找单词

字典采用27叉树组织,每个节点对应一个字母,查找就是一个字母

一个字母匹配.算法时间就是单词的长度k.

2.纠错算法

情况:当输入的最后一个字母不能匹配时就提示出错,简化出错处理,动态提示

可能 处理方法:

(a)当前字母前缺少了一个字母:搜索树上两层到当前的匹配作为建议;

(b)当前字母拼写错误:当前字母的键盘相邻作为提示;(只是简单的

篇2:百度算法面试题

算法1:   1.在字典中查找单词   字典采用27叉树组织,每个节点对应一个字母,查找就是一个字母   一个字母匹配.算法时间就是单词的长度k.   2.纠错算法   情况:当输入的最后一个字母不能匹配时就提示出错,简化出错处理,动态提示可能 处理方法:   (a)当前字母前缺少了一个字母:搜索树上两层到当前的匹配作为建议;   (b)当前字母拼写错误:当前字母的键盘相邻作为提示;(只是简单的描述,可 以有更多的)根据分析字典特征和用户单词已输入部分选择(a),(b)处理复杂性分析:影响算法的效率主要是字典的实现与纠错处理   (a)字典的实现已有成熟的算法,改进不大,也不会成为瓶颈;   (b)纠错策略要简单有效 ,如前述情况,是线性复杂度;   (3)改进策略选择最是重要,可以采用统计学习的方法改进。   问题4 寻找热门查询:搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。(1)请描述你解决这个问题的思路;(2)请给出主要的处理流程,算法,以及算法的复杂度。   答案:   (1)思路:用哈希做   (2)首先逐次读入查询串,算哈希值,保存在内存数组中,同时统计频度(注意值与日志项对应关系)选出前十的频度,取出对应的日志串,简单不过了。哈希的设计是关键。   问题5 集合合并:给定一个字符串的集合,格式如:{aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出{aaa bbb ccc ddd hhh},{eee fff}, {ggg}(1)请描述你解决这个问题的思路;(2)请给出主要的处理流程,算法,以及算法的复杂度(3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。   答案:   (1)思路:先将集合按照大小排列后,优先考虑小的集合是否与大的集合有交集。有就合并,如果小集合与所有其他集合都没有交集则独立。独立的集合在下一轮的比较中不用考虑。这样就可以尽量减少字符串的比较次数。当所有集合都独立的时候,就终止。   (2)处理流程:1.将集合按照大小排序,组成集合合并待处理列表2.选择最小的集合,找出与之有交集的集合,如果有,合并之;如果无,则与其它集合是独立集合,从待处理列表 中删除。3.重复直到待处理列表为空   算法2:   1、将集合按照大小从小到大排序,组成待处理的集合列表。   2、取出待处理集合列表中最小的集合,对于集合的每个元素,依次在其他集合中搜索是否有此元素存在:   1>若存在,则将此小集合与大集合合并,并根据大小插入对应的位置 。转3。   2>若不存在,则在该集合中取下一个元素。如果无下一个元素,即所有元素都不存在于其他集合。则表明此集合独立,从待处理集合列表中删除。并加入结果集合列表。转3。   3、如果待处理集合列表不为空,转2。如果待处理集合列表为空,成功退出,则结果集合列表就是最终的输出。算法复杂度分析:假设集合的个数为n,最大的集合元素为m排序的时间复杂度可以达到n*log(n)然后对于元素在其他集合中查找,最坏情况下为(n-1)*m查找一个集合是否与其他集合有交集的最坏情况是m*m*(n-1)合并的时间复杂度不会超过查找集合有交集的最坏情况。所以最终最坏时间复杂度为O(m*m*n*n)需要说明的是:此算法的平均时间复杂度会很低,因为无论是查找还是合并,都是处于最坏情况的概率很小,而且排序后优先用最小集合作为判断是否独立的对象,优先与最大的集合进行比较,这些都最大的回避了最坏情况。3)可能的改进:首先可以实现将每个集合里面的字符串按照字典序进行排列,这样就可以将查找以及合并的效率增高。另外,可能采取恰当的数据结构也可以将查找以及合并等操作的效率得到提高。

更多互联网相关面试题分享:1、腾讯超难面试试题 2、百度Web开发工程师笔试题

3、腾讯公司程序员面试题及答案详解 4、腾讯往届面试试题【汇总】 5、百度技术研发类笔试题 6、阿里前端大神寒冬谈谈面试与面试题 7、百度android开发类面试题目 8、最新阿里面试题汇总 9、百度校园招聘数据挖掘工程师面试题集锦

篇3:百度面试Android面试题

1.java 基础题,输入结果是什么?

public static void main(String[] args) {

String str = new String(“abc”);

char[] ch = {‘a’,'b’,'c’};

change(str,ch);

System.out.print(str+” “);

System.out.print(ch);

}

public static void change(String str,char[] ch){

str = “gbc”;

ch[0] = ‘g’;

}

2.HashMap,Hashset,ArrayList以及LinkedList集合的区别,以及各自的用法

3.Activity的启动模式有哪几种

4.介绍Handler机制

5.线程考核,解析sleep,wait,join,yield方法,以及notify 和notifyAll是如何控制线程同步的

6.android 存储方式以及各至用法

7.ListView 中BaseAdapter的使用和优化;在ListView中的item放置一个按钮,如何使用按钮对不能的item响应不同的事件

8.编程题:

题意:生成一个1-100的随机数组,但数组中的数字不能重复,即位置是随机的,但数组元素不能重复

笔试题目就只能记住这么多了.

由于笔试时间是在晚上,麦洛答好题目才交卷,时间大概用一个半小时(感觉其他人答得非常快,有的没有半个小时就交卷了).

总体上,麦洛感觉笔试题目还是比较简单的,只要平时稍微注意学习,这些题目都不是很难.

百度评卷的效率也是很高的,麦洛刚从茂业大厦(百度深圳研发中心)出来不多久,就电话通知进入面试了.第二天面试时,被麦洛瞄到了答卷的分数,93分!

面试的第一轮是第二天9:00开始,在酒店里.因为深圳这边的研发中心刚刚建立起来,面试官都是从北京飞过来的.第一轮面试的面试官,应该也是 Android工程师,这一轮问的题目基本都还行.就是其中一个题目是说,监听数据库变化的一个接口,这个接口麦洛用的比较少,所以没有答上来,就是 ContentObserver这个接口.

这一轮的题目:

1.以前做过项目的,画个简单的架构图,介绍之前的项目;

2.项目中遇到的问题,以及怎么解决的.麦洛就举了之前写的上拉下拉这个控件的例子

3.Android Activity生命周期

4.Adapter中View重用的问题

就回忆起这么多了

第一轮讨论的话题是项目比较多,都是介绍项目经验之类的.

这一关讨论了一个多小时,顺利通过.

第二轮还是面试,是另外一个工程师来面试,就是面试官交换面试.

这一轮难度其实也不是特别大,但是因为问到几个麦洛没有做过的东西,被卡住了一下.

能回忆起的题目有:

1.介绍Http协议

2.Http协议实现多线程下载并支持断点续传,以及服务端是怎么支持的?

3.面向对象的理解,面向对象的原则C开发封闭原则的理解

4.android wap与net的两种连接方式

5.项目中的一些问题

这一轮主要是一些java基础知识,以及项目中的一些问题

两轮下来一个上午就过去了.麦洛也感觉精疲力尽了.然后就是吃午饭,等待第三轮面试了.

第三轮是比较轻松了.这一轮的面试应该是部门老大级别的了.随便聊聊,说说为何离职,以及有什么问题需要问的,大概半个小时就搞定了.

然后就回去等通知,要1周到两周时间.OMG!麦洛可不想等那么久啊

从笔试到面试总体感觉其实不是特别的难,只要做好准备平时注意积累,很多问题都是很好回答的.

篇4:百度java开发面试题

第一题

简评

百度的主要业务是搜索,搜索的基本原理如下

1.编写爬虫程序到互联网上抓取网页海量的网页。

2.将抓取来的网页通过抽取,以一定的格式保存在能快速检索的文件系统中。

3.把用户输入的字符串进行拆分成关键字去文件系统中查询并返回结果。

由以上3点可见,字符串的分析,抽取在搜索引擎中的地位是何等重要。

因此,百度的笔试面试题中,出现这样的题就变得理所当然了。

以下是该题的java实现,代码如下:

程序代码 程序代码

import java.net.*;

import java.io.*;

import java.util.*;

/** * @author tzy * 在j2sdk1.4.2下测试通过 */

public class FileNameStat{

private String srcPath;//要统计的文件路径

private Map statMap;//用于统计的map

public FileNameStat(String srcPath)

{

this.srcPath=srcPath; 软件开发网 www.mscto.com

statMap=new TreeMap;

}

/*获得要统计的URL的文件名*/

public String getFileName(String urlString)

{

URL url=null;

String filePath=null;

String fileName=null;

try

{

url=new URL(urlString);

filePath=url.getPath();

int index=0;

if ((index=filePath.lastIndexOf(“/”))!=-1)

{

fileName=filePath.substring(index+1);

}

else

{

fileName=”“;

}

}

catch(MalformedURLException e)

{

}

return fileName;

}

/*统计指定文件名的个数*/

public void stat(String filename)

{

Integer count=null;

if(statMap.get(filename)!=null)

{

count=(Integer)statMap.get(filename);

count=new Integer(count.intValue()+1);

}

else

{

count=new Integer(1);

}

statMap.put(filename,count);

}

/*统计的主方法*/

public void start() throws FileNotFoundException,IOException

{

BufferedReader bfin=new BufferedReader(new FileReader(this.srcPath));

String temp=null;

while((temp=bfin.readLine())!=null)

{

stat(getFileName(temp));

}

}

/*输出统计结果*/

public void result()

{

Iterator it=statMap.entrySet().iterator();

while(it.hasNext())

{

Map.Entry entry=(Map.Entry)(it.next());

System.out.println((entry.getKey().equals(“”)?”空文件名”:entry.getKey()) + “的个数是” + entry.getValue());

}

}

public static void main(String[] args) throws Exception

{

FileNameStat fns=new FileNameStat(“src.txt”);//指定成待统计文件

fns.start();

fns.result();

}

}

第二题

简评:

这道题也与百度的业务有关,百度现在除了搜索外,还有贴吧,知道,博客等重要产品。 同时也在积极的探索社区化,包括前不久宣布进军电子商务领域,搜索之外的这些产品,其主要功能的实现主要是对数据库的操作。 因此,想进入百度,也需要对数据库有一定的认识。 实现思路及数据库设计: 1,该论坛主要有两个实体对象,用户和帖子;对于帖子对象,有一个问题:回复的帖子是否应该跟主题帖子存放在同一个表里?

考虑到每天更新10万帖子,说明帖子数比较多,为了方便主题的呈现,我一般都把主题贴和回帖分别放在不同的表中,把主题贴和回帖分开可以提高查询效率(300万的访问量每天)。

2,按照1中的思路,该论坛由两个对象(用户和帖子)变成三个实体对象,分别是用户,主题帖子,回复帖子;

3,上述三个对象存在三个关系,分别是:

用户C主题帖,一个用户可以发0个或多个帖子,一个帖子对应一个用户(一对多关系),

主题帖C回复帖:一个主题有0个或多个回复帖子,一个回复帖子对应一个主题(一对多关系);

用户C回复贴:一个用户可以回0个或多个帖,一个帖子对应一个用户(一对多关系)。

还存在对回复贴的回复,这个考虑用fatherId来表示。

4,由于三个关系 “用户C主题帖,主题帖C回复帖,用户C回复贴” 都是一对多关系,根据表设计一般原则,可以将这两个关系独立建立表,也可以不另外建表而将一对多的关系体现在实体表中;然而,表间的连接查询是非常耗资源的,所以应尽量减少表间连接,那么对三个关系不应该分别建表,而是把用户的id作为主题表和回帖表的外键,把主题贴id作为回帖表的外键。

5,鉴于以上考虑,该论坛的三个表如下所示

表名:t_user_info (用户信息表)

字段名 类型 缺省值 中文含义 约束 备注

id Int 用户编号 PRI Auto_increment

Name Varchar(30) 用户名

Email Varchar(50)

Phone Varchar(30)

Addr Varchar(200)

其他字段略,根据需要添加 表名:main_content_info (主题帖信息表)

字段名 类型 缺省值 中文含义 约束 备注

id Int 贴编号 PRI Auto_increment

Title Varchar(200) 发帖标题

Content Text 发帖内容

UserID Int 用户编号 外键

其他字段略,根据需要添加

表名:sub_content_info (回复贴信息表)

字段名 类型 缺省值 中文含义 约束 备注

id Int 贴编号 PRI Auto_increment

Title Varchar(200) 发帖标题

Content Text 发帖内容

UserID Int 用户编号 外键

FatherID Int 父编号

MainID Int 主题帖编号 外键

其他字段略,根据需要添加

6,符合范式分析:

上述表中每个字段不可再分,首先满足1NF;

然后数据库表中的每个实例或行都是可以被惟一地区分(id),不存在部分依赖,因此满足2NF;

t_user_info (用户信息表)和main_content_info (主题帖信息表)不存在任何传递依赖,至少属于BCNF;

但是sub_content_info (回复贴信息表)不满足3NF,因为存在如下传递依赖:idC>FatherID,FatherIDC>MainID。

范式并不是越高越好,sub_content_info表只满足2NF却更有效率,也是当今论坛较主流的设计。

第三题

简评:

如何对海量数据进行快速检索,这是搜索引擎的必需考虑的问题。这又涉及到数据结构和算法。 因此,要想进入百度,就必须熟悉一些基本的算法和数据结构。 思路及解决方案如下:

1: 设计用TRIE树实现关键词到其对应id的快速词典查找

TRIE树的每一个节点为一个包含256个元素的数组,同时指针指向其下一级节点

节点定义如下:

struct trienode

{

int id;

struct trienode *child[256];

}TRIENODE;

如果TRIE树的某个节点的指针为NULL,说明从跟节点到当前节点的路径构成文件B中的一个关键词,

在其节点的id保存该关键词的id;如果指针不为NULL,则id对应为0或者一个无穷大的整数,标志从根节点

到当前节点的路径不是一个完整的关键词。

将关键词转化为二进制无符号char型数组,即对于汉字等双字节字符视为两个无符号char型整数,

每个元素的取值范围在0到255之间。

2:生成文件b的TRIE树

步骤1:依次读取文件b的每一行,对每一行执行步骤2到步骤5

步骤2:读取关键词id和关键词,令为key

步骤3:依次读取key的每一个字符,对每一个字符,执行步骤4;

步骤4:如果该字符对应的指针为NULL,则创建其儿子节点;

步骤5:为当前节点的对应字符id置为关键词id

3:根据A文件生成C文件

步骤1:依次读取文件A的每一行,对每一行执行步骤2到步骤5

步骤2:分别获取当前行关键词、ip地址和时间

步骤3:令关键词key=c1c2…cm,对c1到cm每个字符,执行步骤4

步骤4:获取根节点的第c1个元素指针,转移到节点node1,

根据node1的第c2个元素指针,转移到node2…

根据nodem的第cm个元素,获取关键词的id

步骤5:往文件c中写入一行数据,格式为关键词的id、ip地址和时间

4:复杂度分析

生成文件B的TRIE树过程时间复杂度为O(n*m),其中n为文件b行数,m为文件b关键词的最大长度。TRIE的空间复杂度为O(n*m),n和m含义同上,但由于实际应用中关键词之间可能会有很多前缀相同现象,所以实际耗费空间并不会很高。

生成C文件的时间复杂度同样为O(n*m),n为文件a行数,m为文件a关键词的最大长度,因为有了TRIE树之后,给定一个关键词获得其id的时间复杂度为关键词长度。生成C文件的过程除了TRIE树空间外基本不需要太多额外的空间,空间复杂度为O(1),由于系统有1G的可用内存,TRIE占用的空间在几十兆到200M之间(与关键词集合有关),因此本方法完全可行。

篇5:百度校园招聘面试题

一面(1 hour):

1. 面试官从简历里抽了一个较感兴趣的项目,让把项目简单介绍了下,针对项目问了几个技术问题

2. 介绍Java中垃圾回收机制,程序员平时需要关注这个吗?为什么?请举例说明。

3. 数据库隔离级别介绍、举例说明。

4. override和overload的区别。

5. 求二叉树的最大距离(即相距最远的两个叶子节点),写代码。

6. 两个栈实现一个队列,写代码。

7. 你觉得你的优势是什么?有什么技术薄弱点吗?

8. 目前手上有offer吗?

二面(40 minutes):

1. 详细介绍研究生期间的小论文项目。

2. 求二叉树的宽度,先简介思路再写代码。

3. Hashmap、Hashtable和cocurrentHashMap的区别,要讲出它们各自的实现原理才行,比如Hashmap的扩容机制、cocurrentHashMap的桶分割原理、多线程安全性。

4. 进程调度算法,有哪些算法比较难实现?

5. linux下如何修改进程优先级?(nice命令的使用)。

6. linux下性能监控命令uptime介绍,平均负载的具体含义是什么?建议看server load概念。

7. linux下如何调试程序?说到gdb,具体如何调试?如何查看core文件中的堆栈信息等(bt指令)。

三面(1 hour and twenty minutes):

1. 介绍我研究生期间的论文,讲的很详细,每个点具体采用的技术、实现方法等,花了较长时间。

2. 打印二叉树两个叶子节点间的路径,写代码(汗,百度这么喜欢问二叉树)。

3. 字符串中第一个只出现一次的字符,如何优化算法使得遍历次数更少?

4. socket编程相关,如果服务器这边调用write写了100个字节的数据,客户端想要获得这个数据,是直接用read系统调用,参数也是100吗?

5. 百度新闻缓存预算问题:一般为了追求时间性能,都需要缓存一些新闻数据,你怎么计算所需预算?然后申请需要的主机……

6. 多线程的适用场景是什么?为啥要用多线程?

7. 问是否会go语言,……

8. 为啥对技术感兴趣,一些相关问题讨论。

9. 聊北京、谈offer。

最后面试官说像计算机体系结构、操作系统这样的书一定要看国外的,国内的有时候会误导人。

总结

三面都是技术面,总体下来没有特别难的题目,从我的面试情况来看,百度这次非常看重面试者对二叉树的掌握情况,还有所做的项目详细介绍。后面我会继续分享自己在面试过程中的一些个人经验和技巧。

篇6:百度面试题的java实现

有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁,木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。

java实现代码

publicclasstest_ant

{

privateint[] ants=newint[5];

//1:左 2:右

privateintenumDirection[][]=newint[32][5];

privatevoidinitDirection

{

for(inti=16, column=0; i>0; i=i/2, column++)

{

intn=1;

for(intj=0; j<32; j++)

{

if((j/i)%2==0)

enumDirection[j][column]=1;

else

enumDirection[j][column]=2;

}

}

}

privatebooleancheckAnts()

{

for(inti=0; i<5; i++)

{

if(ants[i]>0&&ants[i]<28)

returntrue;

}

returnfalse;

}

privatevoidchangeDirection(introw,intcol)

{

if(enumDirection[row][col]==1)

enumDirection[row][col]=2;

else

enumDirection[row][col]=1;

}

publicvoidantClimb()

{

initDirection();

for(intn=0; n<32; n++)

{

intseconds=0;

ants[0]=3;

ants[1]=7;

ants[2]=11;

ants[3]=17;

ants[4]=23;

while(checkAnts())

{

seconds++;

for(inti=0; i

{

if(i

{

//蚂蚁相遇

if((ants[i]==ants[i+1])

&&((enumDirection[n][i]+enumDirection[n][i+1])==3))

{

changeDirection(n, i);

changeDirection(n, i+1);

}

}

if(enumDirection[n][i]==1)

ants[i]--;

else

ants[i]++;

}

}

for(intj=0; j<5; j++)

System.out.print(enumDirection[n][j]);

System.out.println(”“);

System.out.println(seconds);

}

}

publicstaticvoidmain(String[] args)

{

newtest_ant().antClimb();

}

}

其中ants数组保存了5只蚂蚁当前在竿上的位置

enumDirection枚举了所有的32种初始化方向,1代表向左,2代表向右

最短11秒, 最大25秒

运行结果

11111

23

11112

17

11112

23

11122

11

11112

23

11122

17

11122

23

11222

17

11112

23

11122

21

11122

23

11222

21

11122

23

11222

21

11222

23

12222

21

11112

25

11122

25

11122

25

11222

25

11122

25

11222

25

11222

25

12222

25

11122

25

11222

25

11222

25

12222

25

11222

25

12222

25

12222

25

22222

25

来自:百度面试题的java实现

延伸阅读:百度面试题-关于蚂蚁问题(Ants)

篇7:emba面试题答案

EMBA现在很多院校都在招生,每家院校的面试都是不太一样,但综合一点就是考试难度上还是可以的。因为EMBA入学笔试、面试均由培养单位自行组织,门槛大为降低。EMBA笔试将考查学员经济、管理的基础知识,面试主要测试申请者成为优秀管理人才的潜质。

面试是进入EMBA殿堂的一个重要门坎,各EMBA培养院校都非常重视面试,希望从众多达到笔试录取分数高的考生当中,挑选出具有培养前途、管理潜质及深厚背景的优秀考生进入学校学习,为学校增光添彩。

面试准备的基本内容

面试一般时间都很短,个人面试长不会超过半小时,短则10分钟左右,集体面试一般也不会超过1小时,短则30分钟左右。各院校面试方式的选择是不一样的,需要做不同的准备。

对个人面试,需要准备四部分内容:

第一部分是对自己的面试自我介绍可以有文字稿准备、口头陈述准备两种方式,不论哪种形式都需要深思熟虑、出口成章。

关键是将自己工作生活中的亮点发掘展现出来,千万别说成流水账。通过亮点的展现给考官以良好的第一印象,产生积极的首因效应。可以在这部分间接或直接把你为什么要学EMBA的思想动力、雄心壮志表达出来。这一部分对录取有重要影响,可达35%以上。

第二部分内容一般是考官随机提问。

这一部分提问主要针对的是在考生自我陈述中所反映出的信息当中,考官感兴趣或不清楚的地方做一个追加提问,也可能会结合你的工作实际提出一些现实中遇到的管理问题,你是如何处理的,相对比较灵活而没有答案,因此信息的把握主要在考生自己心中,只要随机应变、自然回答、自圆其说就可以了。如果在面试中你陈述的内容有不真实的情况,在此处被考官发现,那对于你的面试过关是非常不利的。而这一部分如果考官对于你工作中的亮点或行业感兴趣,提出一些探讨导向性问题,你可以积极发挥、充满信心,这对于通过面试是很有帮助的。但是要注意不要得意忘形并流露出骄傲之态。

第三部分内容为管理基本知识和原理提问,有些学校采取抽题目方式。

对于这一部分内容,因为大家都复习过管理,不必紧张,在面试前花一些时间,将备考时看过的一些基本教材回顾一下,不至于将内容全还给老师就可以了。当然管理实践经验丰富的人完全没有必要死背书本来回答面试问题,只要结合以下你的工作实践,将你是如何在实践中处理问题的陈述一下就可以了,这样更能反映你的管理背景和潜能。

第四部分内容,有些学校为时事政治内容、有些学校为管理灵活应用问题。

如果是时事政治内容,请将备考政治资料再看一遍;如果是管理灵活应用,则需要有进取创新精神,这时考心理、考反应,切莫紧张。一般提出的面试问题都很矛盾有冲突,让你不知如何回答。往往这类问题是没有标准答案的,完全看你临场处事、变化能力。

温馨提示:对于团体面试,采取的学校不多,面试难度较大,既反映个人能力也反映团体合作精神。从选择讨论题目,到相互之间的配合,冲突在所难免,而最后团队精神的体现,对小组的成绩影响是非常大的。能够用人容人,或善于被人用,都是管理者必备的素质。

[emba面试题答案]

篇8:某公司面试题及答案

蓝色局部为我的作答

Software Configuration Management Question

perl

Basic

1. Which statement is wrong:

A. $_= hello world;

B. $a=hello world;

C. my $b,$a=hello world;

D. my ($a,$b)=(0,hello world);

Item C: $b is empty and $a is ‘hello world’

All of items is correct in program syntax, and can run.

2. The expression should be (B), then the following code can run correctly:

$a=0;$b=55;

while (expression)

{

$a+=2;

}

print ”$a/n“;

A. $a = $b

B. $a*$a <= $b

C. $a != $b

D. $b == 0

3. @array is an array variable, what is output of “print @array;” :A

A. Each element of this array

B. The size of this array

C. The first element of this array

D. Nothing

4. “$a = @array;”, what is value of $a: B

A. The first element’s value of this array

B. The size of this array

C. This line code is wrong

D. N/A

5. Which code snippet can print all elements in cd: B

A. foreach $Var (keys cd)

{

print “$Var /n”;

}

B. for ($I=0;$I< em=”“”“>

{

print “$cd{$I} /n”;

}

C. while ($Var (keys cd))

{

print “$Var /n”;

}

D. print join(‘/n’,cd);

STYLE=”pAGe-BreAK-BeFore: always“ CLEAR=”all“

Advance:

6. After execute following code snippet, what is value of $count: B (match twice)

$Str=’hello worldwww.3gos.info!’;

$count=0;

while ($Str=~m/(/w+)/g)

{

$count++;

}

A. 1

B. 2

C. 3

D. 12

7. What is the result of $string? D

$string = ”This string contains the number 25.11.“;

$string =~ /-?(/d+)/.?(/d+)/;

A. 25.

B. .11

C. 25.11

D. 25.11.

I don’t know what is meaning of -, but perhaps the answer is D

8. What is meaning of following code snippet?

open(MYFILE,”temp.txt“);

while {

while ( /(/w)/g ) {

$seen{$1}++;

}

}

foreach $word(keys %seen)

{

print ”$seen{$word} $word/n“;

}

close(MYFILE);

A. Delete all words in temp.txt

B. Calculate the frequency of each word in temp.txt

C. Wrong code

D. Calculate the sum of words in temp.txt

$1 is first variable of group match of perl, it match a char here.

9. In following code,expression#1 D let $point get the reference of @ARGV, expression#1 should be:

#!/usr/contrib/bin/perl -w

expression#1

print ”ARGV = “, join(”,“, expression#2), ”/n“;

A. my $point=@ARGV;

B. my $point={@ARGV};

C. my $point=ARGV;

D. my $point=/@ARGV;

10. The expression#2 A should be:

A. @$point

B. $point

C. @point

D. /@point

NOTE: Answer ofquestion 5 shoud be A

0519d.height = height; d.width = width; } public synchronized Dimension getValues(){ // Ooops! Breaks encapsulation return d; } }

如何发生获胜的QA群体(How to build a successful QA team).

爽利外包的14条分寸

[某公司面试题及答案]

篇9:php常用面试题及答案

1、谈对mvc的认识?

答:由模型(Model),视图(View),控制器(Controller)完成的应用程序

由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图;

2、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)

答:SELECT * FROM `members` ORDER BY posts DESC limit 0,10;

3、GD库是做什么用的?

答:gd库提供了一系列用来处理图片的功能,使用GD库可以处理图片,或者生成图片。

在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。

4、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么别?

答:int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串

char的场地固定为创建表设置的长度,varchar为可变长度的字符

5、以下程序的输出结果?

$b=201;

$c=40;

$a=$b>$c?4:5;

echo $a;

?>

答:4

6、检测一个变量是否有设置的函数是?是否为空的函数是?

答:isset($str),empty($str);

7、得查询结果集总数的函数是?

答:mysql_num_rows($result);

8、$arr = array(‘james’, ‘tom’, ‘symfony’); 请打印出第一个元素的值?

答:echo $arr[0];

9、===”是什么?试举一个“==”是真但“===”是假的例子。

“===”是既可以返回布尔值“假”,也可以返回一个不是布尔值但却可以赋与“假”值的函式,strpos() 和 strrpos() 便是其中两个例子。

if (strpos(”abc“, ”a“) == true){ // 这部分永不会被执行,因为 ”a“ 的位置是 0,换算成布尔值“假”}if (strpos(”abc“, ”a“) === true){ // 这部份会被执行,因为“===”保证函式 strpos() 的送回值不会换算成布尔值.}

10、以下程序的输出结果

$str=“cd”;

$$str=“hotdog”;

$$str.=“ok”;

echo $cd;

?>

答案:hotdogok

11、给你三个数,写程序求出其最大值。

$var1=1;

$var2=7;

$var3=8;

$max=$var1>$var2?$var1:$var2;

$max=$max>$var3?$max:$var3;

echo $max;

12、将一个选择2号选项的ip为127.0.0.1的用户在当前时间的投票记录到数据库的SQL

答:insert into poll (ip,time,iid) values('127.0.0.1',now(),2);

13、个函数验证电子邮件的格式是否正确 ?

答:function checkEmail($email)

{

$pregEmail = ”/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i“;

return preg_match($pregEmail,$email);

}

14、表 menu(mainmenu,submenu,url),请用递归法写出一树形菜单,将所有的menu列出来

function GenerateMenu($id=0,$str=”“)

{

$result=mysql_query(”select mainmenu,url,submenu from menu where mainmenu=$id“);

while($row=mysql_fetch_array($result))

{

echo $str.$row[”url“].”

“;

GenerateMenu($row[”submenu“],$str.”--“);

}

mysql_free_result($result);

}

$link=mysql_connect(”localhost“,”root“,”“);

mysql_select_db(”phpinterview“);

GenerateMenu();

mysql_close($link)

?>

15、PHP可以和sql server/oracle等数据库连接吗?

答:可以

16、写出PHP5权限控制修饰符?

答:public(公共),private(私用),protected(继承)

17、请写出php5的构造函数和析构函数?

答: 构造函数:官方称自定义函数

析构函数:垃圾回收函数(__destruct)

18、表单中 get与post提交方法的区别?

答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.

19、session与cookie的区别?

答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放

cookie:用来存储连续L一个面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。

两者都可通过时间来设置时间长短

20、用PHP打印出前一天的时间格式是-7-3 12:28:21?

答:echo date(‘Y-m-d H:i:s’, strtotime(‘-1 days’));

21、e2ho(),print(),print_r()的区别?

答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)

print() 只能打印出简单类型变量的值(如int,string)

print_r() 可以打印出复杂类型变量的值(如数组,对象)

echo 输出一个或者多个字符串

22、能够使HTML和PHP分离开使用的模板?

答:Smarty, TinyButStrong,XTemplate, Savant,Template Lite, Dwoo, phemplate

23、哪些工具进行版本控制?

答:cvs,svn,vss;

24、如何实现字符串翻转?

答:echo strrev($a); //strrev ― 颠倒字符串

25、优化查询语句?

a.最好在相同字段进行比较操作,在建立好的索引字段上尽量减少函数操作

例子1:

SELECT * FROM order WHERE YEAR(orderDate)<;(慢)

SELECT * FROM order WHERE orderDate<”2008-01-01“;(快)

例子2:

SELECT * FROM order WHERE addtime/7<24;(慢)

SELECT * FROM order WHERE addtime<24*7;(快)

例子3:

SELECT * FROM order WHERE title like ”%good%“;

SELECT * FROM order WHERE title>=”good” and name<”good“;

26、对于大流量的网站,您采用什么样的方法来解决访问量问题?

答:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,

程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量

27、如何修改SESSION的生存时间?.

答:方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache

方法2:$savePath = “./session_save_dir/”;

$lifeTime = 小时 * 秒;

session_save_path($savePath);

session_set_cookie_params($lifeTime);

session_start();

方法3:setcookie() and session_set_cookie_params($lifeTime);

28、有一个网页地址, 比如PHP开发资源网主页: www.php100.com/,如何得到它的内容?

答:方法1(对于PHP5及更高版本):

$readcontents = fopen(“www.php100.com/”, “rb”);

$contents = stream_get_contents($readcontents);// stream_get_contents 取得字符串赋值给$contents

fclose($readcontents);

echo $contents;

方法2:

echo file_get_contents(“www.php100.com/”);

// file_get_contents() 函数把整个文件读入一个字符串中。

29、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为?

答:状态401代表未被授权,header(“Location:www.xxx.php”);

30、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?

答:heredoc的语法是用”<<<”加上自己定义成对的标签,在标签范围鹊奈淖质游一个字串

例子:

$str = <<

my name is Jiang Qihui!

SHOW;

31、foo()和@foo()之间有什么区别?

答:@foo()控制错误输出

32、如何声明一个名为”myclass”的没有方法和属性的类?

答:class myclass{ }

33、如何实例化一个名为”myclass”的对象?

答:new myclass()

34、你如何访问和设置一个类的属性?

答:$object = new myclass();

$newstr = $object->test;

$object->test = “info”;

35、mysql_fetch_row() 和mysql_fetch_array之间有什么区别?

答:mysql_fetch_row是从结果集取出1行数组,作为枚举

mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得

36、下面哪个函数可以打开一个文件,以对文件进行读和写操作?

(a) fget() (b) file_open() (c) fopen() (d) open_file()

答:c

37、下面的程序会输入是否?

$num = 10;

function multiply(){

$num = $num * 10;

}

multiply();

echo $num;

?>

否,局部变量

38、JS表单弹出对话框函数是?获得输入焦点函数是?

答:弹出对话框: alert(),prompt(),confirm()

获得输入焦点 focus()

39、JS的转向函数是?怎么引入一个外部JS文件?

答:window.location.href;

40、$a = ‘abcdef’; 请取出$a的值并打印出第一个字母?

答:echo $a{0} 或 echo substr($a,0,1)

41、如何使用下面的类,并解释下面什么意思?

class test{

function Get_test($num){

$num=md5(md5($num).”En”);

return $num;

} }

双重md5加密

$testObject = new test();

$encryption = $testObject->Get_test(“xiaotian_ls”);

42、请举例说明在你的开发过程中用什么方法来加快页面的加载速

答:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具啦

43、写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):

$script=“以下内容不显示:alert(‘cc’);”;

echo preg_replace(“/].*?>.*?/si”, “替换内容”, $script);

?>

44、以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

答:LoadModule

php5_module

“c:/php/php5apache2.dll”;AddType application/x-httpd-php .php

45、sort()、asort()、和 ksort() 有什么分别?它们分别在什么情况下使用?

sort()

根据阵列中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。

asort()

与 sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。

ksort()

根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。

46、用PHP写出显示客户端IP与服务器IP的代码?

答:打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');//getenv取得开发环境变量

打印服务器IP:echo gethostbyname(“www.bolaiwu.com”) // gethostbyname取得IP地址函数

47、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?

答:require->require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require

include->include有返回值,而require没有(可能因为如此require的速度比include快)

注意:包含文件不存在或者语法错误的时候require是致命的,include不是

48、PHP的意思?

答:PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页

49、谈谈asp,php,jsp的优缺点?

答:ASP全名Active Server Pages,是一个WEB服务器端的开发环境, 利用它可以产生和运行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script(Java script)作为自己的开发语言。

PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(www.php.net)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。

JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病--脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Java 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。

三者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。在 ASP 、PHP、JSP 环境下,HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PHP、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。 ASP 、PHP、JSP三者都是面向 Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。

50、   优化MYSQL数据库的方法

(1).选取最适用的字段属性,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。

(2).使用连接(JOIN)来代替子查询(Sub-Queries)

(3).尽量少使用 LIKE 关键字和通配符

篇10:hr面试题及答案

问题6:“与上级意见不一致时,你将怎么办?”

思路:1、一般可以这样回答“我会给上级以必要的解释和提醒,在这种情况下,我会服从上级的意见。”

2、如果面试你的是总经理,而你所应聘的职位另有一位经理,且这位经理当时不在场,可以这样回答:“对于非原则性问题,我会服从上级的意见,对于涉及公司利益的重大问题,我希望能向更高层领导反映

问题7:“我们为什么要录用你?”

思路:1、应聘者最好站在招聘单位的角度来回答。

2、招聘单位一般会录用这样的应聘者:基本符合条件、对这份共组感兴趣、有足够的信心。

3、如“我符合贵公司的招聘条件,凭我目前掌握的技能、高度的责任感和良好的饿适应能力及学习能力,完全能胜任这份工作。我十分希望能为贵公司服务,如果贵公司给我这个机会,我一定能成为贵公司的栋梁!

问题8:“谈谈你的缺点”

思路:1、不宜说自己没缺点。

2、不宜把那些明显的优点说成缺点。

3、不宜说出严重影响所应聘工作的缺点。

4、不宜说出令人不放心、不舒服的缺点。

5、可以说出一些对于所应聘工作“无关紧要”的缺点,甚至是一些表面上看是缺点,最后转化为优点

问题9:“谈一谈你的一次失败经历”

思路:1、不宜说自己没有失败的经历。

2、不宜把那些明显的成功说成是失败。

3、不宜说出严重影响所应聘工作的失败经历。

4、所谈经历的结果应是失败的。

5、宜说明失败之前自己曾信心白倍、尽心尽力。

6、说明仅仅是由于外在客观原因导致失败。

7、失败后自己很快振作起来,以更加饱满的热情面对以后的工作

问题10:请谈谈你个人的最大特色。

A.我人缘极佳,连续3年担任福委会委员。

B.我的坚持度很高,事情没有做到一个令人满意的结果,绝不罢手。

C.我非常守时,工作以来,我从没有迟到过。

D.我的个性很随和,是大家公认的好好先生。

解答:这题理想的回答是B。A、C、D虽然都表示出应征者个性上的优点,但只有B的回答,最能和工作结合,能够与工作表现相结合的优点、特质,才是面谈者比较感兴趣的回答

篇11:计算机面试题和答案

计算机面试题和答案

1. 什么是程序局部性,为什么会有程序的空间局部性?

程序局部性是指程序在运行时呈现出局部性规律,在一段时间间隔内,程序的执行是局限在某个部份,所访问的存储空间也只局限在某个区域。 空间局部性是指若一个存储单元被访问,那么它附近的单元也可能被访问,这是由于程序的顺序执行引起的。

2. 比较TCP与UDP

TCP与UDP都是传输层的协议,且都用端口号标识数据所达的进程。 TCP提供的是面向连接服务,提供可靠交付。且具有流量控制和拥塞控制。可用于可靠要求高的场合如:SMTP,FTP,HTTP等 。

UDP提供的是无连接服务,提供不可靠交付,且无确认机制。主要用于即时强的场合如:视频聊天,语音电话等。

3. 网络协议的三个核心要素,及概念 .各起什么作用?

语法,定义了数据与控制信息的格式;

语义,定义了需要发出何种控制信息,完成何种响应动作以及作出何种响应; 同步,定义了事件实现顺序的详细说明;

4. 关系数据库都有那些操作,特点是什么?

◇查询:选择、投影、连接、除、并、交、差

◇数据更新:插入、删除、修改

关系操作的特点:集合操作方式,即操作的对象和结果都是集合。

5. 解释一下网络体系结构,它得实现和理论有什么区别?

是指通信系统的整体设计,它为网络硬件、软件、协议、存取控制和拓扑提供标准。 网络体系统结构采用分层结构,各层之间相互独立、较易维护、灵活性好。 国际标准化组织制定了OSI/RM标准,该标准采用了七层结构应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。七层协议体系结构既复杂又不实用,但其概念清楚,体系结构理论较完整。而TCP/IP却成为了事实上的标准,它采用了四层结构即应用层、传输层、网络层和网络接口层。

6. 为了实现重定位需要哪些硬件?

最简单的方式是在系统中增设一个重定位寄存器,用来存放正在执行作业的内存地址,每次访问数据时,由硬件自动将相对地址与重定位寄存器中的起始地址相加,形成实际的特理地址。 当然在分页式与分段式系统中,具地址变换机构,以及

快表等硬件。

7. 数据库保护(访问)的内容有哪些?

利用权限机制,利用完整性约束防止法数据进入数据库,提供故障恢复能力,提供并发访问控制

8. 在交互式系统中,非剥夺是不是一个好的策略?为什么?

非剥夺方式:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。 剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程、优先原则、时间片原则。

在分时系统中不剥夺并不是一个好的策略。因为,在分时系统中,除了交互性以外,及时性是很重要的性能因素。当一个作业被阻塞后,CPU就完全空闲了,别的用户的及时性就无法保证了,而完全可以把这些时间分配给别的作业运行。以提高整体的吞吐量。

9. DBA的职责是什么?

DBA则是这个机构的一个(组)人员,负责全面管理和控制数据库系统.职责有:

(1)决定数据库中的信息内容和结构:数据库中要存放哪些信息

(2)决定数据库的存储结构和存取策略:获得较高的存取效率和存储空间利用率

(3)约定义数据的安全性要求和完整性约束条件:负责确定各个用户对数据库的存取权限、数据的保密级别和完整性约束条件

(4)监控数据库的使用和运行:转储数据、维护日志文件、故障恢复

(5)数据库的改进和重组重构:对运行情况进行记录、统计分析,以此来不断改进数据库设计

10. 系统调用的定义

系统调用是OS与应用程序之间的接口,它是用户程序取得OS服务的惟一途径。它与一般的过程调用的区别: 运行在不同的系统状态。调用程序在运行在用户态,而被调用的程序运行在系统态; 通过软中断机制,先由用户态转为系统态,经枋心分析后,才能转向相应的系统调用处理子程序; 一般的过程调用返回后继续执行,但对系统调用,当调用的进程仍具有最高优先权时,才返回到调用进程继续处理;否则只能等被重新调度;

11. 死锁是什么?

指多个有关进程由于争夺资源而造成的一种僵局,在无外力的情况下这些进程都将无法再向前推进的状态。

12. CPU不执行程序的时候干什么?

当没有被任何程序使用的时候,计算机的处理器被认为是空闲的。当然下面提到的空闲任务不在此列中。 当有程序利用CPU空闲时间的时候,就意味着它以较低的优先权运行着,以便不会影响那有正常优先权的程序运行。一般来讲,这会引起CPU消耗更多的电能,而大多数的现代CPU当它们空闲的时候是能够进入省电模式的。 大多数操作系统都有个空闲任务,它是一个特殊的任务。仅当CPU无事可做的时候由操作系统调度器载入它。在现代的处理器中,HLT停机指令节省了大量的电能与执量,而空闲任务几乎总是由一个重复执行HLT停机指令的循环组成。

13. 举例解释一下同步和互斥

同步表现为直接制约,如管道通信,一个进程写,一个进程读,它们是相互制约的。 互斥表现为间接制约,比如多个进程同时请求打印机(没使用SPOOLing技术)、多个进程同时请求一张网卡发送数据包等。

14. 解释一下管程

管程是由一组局部变量、对局部变量进行操作的一组过程和对局部变量进行初始化的语句序列组成。引入它的目的是因为Wait/Singal操作太过分散,对它的维护很麻烦且容易造成死锁。管程的特点是:管程的过程只能访问管程的局部变量,管程的局部变量只能由其过程来访问;任何时刻只能有一个进程进入管程执行;进程只能通管程提供的过程入口进入管程;

15. 在可变分区管理中,需要哪些硬件机制

采用可变分区方式管理时,一般均采用动态重定位方式装入作业。地址变换要靠硬件支持,主要是两个寄存器:基址寄存器和限长寄存器,限长寄存器存放作业所占分区的长度,基址寄存器则存放作业所占分区的起始地址,这两个值确定了一个分区的位置和大小。

转换时根据逻辑地址与限长值比较,如果不有超过这个值,表示访问地址合法,再加上基址寄存器中的值就得到了绝对地址了,否则形成“地址越界”中断。

16. 中断和陷入有什么异同?

外中断时指来自处理机和内存外部的中断,如I/O中断、定时器中断、外部信号中断等。狭义上也叫中断; 内中断主要指在处理机和内存内部产生的中断,也称陷入,如校验错、页面失效、溢出、除数为零等;

中断和陷阱的主要区别:

(1)陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。

(2) 陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。

(3) CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。

17. 数据库系统和文件系统相比有什么优点? 文件系统 数据库管理系统 某一应用

18. 计算机网络和分布式计算机系统的区别?

两者在计算机硬件连接、系统拓朴结构和通信控制等方面基本都是一样的,它们都具有通信和资源共享的功能。 区别关键在于:分布式计算机系统是在分布式计算机操作系统支持下,进行分布式数据库处理的,也就是说各互联的计算机可以互相协调工作,共同完成一项任务,多台计算机上并行运行。且具有透明性,用户不知道数据、资源的具体位置,整个网络中所有计算机就像是一台计算机一样;而计算机网络却不具备这种功能,计算机网络系统中的各计算机通常是各自独立进行工作的。

19. 为什么引入多道程序技术?

因为引入多道程序技术后,可以进一步提高了CPU利用率(阻塞),提高内存和I/O设备利用率(小作业把内存浪费了),增加系统吞吐量(两都提高后的必然)。

1.java学习:Java面试题和答案

2.Java面试题和答案

3.软件测试面试题和答案

4.Spring面试题和答案汇总

5.酒店面试问题和答案

6.Java的面试题和答案

7.69道Spring面试题和答案

8.5个经典面试问题和最佳答案

9.自主招生面试题和答案

10.经典面试试题和答案分享

美工面试题及答案

竞聘面试题及答案

数据库面试题及答案

公务员面试题及答案

网络工程师面试题及答案

维修电工面试题及答案

求职动机面试题及答案

面试指南_百度Java工程师面试题

部分面试题答案

社会工作者面试题答案

《百度面试题及答案(共11篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

点击下载本文文档