百度软件笔试题.docx

上传人:b****6 文档编号:7977020 上传时间:2023-01-27 格式:DOCX 页数:7 大小:17.06KB
下载 相关 举报
百度软件笔试题.docx_第1页
第1页 / 共7页
百度软件笔试题.docx_第2页
第2页 / 共7页
百度软件笔试题.docx_第3页
第3页 / 共7页
百度软件笔试题.docx_第4页
第4页 / 共7页
百度软件笔试题.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

百度软件笔试题.docx

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

百度软件笔试题.docx

XX软件笔试题

XX软件笔试题

 

一、选择题:

15分共10题

 

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

 

A.eB.2eC.n2-eD.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(*piterator0x80!

=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;i1023;i++){

 

for(j=0;jj++){

 

sum+=matrix[i][j]+tmp;

 

}

 

}

 

B段代码

 

intmatrix[1025][17];

 

constchar*str=thisisastr

 

inti,j,sum=0;

 

for(i=0;ii++){

 

for(j=0;j1025;j++){

 

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

 

}

 

}

 

三、编程题:

30分共1题

 

注意:

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

 

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

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

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

 

四、设计题:

35分共1题

 

注意:

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

 

1.请设计一个字典。

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

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

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

假设每一个字符串能够对应唯一的一个签名,完全没有重复(或者重复的概率可以忽略),并且签名分布足够均匀。

 

请描述你的数据结构?

内存如何申请?

增、删、查、改的功能如何实现?

如果操作很频繁,该如何优化?

 

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

 

有一个数据库,用一张表存储了某超市的历史销售记录,这个表中包含如下数据信息:

商品大类、商品小类、商品编号、商品名称、供应商编号、供应商名称、入库时间、入库价格、批次、当批入库总量、目前库存量、销售时间、商品单价、销售数量、付款方式、销售金额、是否优惠、优惠金额、销售柜台号、销售终端号、销售人员姓名等。

 

(1)请把数据表拆分成符合第三范式的多个表(写出表的结构定义SQL语句);

 

(2)根据拆分后的结构,写出如下统计SQL语句:

 

某种商品的总销售额;

 

某个供应商的总交易次数;

 

每月每个商品大类的销售额排名;

 

(3)如果对该表的操作主要是如

(2)所要求的数据统计。

在数据量非常大的情况下,上述统计会出现效率问题,要更快的得到上述数据统计的结果,都有哪些思路和办法?

如果你面对这样一个需求,会采取什么样的设计,或者对现有的设计进行怎样的改进?

 

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

当前位置:首页 > 解决方案 > 学习计划

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

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