百度贴吧测试部门实习生电话面试
1.内存如何分配?
答: 内存分配方式有三种:
(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。
(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
(3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。
参考:http://www.cnblogs.com/gaochaooo/archive/2009/09/03/1559764.html
2.TCP/IP三次握手过程?第三次握手失败会如何?
答: 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:
未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。
Backlog参数:表示未连接队列的最大容纳数目。
SYN-ACK 重传次数:服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。
半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。
3算法:单链表中查找倒数第n个元素,如何测试?
通过一次遍历找到单链表中倒数第n个节点,链表可能相当大,可使用辅助空间,但是辅助空间的数目必须固定,不能和n有关。
单向链表的特点是遍历到末尾后不能反向重数N个节点。因此必须在到达尾部的同时找到倒数第N个节点。
不管是顺数n个还是倒数n个,其实都是距离-标尺问题。标尺是一段距离可以用线段的两个端点来衡量,我们能够判断倒数第一个节点,因为他的next==NULL。如果我们用两个指针,并保持他们的距离为n,那么当这个线段的右端指向末尾节点时,左端节点就指向倒数第n个节点。
测试考虑:结点个数是否大于n;链表为空的情况;……(可补充)
01 |
iNode * GetLastNnode(iNode * head, int n) |
||||||||||||||||||||||||||||||||||||
02 |
{ |
||||||||||||||||||||||||||||||||||||
03 |
iNode * pfirst=head; |
||||||||||||||||||||||||||||||||||||
04 |
iNode *psecond=head; |
||||||||||||||||||||||||||||||||||||
06 |
int counter; |
||||||||||||||||||||||||||||||||||||
07 |
//第1步:建立标尺,移动pfirst N步 |
||||||||||||||||||||||||||||||||||||
08 |
for(counter=0; counter<n; counter++) |
||||||||||||||||||||||||||||||||||||
09 |
{ |
||||||||||||||||||||||||||||||||||||
10 |
if(NULL == pfirst) |
||||||||||||||||||||||||||||||||||||
11 |
break; // 此时pfirst->next无意义 |
||||||||||||||||||||||||||||||||||||
12 |
pfirst=pfirst->next; |
||||||||||||||||||||||||||||||||||||
13 |
} |
||||||||||||||||||||||||||||||||||||
15 |
if(n != counter) //长度不够n,未找到倒数第n个节点 |
||||||||||||||||||||||||||||||||||||
16 |
return NULL; |
||||||||||||||||||||||||||||||||||||
18 |
//第2步:保持距离让标尺向右移动,直到右端指向末尾,左端即结果 |
||||||||||||||||||||||||||||||||||||
19 |
while(pfirst!=NULL) |
||||||||||||||||||||||||||||||||||||
20 |
{ |
||||||||||||||||||||||||||||||||||||
21 |
pfirst=pfirst->next; |
||||||||||||||||||||||||||||||||||||
22 |
psecond=psecond->next; |
||||||||||||||||||||||||||||||||||||
23 |
} |
||||||||||||||||||||||||||||||||||||
24 |
return psecond; |
||||||||||||||||||||||||||||||||||||
25 |
} |
||||||||||||||||||||||||||||||||||||
28 |
iNode * GetLastNnode ( iNode *head, int n) |
||||||||||||||||||||||||||||||||||||
29 |
{ |
||||||||||||||||||||||||||||||||||||
30 |
iNode * pfirst = head; |
||||||||||||||||||||||||||||||||||||
31 |
iNode * psecond = NULL;//可能没有n个 |
||||||||||||||||||||||||||||||||||||
32 |
while( n-- > 0 && (pfirst!= NULL) |
||||||||||||||||||||||||||||||||||||
33 |
{ |
||||||||||||||||||||||||||||||||||||
34 |
pfirst = pfirst ->next; |
||||||||||||||||||||||||||||||||||||
35 |
} |
||||||||||||||||||||||||||||||||||||
37 |
if(pfirst!= NULL)// 有n个节点 |
||||||||||||||||||||||||||||||||||||
38 |
psecond = head; |
||||||||||||||||||||||||||||||||||||
40 |
while(pfirst!=NULL) |
||||||||||||||||||||||||||||||||||||
41 |
{ |
||||||||||||||||||||||||||||||||||||
42 |
pfirst = pfirst ->next; |
||||||||||||||||||||||||||||||||||||
43 |
psecond = psecond ->next; |
||||||||||||||||||||||||||||||||||||
44 |
} |
||||||||||||||||||||||||||||||||||||
45 |
return psecond; //只有一个出口,无论是否有n个节点,都能返回正确值 |
||||||||||||||||||||||||||||||||||||
46 |
} |
||||||||||||||||||||||||||||||||||||
附加1:一次遍历单向链表找到中间节点
和上面的思路类似,设置2个指针,一个走2步时,另一个走1步。那么一个走到头时,另一个走到中间。
01 |
iNode * GetMiddleNode ( iNode *head ) |
||||||||||||||
02 |
{ |
||||||||||||||
03 |
iNode *p1 = head; |
||||||||||||||
04 |
iNode *p2 = p1; |
||||||||||||||
05 |
while( p2 ) |
||||||||||||||
06 |
{ |
||||||||||||||
07 |
p2 = p2->next; |
||||||||||||||
08 |
if(p2) |
||||||||||||||
09 |
{ |
||||||||||||||
10 |
p2 = p2->next; |
||||||||||||||
11 |
p1=p1->next; |
||||||||||||||
12 |
} |
||||||||||||||
13 |
} |
||||||||||||||
14 |
return p1; |
||||||||||||||
15 |
} |
附加2:找到第2/3个结点
我们用两个指针,一个指针每次向后移动2个,一个指针每次向后移动3个。
4.如何测试登陆框:
快捷键的使用是否正常:
TAB 键的使用是否正确;上下左右键是否正确;界面如果支持 ESC键 看是否正常的工作;ENTER 键的使用是否正确切换时是否正常。
布局美感:
界面的布局是否符合人的审美的标准,具体因人而依
输入框的功能:
输入合法的用户名和密码可以成功进入
输入合法的用户名和不合法密码不可以进入,并给出合理的提示
输入不合法的用户名和正确密码不可以进入,并给出合理的提示
输入不合法的用户名和不正确的密码不可以进入,并给出合理的提示
不合法的用户名有:不正确的用户名;使用了字符大于用户名的限制;
正常用户名不允许的特殊字符、空的用户名,系统(操作系统和应用系统)的保留字符
不合法的密码有:空密码(除有特殊规定的),错误的密码,字符大于密码的限制
正常密码不允许的特殊字符,系统(操作系统和应用系统)的保留字符
界面的链接:
对于界面有链接的界面,要测试界面上的所有的链接都正常或者给出合理的提示
补充:
输入框是否支持 复制和黏贴 和移动
密码框显示的不要是具体的字符,要是一些密码的字符
验证用户名前有空格是否可以进入,一般情况可以。
验证用户名是否区分大小写。(有的软件是区分大小写的)
验证必填项为空,是否允许进入。
验证登录的次数是否有限制。从安全角度考虑,有些安全级别高的软件会考虑这方面的限制。
再补充:
同一用户名在不同地点登陆是否出现问题;
登陆有效时间(session值);
百度贴吧测试部门实习生电话面试相关推荐
- 阿里内推实习生电话面试
前言 某天接到了阿里内推实习生电话面试,遂将部分题目整理如下. 部分问题 1.malloc与new的区别 特征 new/delete malloc/free 分配内存的位置 自由存储区 堆 内存分配失 ...
- 百度大数据实习生电话面试总结
刚面完百度大数据实习生职位,还热乎的,这样我第一次面试献给了百度,感觉面试官很nice,听声音年龄不到三十,问的问题好多都是探讨讲,这中间还会提示一些.进BAT任何一家实习一直是我特别向往的,下面为我 ...
- 百度母婴 寒假实习一面(电话面试)(猝)
1 自我介绍? 2你是如何学习机器学习的? 3你喜欢看paper么 ?国内的多还是国外的多?看过哪些paper;? 4说一下暑假实习的内容? 5聊比赛 比赛流程? 怎么构建特征? 怎么选择特征 ...
- 阿里实习生电话面试总结
趁热打铁,刚面完百度,想起了一周前的阿里电面,决定写篇总结记录一下. 阿里的电面很突然,先是31号晚上7点左右接到的电话面试,由于当时在笔试,所以推到了第二天,本想着第二天赶紧起床补补知识点,怎料到1 ...
- 2019网易游戏测试开发实习电话面试总结
主要分为三次考核来记录 在线笔试 这次一共五道题,前三道题很简单,后面两道暂时没想到怎么做.但是总是有一些case过不去,所以费了很多时间,印象最深的是寻找最长的回文子串,这个很明显要使用DP去做,但 ...
- 来上海的第五天,阿里巴巴前端实习生电话面试整理
流水账,没有干货 一下子过去这么多天了, 昨天面试了两家公司,今天两个电话面试,下午又去了一家公司,也算是面试过五次了 前几天晚上突然接到阿里的内推连接,就点进去做了套题,因为当时实在太晚了,很困题还 ...
- 校招php竞争状况,学习猿地-2018 新浪校招 PHP 实习生 电话面试总结
今天接受了新浪的电话面试,想了想虽然面的不好还是和大家分享一下自己的面试经验吧,毕竟是自己第一次面试 如下图,先和hr约好的时间是20号下午3点(hr给我打电话的时间是20号的中午11点),到了3点结 ...
- 公司php笔试题实习生2018,2018 新浪校招 PHP 实习生 电话面试总结
今天接受了新浪的电话面试,想了想虽然面的不好还是和大家分享一下自己的面试经验吧,毕竟是自己第一次面试 如下图,先和hr约好的时间是20号下午3点(hr给我打电话的时间是20号的中午11点),到了3点结 ...
- 2018 新浪校招 PHP实习生 电话面试总结
今天接受了新浪的电话面试,想了想虽然面的不好还是和大家分享一下自己的面试经验吧,毕竟是自己第一次面试 如下图,先和hr约好的时间是20号下午3点(hr给我打电话的时间是20号的中午11点),到了3点结 ...
最新文章
- 常用正则表达式合集与工具
- 基于时间卷积神经网络的概率预测
- UIWebView执行JS语句
- huggingface实操_Transformers 简介(上)
- JavaWeb学习总结(二):Tomcat服务器学习和使用(一)
- 自学python(一)
- Idea中搭建Wildfly(JBoss)运行环境(Mac)
- 网络爬虫中的模拟登陆获取数据(实例教学1)
- rman坏块的检测与恢复
- linux mysql多实例启动_Mysql实例Linux下启动多个mysql服务器例子
- 90后游戏开发大神毛星云跳楼自杀!8年执着国产3A梦碎
- 在JMP中拆分数据集有烦恼?这些实用妙招试试看!
- 中秋之际献上【中秋快乐】藏头诗
- Linux下服务的管理
- 【GO语言编程】(二)
- windows11 scp
- 幼儿识字软件测试自学,儿童识字App大PK:汉字王国只娱乐不学习
- 初识C语言 | C语言零基础入门(第一天)
- 阿里云服务器搭建frp -实现内网穿透
- 移动端UI自动化之appium的使用(二)
热门文章
- 小白扫盲:浅谈web应用在nat123下的vip服务
- MT5交易软件使用技巧
- [转] 程序员也要养生
- 今天的样子,绝非偶然
- 阿里云、腾讯云、华为云多角度对比
- 1个月,10多万点击,不得不信的事实
- Django-admin后台LOGO字样修改方法
- 北大教授告诉你什么是 C语言!指点迷津
- 《UnityAPI.Quaternion四元数》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Quaternion+Angle+Dot+Euler+立钻哥哥++OK++)
- 在有序数组中,寻找指定连续数字的起始下标和结束下标