文档内容
本资料属www.wuyouquizhi.com及旗下天天向上求职工作室&职场精英工作室所有仅限购买者个人使用,不得分享/转赠/转卖;版权所有,盗版可耻
百度 2018 校招核心系统工程师笔试题(第三批)
-----本资料属www.wuyouqiuzhi.com及旗下天天向上求职工作室&职场精英工作室独家所有,仅限购买者个人使用,不得分
享/转赠/转卖;版权所有,盗版可耻
-----正版购买地址:官网www.wuyouqiuzhi.com及旗下淘宝店:天天向上求职工作室(唯一客服:galerjim)或职场精英工
作室(唯一客服:蔚蓝小小天使),或者下载移动端刷题软件(名称为:笔试通)亦可购买
银行求职笔试面试-天天向上求职工作室,店址:https://51jobs.taobao.com/ 唯一旺旺客服:galerjim
证券保险大型国企求职笔试面试-职场精英工作室,店址:https://huntjob.taobao.com/ 唯一旺旺客服:蔚蓝小小天使本资料属www.wuyouquizhi.com及旗下天天向上求职工作室&职场精英工作室所有仅限购买者个人使用,不得分享/转赠/转卖;版权所有,盗版可耻
1
基于链路状态的路由协议包括()和()。
1
2
参考答案
(1) OSPF
(2) ISIS
2
DHCP客户端是使用()地址来申请一个新的IP地址的。
1
参考答案
(1) 255.255.255.255
3
linux 内核引导时,从文件()中读取要挂载的文件系统 。
1
参考答案
(1) /etc/fstab
4
以太网交换机端口模式可以被设置为()模式()模式和()模式。
1
2
3
参考答案
(1) 全双工
(2) 半双工
(3) 自动协商
5
linux下用shell命令查找列出/usr这个目录下所有包含字符msg的文件()。
1
参考答案
(1) find /usr -type f -name "*msg*"
6
ospf路由协议建立邻居的过程,如果竞选DR/BDR,在哪一步发生。
1) Down: 初始化状态. 2) Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来. 3)
银行求职笔试面试-天天向上求职工作室,店址:https://51jobs.taobao.com/ 唯一旺旺客服:galerjim
证券保险大型国企求职笔试面试-职场精英工作室,店址:https://huntjob.taobao.com/ 唯一旺旺客服:蔚蓝小小天使本资料属www.wuyouquizhi.com及旗下天天向上求职工作室&职场精英工作室所有仅限购买者个人使用,不得分享/转赠/转卖;版权所有,盗版可耻
two-way: 双向会话建立. 4) ExStart: 信息交换初始状态,在这个状态下,本地路由器和邻居将建立
Master/Slave关系,并确定DD Sequence Number,接口等级高的的成为Master. 5) Exchange: 信息交换状
态,本地路由器向邻居发送数据库描述包,并且会发送 LSR 用于请求新的 LSA. 6) Loading: 信息加载状态,
本地路由器向邻居发送 LSR 用于请求新的 LSA . 7) Full: 完全邻接状态,这种邻接出现在 Router LSA 和
Network LSA中. 如果竞选DR/BDR,将会在Two-way完成后开始。
7
请简述单模光纤和多模光纤的特点?
单模光纤只允许一个模式传播;纤芯直径小,功率注入较困难; 多模光纤可以同时传输多个模式;纤芯直
接较大,光功率注入较容易;多模光纤存在模间色散,限制传输速率的提升;
8
在浏览器中输入www.baidu.com, 一直到返回出网页内容,中间发生了哪些事情?
大体上来说,首先通过DNS协议,浏览器获取域名对应的ip地址。浏览器基于该ip地址与百度服务器通
过TCP三次握手协议建立连接,连接建立之后,基于HTTP协议,浏览器发送方法字段为GET的HTTP
请求报文,百度服务器收到该请求报文后,把网页内容填充进HTTP 的响应报文,浏览器收到该请求报文
后,将前段页面渲染出来,展现在用户面前。 更具体地,在本地与服务器的通信过程中,本地构造完整报
文的过程为沿着网络协议栈,由上向下,TCP协议、IP协议、链路层协议分别在上层协议的基础上增加首
部字段,构造出完整的链路层帧,然后经过交换机、路由器的转发,基于BGP、OSPF等路由协议,最终
到达百度服务器。百度服务器再沿着网络协议栈由下向上,分别解析出每一层的内容,直到应用层提取出
HTTP请求报文的内容。 此外,在百度服务器端,还存在负载均衡、nginx工作流程等细节。
9
请回答异步请求和同步请求的区别?
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步是指:发送方
发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
10
什么叫二叉树,满二叉树,完全二叉树.
二叉树:每个结点最多有两个子树的有序树,通常子树的根被称作“左子树”(left subtree)和“右子树”(right
subtree)。 完全二叉树:只有最下面的两层结点度小于 2,并且最下面一层的结点都集中在该层最左边的
若干位置的二叉树; 满二叉树:除了叶结点外每一个结点都有左右子叶且叶结点都处在最底层的二叉树。
11
实现双向链表操作,包括创建链表、向链表插入新结点、从链表中删除结点。
(注:不能使用本地IDE)
typedef struct DbNode //数据结构定义
{
int data; //节点数据
DbNode *left; //前驱节点指针
DbNode *right; //后继节点指针
}DbNode;
DbNode g_head = {0, &head, &head};
DbNode *CreateNode(int data)
银行求职笔试面试-天天向上求职工作室,店址:https://51jobs.taobao.com/ 唯一旺旺客服:galerjim
证券保险大型国企求职笔试面试-职场精英工作室,店址:https://huntjob.taobao.com/ 唯一旺旺客服:蔚蓝小小天使本资料属www.wuyouquizhi.com及旗下天天向上求职工作室&职场精英工作室所有仅限购买者个人使用,不得分享/转赠/转卖;版权所有,盗版可耻
{
DbNode *pNode = (DbNode *)malloc(sizeof(DbNode));
If (NULL == pNode )
{
return NULL;
}
pNode->data = data;
pNode->left = NULL; //创建新节点时,
pNode->right = NULL; //让前驱和后继指针都为NULL
return pNode;
}
//双向链表的节点插入
void InsertNode(DebNode *node, int data)
{
DbNode *newnode = CreateNode(data);
if(NULL == node)
{
return ;
}
if(&g_head == node->right) //node为最后一个节点
{
node->right = newnode;
newnode->left = node;
newnode->right = &g_head;
}
else
{ //node为中间节点
newnode->right = node->right; //newnode向右连接
node->right->left = newnode;
node->right = newnode; //newnode向左连接
newnode->left = node;
}
}
//双向链表的节点删除
//删除满足指定条件的节点,返回表头节点,节点不存在删除失败返回NULL
void DeleteNode(int data)
{
DbNode *pnode = FindNode( data);
if(NULL == pnode)
{
银行求职笔试面试-天天向上求职工作室,店址:https://51jobs.taobao.com/ 唯一旺旺客服:galerjim
证券保险大型国企求职笔试面试-职场精英工作室,店址:https://huntjob.taobao.com/ 唯一旺旺客服:蔚蓝小小天使本资料属www.wuyouquizhi.com及旗下天天向上求职工作室&职场精英工作室所有仅限购买者个人使用,不得分享/转赠/转卖;版权所有,盗版可耻
return ;
}
else if(&g_head == pnode->left) //删除第一个节点
{
g_head.right = pnode->right; //head指向第二个节点
pnode->right->left = &g_head;
}
else if(&g_head == pnode->right) //删除最后一个节点
{
pnode->left->right = &g_head;
g_head.left = pnode->left;
//pnode->left = pnode->right = NULL;
}
else //删除中间节点
{
pnode->left->right = pnode->right;
pnode->right->left = pnode->left;
}
free(pnode);
return ;
}
12
输入不超过1000的正整数n,输出n!=1*2*3*……*n的精确结果。
样例输入:30
样例输出:265252859812191058636308480000000
(注:不能使用本地IDE)
#include
#include
const int MAXN = 3000;
int f[MAXN];
int main()
{
int i, j, n;
scanf("%d", &n);
memset(f, 0, sizeof(f));
f[0]=1;
for(i = 2; i <= n; i++)
{
int c = 0;
for(j = 0; j < MAXN; j++)
{
int s = f[j] * i + c;
银行求职笔试面试-天天向上求职工作室,店址:https://51jobs.taobao.com/ 唯一旺旺客服:galerjim
证券保险大型国企求职笔试面试-职场精英工作室,店址:https://huntjob.taobao.com/ 唯一旺旺客服:蔚蓝小小天使本资料属www.wuyouquizhi.com及旗下天天向上求职工作室&职场精英工作室所有仅限购买者个人使用,不得分享/转赠/转卖;版权所有,盗版可耻
f[j] = s % 10;
c = s/10;
}
}
for(j = MAXN-1; j >= 0; j--)
{
if(f[j])
break;
}
for(i = j; i >= 0; i--)
{
printf("%d", f[i]);
}
printf("\n");
return 0;
}
13
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
(注:不能使用本地IDE)
void DeleteChars(char *first, char *second)
{
if(first==NULL || second==NULL)
return;
//hashTable标记字符是否在字符串second中出现...
bool hashTable[256];
memset(hashTable, 0, sizeof(hashTable));
size_t len1 = strlen(first);
size_t len2 = strlen(second);
//扫描字符串second,在hashTable中标记出现的字符
for(int i=0; i