首页 > 代码库 > 百度软件开发(上海站)笔试题解答
百度软件开发(上海站)笔试题解答
软件开发(上海)
简答题
描述OSI(开放系统互联基本参考模型)七层结构:
第七层:应用层,直接对用程序提供服务,应用程序可以变化,但要包括电子消息从传输;
第六层:表示层,格式化数据,以便为应用程序提供通用接口,这可以包括加密服务
第五层:会话层:在两个节点之间建立端连接。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以再层4中处理双工方式
第四层:传输层,常规数据递送,面向连接或无连接。包括全双工或半双工,流控制和错误恢复服务
第三层:网络层,通过寻址来建立两个结点之间的连接,它包括通过互联网来路由和中继数据
第二层:数据链路层,将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址
第一层:物理层,原始化比特流的传输,电子信号传输和硬件接口
数据发送时从第七层到第一层,接受方则相反
上三层总称应用层,用来控制软件方面
下四层总称数据流层,用来管理硬件
数据在发送至数据流层的时候将被拆分
在传输层的数据叫段 网络层叫包 数据链路层叫帧 物理层叫比特流 这种叫法叫PDU(协议数据单元)
写出进程间数据共享的方式,至少三种
1)通过共享内存映射文件
2)利用共享内存dll
3)向另一个进程发送WM_COPYDATA消息
4)调用ReadProcessMemory以及WriteProcessMemory函数,用户可以发送由GlobalLock(GMEM_SHARE,...)函数调用提取的句柄、GlobalLock函数返回的指针以及VirtualAlloc函数返回的指针。
描述TCP和UDP的区别,并各写出他们的一个上层协议
TCP是面向链接的,TCP的三次握手在很大程度上保证了连接的可靠性
UDP传送数据前并不与对方进行建立连接,对接收到的数据不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以UDP是一种无连接的,不可靠的一种数据传输协议
UDP由于不进行数据确认,所以传输速率更快,实时性更好
上层协议很多,比如TCP:HTTP,FTP,SMTP;UDP:nfs,tftp,snmp,snmp。
程序与算法设计
给出数组A={a_0,a_1,a_2,…,a_n}(你是可变的),打印出所有元素的组合
程序代码为:
#include<iostream>
#include<sstream>
#include<string>
usingnamespace std;
voidmain(){
string* str_arr=new string[10];
int len=10;
for(int i=0;i<len;i++)
{
ostringstream oss;
oss<<i;
str_arr[i]="a_"+oss.str();
}
cout<<"组合结果为:"<<endl;
for(int i=0;i<len;i++)
{
for(int j=i+1;j<len;j++){
cout<<str_arr[i]<<"-"<<str_arr[j]<<" ";
}
cout<<endl;
}
cin>>len;//防止运行后关闭窗口
}
数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置。
程序代码:
#include<iostream>
#include<math.h>
usingnamespace std;
voidmain()
{
constint len=12;
intnums[len]={1,2,3,4,5,4,3,2,1,0,-1,-2,},find;
cout<<"请输入要查找的数"<<endl;
cin>>find;
int i=0;
while(i<len)
{
int tmp=abs(find-nums[i]);
if(tmp==0)
{
cout<<"位置为"<<i;
break;
}
else if(i+tmp<len)
{
i+=tmp;
}
else
{
cout<<"要查找的元素不在数组中";
break;
}
}
cin>>find;//防止运行后关闭窗口
}
求二叉树的面积(高乘宽),高为二叉树根结点到叶子结点的最大距离,宽为二叉树最多的结点数
此题由于需要封装树的操作,故略去代码,具体思路为:先进性深度优先搜索,得到树的高度,再进行广度优先搜索得到树的宽,然后相乘即可。
系统设计题
给定一个百度地图的截图,对于地图上的某一点,需要在地图上标注该点的信息,将信息抽象成一个矩形,可以在该点的左边标记,也可以在该店的右边标记。但是任意两点标记后的矩形是不能有覆盖的,否则删除其中一个点。
问题1:现给一固定区域,设计一个算法,要求标记足够多的点
问题2:当点足够多的时候,算法可能遇到性能瓶颈,需要对算法重新优化
这条实在是不会,只想到将地图栅格化。
本文出自 “虎哥的博客” 博客,请务必保留此出处http://7613577.blog.51cto.com/7603577/1560280
百度软件开发(上海站)笔试题解答