首页 > 8.30百度提前批C++软开凉经
头像
缺一不渴
发布于 2021-09-01 23:04
+ 关注

8.30百度提前批C++软开凉经 内部员工回复

第一个互联网面试给了百度,心里还是有点紧张,但还是硬着头皮面了,

问的问题感觉不难,还是实力不太够

分享一下面试问题,大家查漏补缺

1、自我介绍

2、栈和堆的区别

3、你知道的排序算法有哪些,快速排序是如何进行的?

4、给你一个数组,找出两个数,使它们的和等于一个目标数;如果需要找出三个数,使它们的和等于目标数,你会怎么做。

5、给你一个英文句子,以空格为界倒序输出,

6、有40亿个数字,要找出其中某个数字,讲一下具体方法

7、http报错数字的意义

8、url回车运行的过程

9、给你一个TXT文件,读取每一行,输出该行特定的字符

10、查询端口号被占用

数据库会不会(不咋会,就没问)

11、Python与C 的区别

反问:

您现在负责什么业务,

完成您目前的业务的话基本用到哪些语言

一面二面大概间隔多久

进入百度公司的话会不会要求转语言

下面是总结的参考答案,可能不准确,欢迎指正

参考答案:

2、堆和栈的区别:

申请方式不同:栈由系统自动分配,堆是人为分配

申请大小不同:栈获得的空间小,堆获得空间大

申请效率不同:栈由系统分配,速度快

存储内容不同:栈存放局部变量,静态变量不入栈,堆头部放一个字节,存放堆的大小,存放实体;new的实体都放在堆区,需要delete或者通过垃圾回收机制定期回收内存

底层不同:栈是连续的空间,堆是非连续的空间。

3、冒泡排序、插入排序,归并排序、希尔排序、快速排序,选择排序;

快速排序方法:从数组中选出一个基准值,然后把该数组中小于基准的排在基准前面,比基准大的排在后面,这个分区退出之后,这个基准就处于数组的中间位置,然后递归的把小于基准元素的子数列和大于基准元素的子数列排序。

4、哈希表法、双循环作差比对法;头尾指针定位,第三指针查找

5、遍历字符串,遇到空格插入vector,然后倒序输出

6、第一种方法:

  • 使用bitmap算法,大体思路是一个字节(1byte)在计算机中占8位(bit),每个位可以表示一个数字,1表示含有,0表示不含有,1个32位系统的int类型可以存储2的32次方个bit位,大约是42亿多点,则40亿/8=5亿字节,1M= 1024kb = 1024*1024B,故大约需要512M左右,空间复杂度O(n)+O(1);

第二种方法:

  • 把40亿个数中的每一个用32位的二进制表示,假设这40亿个数开始放在一个文件中,然后将这40亿个数分为两类,1:最高位为0,2:最高位为0,将这两类分别写入到两个文件中,其中一个文件中数的个数=20亿(相当于折半),与要查找的数的最高位比较并进入相应的文件再查找;然后再把这个文件分成两类,1:最高位为0,2:最高位为0,将这两类分别写入到两个文件中,其中一个文件中数的个数=10亿(相当于折半),与要查找的数的最高位比较并进入相应的文件再查找;以此类推,就可以找到,时间复杂度为O(logn)。

7、http各个数字代表的含义

1xx,信息提示,状态码表示临时的响应,客户端在收到常规响应之前,应准备接受一个或者多个1xx响应。

  • 100-继续,101-切换协议

2xx,成功,表示服务器成功地接受了客户端请求。

  • 200-已创建,201-已接收,203-非权威性信息,204-无内容,205-重置内容,206-部分内容

3xx,重定向,客户端浏览器必须采取更多操作来实现请求

  • 302-对象已移动,304-未修改,307-临时重定向

4xx,客户端错误 ,发生错误,如客户端请求不存在的页面,客户端未提供有效的身份验证信息。

  • 400-错误的请求,401-访问被拒绝,404-未找到,405-用来访问本页面的HTTP方法不被允许,406-客户端浏览器不接受所请求页面的MIME类型
  • 407-要求进行代理身份验证,412-前提条件失败,413-请求实体太大,414-请求URL太长,415-不支持的媒体类型,416-所请求的范围无法满足
  • 417-执行失败,423-锁定的错误

5xx,服务器错误,服务器由于遇到错误不能完成该请求

  • 500-内部服务器错误,501-页眉指定了未实现的配置,502-Web服务器用作网关或者代理服务器时收到了无效响应,503-服务不可用,504-网关超时,505-HTTP版本不受支持

8、运行过程:

  • DNS解析:浏览器根据域名解析IP地址
  • TCP连接:浏览器与Web服务器建立一个TCP连接(三次握手)
  • 发送HTTP请求:浏览器向Web服务器发送一个HTTP请求(请求行,请求头部,空行,请求数据);
  • 服务器处理请求并返回HTTP报文:服务器响应HTTP请求,浏览器得到HTML代码(状态行,响应头部,空行,响应数据)
  • 浏览器解析HTML代码,渲染页面:并请求HTML中的资源(浏览器收到HTML文件后,解析HTML代码,遇到静态资源时,向服务器请求下载);浏览器对页面进行渲染呈现给用户
  • 关闭TCP连接

9、cat 1.txt |grep 'a'

10、查询端口号被占用

  • lsof - i:端口号
  • netstat -tunlp |grep 端口号

11、区别:

  • 语言类型不同,Python是动态语言类型,也叫强语言类型,他们确定一个变量的类型是在第一次给它赋值的时候,C语言是静态语言类型,在编译期间就确实能够数据类型的语言。Python是解释型语言,边解释边执行,C是编译语言,先编译后执行。
  • 对象机制不同,Python中所有的数据,都是由对象或者对象之间的关系表示的,函数是对象,字符串是对象,对象有三种属性,实体,类型和值;C语言没有对象这个概念,只有数据的表示。
  • 变量类型不同,python六个标准的数据类型:Number数字、String字符串、List列表、Tuple元祖、Sets集合、Dictionary字典,数字类型有四种类型:整数、布尔型、浮点数和复数。C语言也可分四类:基本类型、枚举类型、void的类型、派生类型。基本类型:整数类型、浮点类型。
  • 函数库的使用不同,在C语言中使用那个库函数,需要引入头文件用include引入,而在python中需要引入别的模块或者函数时需要用import引入。
  • 全局变量不同。C语言中,声明全局变量,如果值是恒定的,可以直接用#define声明,如果只是声明全局,并且变量的值是可变的,那么用int a 就可以。python中,声明全局变量时,要加上global,类似global a,在函数里面使用的时候需要先声明global a ,否则直接用a那么python会重新创建一个新的本地对象并将新的值赋值给他,原来的全局变量的值并不变化。
  • 内存管理,Python使用自动垃圾收集器进行内存管理。在C语言中,程序员必须自己进行内存管理。
  • 速度,Python速度慢,C语言速度快,效率高。

更多模拟面试

全部评论

(4) 回帖
加载中...
话题 回帖