百度面试题

一、 编程题 
1) 请用你熟悉的语言,写一个函数,给出一个数的原码,能得到该数的补码。 
二、技能题(请在数据库题和运用题目中任选一题完成)

1、数据库 
1) 请说明关于数据库的性能优化,请问可以从那些方面着手

调整数据结构的设计

2、调整应用程序结构设计

3、调整数据库SQL语句

4、调整服务器内存分配。内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。 


2) 请问delete from table a 与 truncate table table a的区别 

如果有ROLLBACK语句,DELETE操作将被撤销,但TRUNCATE不会撤销

 TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
2、运用题 
1) 请编写脚本实现将1,3,5。。到10000的奇数,写到一个新文件中,每个数一行。
#!/bin/bash

 

for (( i=1;i<10001;i++ ))

do

number=$(($i%2))

if [ $number -eq 1 ]

then

echo $i >> newfile

fi

done



2)请结合实际运用,说明如何彻底的查找出目前你使用的wiondows系统中,开机后会启动的所有程序。 

三、测试题 
1、 结合百度首页,请给出相应的测试用例 
2、关于B/S结构的一个学生成绩查询系统(通过学号查询成绩),某测试人员设计了如下用例作为该系统测试的所有用例,请进行评价,并做相应补充。 
1)输入正确的学号,能够得到正确的成绩结果。 
2)输入异常学号,系统正常处理,显示查询结果为0。 
3)加大数据库负载,查看响应速度。 
4)查看界面在各种分辨率下是否正常显示。


1.5分)下面这段代码是把中英文混合字符串(汉字用两个字节表示,特点是第一个字节的最高位为1)中的大写字母转化为小写字母,请找出其中的bug,注意各种异常情况。 for (char *piterator = szWord; *piterator != 0; piterator ) { if (*piterator & 0x80 != 0) { piterator ; } else if (*piterator >= 'A' && *piterator <= 'Z') *piterator = 32; } 2.5分)对给定的上亿条无序的url,请按照domainsite以及path分别排序,并请指出排序过程中可能会遇到的哪些问题?如何提高效率?例如:http://www.baidu.com/path/about.htmldomainsite以及path的定义分别如下: Domain:baidu.com Site:www.baidu.com Path: www.baidu.com/path 3.10分)某型CPU的一级数据缓存大小为16K字节,cache块大小为64字节;二级缓存大小为256K字节,cache块大小为4K字节,采用二路组相联。经测试,下面两段代码运行时效率差别很大,请分析哪段代码更好,以及可能的原因。为了进一步提高效率,你还可以采取什么办法? A段代码 int matrix[1023][15]; const char *str = "this is a str"; int i, j, tmp, sum = 0; tmp = strlen(str); for(i = 0; i < 1023; i ) { for(j = 0; j < 15; j ) { sum = matrix[i][j] tmp; } } B段代码 int matrix[1025][17]; const char *str = "this is a str"; int i, j, sum = 0; for(i = 0; i < 17; i ) { for(j = 0; j < 1025; j ) { sum = matrix[j][i] strlen(str); } } 



1)此题10分 
对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度。如:18!=6402373705728000,尾部连续0的个数是3。 
(不用考虑数值超出计算机整数界限的问题) 
   
2)此题10分 
编写一个C语言函数,要求输入一个url,输出该url是首页、目录页或者其他url 
如下形式叫做首页: 
militia.info/ 
www.apcnc.com.cn/ 
http://www.cyjzs.comwww.greena888.com/ 
www.800cool.net/ 
http://hgh-products.my-age.net/ 
如下形式叫做目录页: 
thursdaythree.net/greenhouses--gas-global-green-house-warming/ 
http://www.mw.net.tw/user/tgk5ar1r/profile/ 
http://www.szeasy.com/food/yszt/chunjie/ 
www.fuckingjapanese.com/Reality/ 
   
请注意: 
a) url有可能带http头也有可能不带 
b)动态url(即含有""url)的一律不算目录页,如: 
www.buddhismcity.net/utility/mailit.php?l=/activity/details/3135/ 
www.buddhismcity.net/utility/mailit.php?l=/activity/details/2449/ 
   
另:如果你会linux,请用linux下的grep命令实现第2题的功能(附加5分)。 
   
3)此题40分 
如果必须从网页中区分出一部分"重要网页"(例如在10亿中选8亿),比其他网页更值得展现给用户,请提出一种方案。 
   
4)此题40分 
假设有10亿网页已经被我们存下来,并提供如下信息:网页全文(即网页的源码)、全文长度、网页正文(即网页中提取的主体文字)、 
正文长度,以及其他网页提取物等,现在希望去掉其中的重复网页,请提出可行的方案,计算出每个网页对应的重复度,你可以自己 
对网页重复下定义,也可以提出需要哪些更多的网页提取物来实现更好的去重复方案 

面试:

写出strncpy的函数、与strcpy区别

2有一个数组,已知一个数出现的次数超过了一半,用O(n)时间复杂度、O(1)空间复杂度的算法找出这个数

3 m个人围成一圈,1234..n(n<=m)次序循环报数,报到n的离开,最后一个离开的是原先的第几个人时间复杂度O(n)

4以下代码有什么问题

{

char* p = malloc(size);

(内存操作)

}

5进程通信方式及区别

客户端和服务器间通信过程

 还有项目、实习经验之类的

 

目前收集到的一些比较有意思点的题目。

1、一火车以20KM/H向前开,另一架火车以10KM/H以相反方向开,两车相距300KM。一只小鸟则以30KM/H的速度在两车直接往返,问两车相距时,小鸟飞了多少KM。(忽略加减速时间)

2、前面有条分岔路,各站着一个国家的人,一个是谎话国的,一个是诚实国的。你只能问一次,要怎样问才能知道这两个国家分别怎么去。

3、一架飞机加满油可以飞行地球半圈,问要多少架飞机同时飞才能飞完整个地球。

4、工人每天工资为1/7金条,工资必须每天都付给他。现在你有一根金条,你只能切两刀,问怎样切你才能保证每天都有金条给工人。

5、四个人的过桥时间分别为1、2、5、10分钟,桥只能同时过两个人,速度以最慢的那个人来计算。由于是晚上必须有一人带电筒,问怎样过只用17分钟。

6、给定一个随机7个数的函数rand7(),可以随机1-7,问怎样才能用rand7()实现随机10个数(1-10)rand10()。

S

 

 

<!--EndFragment-->

猜你喜欢

转载自xq0804200134.iteye.com/blog/1669206