面试遇到的一些有意思考题总结,考考你能通过吗?

最近面试了一些公司,遇到面试官们出的一些比较有意思的面试题,在这里,我总结一些自己觉得印象深刻的,更新分享給大家。

希望给到大家一些帮助!

[From 滴滴打车]

面试题1、在linux系统上,有哪些命令是打死都不能随便执行的?

举例:
一个是:rm –rf / 这个命令对于系统来说是致命的,一定不要使用。
其次是:chmod – R 777 / 这个会破坏整个系统的权限体系,因此不要使用。

面试题2、rm -rf /$FOO 和 cd /tmp/logs;rm -rf ./* 这个可以执行吗?

不能!不能!不能!

$FOO 变量如果为空格开头,会把文件系统整体删除。

;由于不会判断前面的命令cd /tmp/logs是否执行成功,同样执行后面rm ,当logs不存在或者执行异常错误时,rm -rf也会执行,是相当致命的。

面试题3、谈谈HTTP返回码中的499、500、502、504的出现场景和区别

首先,谈谈499,它区别于500+系列,是Nginx端返回的,是客户端(即连接nginx的前段客户)主动断开连接。

500 502 504 都是后台服务错误导致。

500:很明显的程序内部错误,很常见的出现是由于程序的内部语法逻辑出错导致。

502:Bad gateway!常出现的一种场景,比如我们用nginx做代理,当upstream到后端的某一个服务,这个服务没任何响应。nginx就会return 502的响应。

504:Gareway timeout! 表示后端的服务能接收请求,但是迟迟未能完成整个代码逻辑,后台服务只能主动超时断开请求,这个时候return 504.

[From 阿里巴巴]

试题1、Python去重一个list,用到哪些方式?

方法1、

old_list = [2,2,3,3,4,4,53,4,5,2]
new_list = []
for i in old_list:
    if i not in new_list:
    new_list.appen(i)
print i 

方法2、


old_list = [2,2,3,3,4,4,53,4,5,2]

new_list= list(set(old_list))

//按照原来的顺序排序

news_ids.sort(ids.index)

试题2、Python的静态方法特征

本质的区别:

1、定义的时候,需要传递cls类实例。静态方法无需传入self参数,类成员方法需传入代表本类的cls参数.

2、静态方法是无法访问实例变量的,而类成员方法也同样无法访问实例变量,但可以访问类变量,静态方法有点像函数工具库的作用,而类成员方法则更接近类似Java面向对象概念中的静态方法.

试题3、用shell比对文件,然后去除两个文件中重复行

for i in comm -12 1.txt 2.txt;do

sed -i "/$i/d" 1.txt ;

sed -i "/$i/d" 2.txt ;

done;

试题4、谈谈UDP包攻击的源IP伪造技术

我觉得TCP因为需要建立三次握手,所以需要进行TCP协议的源IP伪造会相对复杂,所以很多DDOS中的攻击利用的协议伪造都是基于UDP的协议进行的,如:DNS反射攻击、NTP反射等等

伪造的大体原理如下:

A、B在不同的局域网内。
A向我发一个数据包。我这边就得到它的IP和端口。
B也向我发一个数据包,我也把它的IP和端口记录下来。
我再用SOCKET RAW把UDP包的源IP和端口改成和B的IP和端口一样,伪造成B,并告诉A,叫他去连接B。

[From 头条]

试题1、以下程序会输出多少行#

# -*- coding: utf-8 -*-

#!/usr/bin/python

#########################################################################

# File Name: /tmp/test.py

# Program function:

# Author:Jeson

# mail:jeson@imoocc.com

# Created Time: 日  9/ 4 13:07:42 2016

#========================================================================

import os

i = 5

while (i > 0):

     print "#"

     i = i -1

     os.fork()

没有答出来,我写程序执行后输出的是 160个#

且规则如下:

i=1时 输出 2个#

i=2时 输出 8个#

i=3时 输出24个#

那么,规则当i赋值n时输出 : 2的n次方*n个

无法理解os.fork()了......????? 留给你们帮解答吧 :)

posted @ 2018-02-24 14:21  Python学院  阅读(372)  评论(0编辑  收藏  举报