2021年百度笔试题及答案.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一题???? 简答题 1.?多线程和多进程模式有什么区别?在用两种模型开发服务程序时,分别有什么优缺陷?采用长连接和短连接模式有什么区别?分别有什么优缺陷?采用同步和异步模式有什么区别?分别有什么优缺陷。 (1)启动进程时候,操作系统会为进程分派资源,其中最重要资源是内存空间,由于程序是在内存中运营。在进程中,有些程序流程块是可以乱序执行,并且这个代码块可以同步被多次执行。事实上,这样代码块就是线程体。线程是进程中乱序执行代码流程。当各种线程同步运营时候,这样执行模式成为并发执行。 对于一种进程中各种线程来说,各种线程共享进程内存块,当有新线程产生时候,操作系统不分派新内存,而是让新线程共享原有进程块内存。因而,线程间通信很容易,速度也不久。不同进程由于处在不同内存块,因而进程之间通信相对困难。线程切换快,但实现稍复杂。进程易实现,较稳定,但性能与线程相比较差。 (2)所谓长连接,指在一种TCP连接上可以持续发送各种数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,普通需要自己做在线维持。 短连接是指通信双方有数据交互时,就建立一种TCP连接,数据发送完毕后,则断开此TCP连接,普通银行都使用短连接。 长连接多用于操作频繁,点对点通讯,并且连接数不能太多状况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作话那么解决速度会减少诸多,因此每个操作完后都不断开,次解决时直接发送数据包就OK了,不用建立TCP连接。而像WEB网站http服务普通都用短链接,由于长连接对于服务端来说会耗费一定资源,而像WEB网站这样频繁成千上万甚至上亿客户端连接用短连接会更省某些资源,如果用长连接,并且同步有成千上万顾客,如果每个顾客都占用一种连接话,那可想而知吧。因此并发量大,但每个顾客无需频繁操作状况下需用短连好。? (3)同步:调用方调用一种程序,等待返回,然后再继续下面程序解决? 异步:调用方调用一种程序,不等待返回,继续执行下面程序。 1)异步通信简朴,双方时钟可容许一定误差。同步通信较复杂,双方时钟容许误差较小。 2)通信效率:异步通信低,同步通信高。 2.请写出如下程序运营成果,并解释导致这样运营成果核心性因素。 ?#include iostream using std::cout; class P { public: virtual void print() { cout P; } }; class Q:public P { public: virtual void print() { cout Q; } }; int main() { P * p = new P; Q * q = static_cast Q * (p); ? q-print(); ???????? delete p; cout endl; ? ???????? q = new Q; ???????? p = q; ???????? q-print(); ???????? p-print(); ???????? cout endl; ? ???????? p = new (q) P; ???????? q-print(); ???????? p-print(); ???????? cout endl; ? ???????? p-~P(); ???????? delete q; ???????? return 0; } P QQ PP ? 第二题 算法与程序设计题 1.给定如下n*n数字矩阵,每行从左到右是严格递增, 每列数据也是严格递增 1 2 3 3 5 6 4 8 9 当前规定设计一种算法, 给定一种数k 判断出k与否在这个矩阵中。 描述算法并且给出时间复杂度(不考虑载入矩阵消耗) 算法思想: 沿着对角线查找,获得i,使得k位于a[i][i]与a[i+1][i+1]之间。 k只也许存在于a[i][i]相应右上角矩阵 和a[i+1][i+1]相应左下角矩阵。 使用递归法继续查找即可。 时间复杂度 O(n) int searchK(int int_arr[][],int n,int startlow,int startclm,int k) { int lefttemp=0; int downtemp=0; int i=0; while(int_arr[startlow+i][startclm+i]k||in) i++; if (i==n) return 0; else if(arr[i][i]==k) reuturn 1; else return searchK(int_arr,n,startlow,startclm+i

文档评论(0)

181****8523 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档