整理百度笔试题Word文件下载.docx

上传人:b****5 文档编号:15799785 上传时间:2022-11-16 格式:DOCX 页数:14 大小:24.83KB
下载 相关 举报
整理百度笔试题Word文件下载.docx_第1页
第1页 / 共14页
整理百度笔试题Word文件下载.docx_第2页
第2页 / 共14页
整理百度笔试题Word文件下载.docx_第3页
第3页 / 共14页
整理百度笔试题Word文件下载.docx_第4页
第4页 / 共14页
整理百度笔试题Word文件下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

整理百度笔试题Word文件下载.docx

《整理百度笔试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《整理百度笔试题Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。

整理百度笔试题Word文件下载.docx

    可执行文件1

    可执行文件2

        .........

        最后将该批处理文件属性该位可执行。

  调试:

在编译时使用-g参数,就可以使用gdb进行调试。

  2、写出内存分配和释放的函数,并指出区别。

  C语言的标准内存分配函数:

malloc,calloc,realloc,free等。

  malloc与calloc的区别为1块与n块的区别:

    malloc调用形式为(类型*)malloc(size):

在内存的动态存储区中分配一块长度为“size”字节的连续区域,返回该区域的首地址。

    calloc调用形式为(类型*)calloc(n,size):

在内存的动态存储区中分配n块长度为“size”字节的连续区域,返回首地址。

    realloc调用形式为(类型*)realloc(*ptr,size):

将ptr内存大小增大到size。

    free的调用形式为free(void*ptr):

释放ptr所指向的一块内存空间。

  C++中为new/delete函数。

  3、写出socket函数,并指出其功能。

  socket():

建立socket通信描述符;

  bind():

将套接字和机器上的一定的端口关联;

  connect():

连接到远程主机;

  listen():

使套接字做好连接的准备,规定等待服务请求队列的长度;

  accept():

接受连接,一旦有客户端发出连接,accept返回客户地址信息和一个新的sock;

  有了这个新的sock,双方就可以开始收发数据:

  send()和recv():

用于流式套接字或者数据套接字的通讯;

  sendto()和recvfrom():

用于无连接的数据报套接字;

  close():

关闭套接字;

  shutdown():

选择性的关闭套接字,可以只允许某一方向的通讯关闭;

  getpeername():

返回流式套接字时对端peer信息;

  gethostname():

返回程序所运行的机器的主机名字;

  gethostbyname():

返回本机IP;

  第三部分编程题:

  1、从文件中读取字符串数据,反序显示并大小写转换。

  2、给定26字母表以及对应的密码表,编程实现加密及解密功能。

  第四部分思考题(正是传说中的字典纠错题):

  用户在输入英文单词时经常出错,现对其进行就错。

给定一个正确的英文词典,考虑纠错实现。

1)指出思路。

2)流程、算法难易程度及可能的改进策略。

一道算法题目答案

intReplace(Stringtype&

S,StringtypeT,StringtypeV);

//将串S中所有子串T替换为V,并返回置换次数

{

for(n=0,i=1;

i〈=Strlen(S)-Strlen(T)+1;

i++)//注意i的取值范围

if(!

StrCompare(SubString(S,i,Strlen(T)),T))//找到了与T匹配的子串

{//分别把T的前面和后面部分保存为head和tail

StrAssign(head,SubString(S,1,i-1));

StrAssign(tail,SubString(S,i+Strlen(T),Strlen(S)-i-Strlen(T)+1));

StrAssign(S,Concat(head,V));

StrAssign(S,Concat(S,tail));

//把head,V,tail连接为新串

i+=Strlen(V);

//当前指针跳到插入串以后

n++;

}//if

returnn;

}//Replace

分析:

这一句是必需的,也是容易忽略的.如省掉这一句,则在某些情况下,会引起不希望的后果,虽然在大多数情况下没有影响.请思考:

设S='

place'

T='

ace'

V='

face'

则省掉i+=Strlen(V);

运行时会出现什么结果?

(无限递归face)

XX2005年的笔试题

1.实现voiddelete_char(char*str,charch);

 把str中所有的ch删掉

2.把字符串S中所有A子串换成B,这个没给函数原型

3.搜索引擎的日志要记录所有查询串,有一千万条查询,不重复的不超过三百万

 要统计最热门的10条查询串.内存<

1G.字符串长0-255

 

(1)主要解决思路//具体用词和原题不大一样

 

(2)算法及其复杂度分析

4.有字典,设计一个英文拼写纠正算法

(1)思想

(2)算法及复杂度(3)改进

5.{aaa,bb,ccc,dd},{bbb,ff},{gg}等一些字符串的集合

 要求把交集不为空的集合并起来,如上例会得到{aaa,bb,ccc,dd,ff},{gg}

 

(1)思想

(2)算法及复杂度(3)改进

2006XX笔试题

一、选择题:

15分共10题

1.一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有____个零元素。

A.e   B.2e   C.n2-e  D.n2-2e

2.____是面向对象程序设计语言中的一种机制。

这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。

A.继承(Inhertance)B.模板(Template)

C.对象的自身引用(Self-Reference)D.动态绑定(DynamicBinding)

3.应用层DNS协议主要用于实现网络服务功能.

A.IP地址到网络设备名字的映射B.IP地址到网络硬件地址的映射

C.网络设备名字到IP地址的映射D.网络硬件地址到IP地址的映射

4.linux默认情况下,一个进程最多能打开多少文件?

A.64B.128C.512D.1024

5.下面结构体

structs1{

charch,*ptr;

union{

shorta,b;

unsignedintc:

2,d:

1;

}

structs1*next;

};

的大小是_____:

A.12字节B.16字节C.20字节D.24字节

6.任何一个基于"

比较"

的内部排序的算法,若对6个元素进行排序,则在最坏情况下所需的比较次数至少为____。

A.10B.11C.21D.36

7.以下不是进程间通讯的是___

A共享内存B信号量C线程局部存储D消息队列

8.下面程序,求count的值

intfunc(x)

intcount=0;

x=9999;

while(x)

Count++;

x=x&

(x-1);

returncount;

A8;

B10;

C5;

D11

9.使用malloc系统调用分配的内存是在____上分配的?

A栈;

Bbss;

C物理内存;

D堆

10.最坏情况下,合并两个大小为n的已排序数组所需要的比较次数_____

A.2nB.2n-1C.2n+1D.2n-2

二、简答题:

20分,共3题

1.(5分)下面这段代码是把中英文混合字符串(汉字用两个字节表示,特点是第一个字节的最高位为1)中的大写字母转化为小写字母,请找出其中的bug,注意各种异常情况。

for(char*piterator=szWord;

*piterator!

=0;

piterator++)

if(*piterator&

0x80!

=0)

piterator++;

elseif(*piterator>

='

A'

&

&

*piterator<

Z'

piterator+=32;

2.(5分)对给定的上亿条无序的url,请按照domain、site以及path分别排序,并请指出排序过程中可能会遇到的哪些问题?

如何提高效率?

例如:

Domain:

Site:

Path:

3.(10分)某型CPU的一级数据缓存大小为16K字节,cache块大小为64字节;

二级缓存大小为256K字节,cache块大小为4K字节,采用二路组相联。

经测试,下面两段代码运行时效率差别很大,请分析哪段代码更好,以及可能的原因。

为了进一步提高效率,你还可以采取什么办法?

A段代码

intmatrix[1023][15];

constchar*str="

thisisastr"

;

inti,j,tmp,sum=0;

tmp=strlen(str);

for(i=0;

i<

1023;

i++){

for(j=0;

j<

15;

j++){

sum+=matrix[j]+tmp;

B段代码

intmatrix[1025][17];

inti,j,sum=0;

17;

1025;

sum+=matrix[j]+strlen(str);

三、编程题:

30分共1题

注意:

要求尽可能提供完整代码,如果可以编译运行酌情加分。

1.内存中有一个长数组,条目数为10万,数组单元为结构体structarray,sizeof(structarray)为512字节。

结构有一int型成员变量weight。

现需要取得按weight值从大到小排序的前500个数组单元,请实现算法,要求效率尽可能高。

四、设计题:

35分共1题

请尽可能详细描述你的数据结构、系统架构、设计思路等,建议多写一些伪代码或者流程说明。

1.请设计一个字典。

以字符串为索引,存储用户定义的定长结构。

要求有增、删、查、改的功能。

已经给定一个函数,可以由字符串映射到一个签名,每个签名由两个unsignedint类型组成。

假设每一个字符串能够对应唯一的一个签名,完全没有重复(或者重复的概率可以

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1