zoukankan      html  css  js  c++  java
  • 面试题5

    考试题目

    第一部分:Python基础部分(13分)

    1. 写代码实现:val = “i am a string”,实现一个方法,将字符串逆序输出(2分)

                   v1=val[::-1]

    1. 判断101-200之间有多少个质数(2分)
      提示:一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的书叫质数
      1. b = 0
        for a in range(101, 201):
            k = 0
            for i in range(2, a):
                if a % i == 0:
                    k += 1
            if k == 0:
                b += 1
        print(b)
        

          

    2. 简述正则表达式中的贪婪匹配并举例说明(2分)
      1. 1.什么是正则表达式的贪婪与非贪婪匹配
        
          如:String str="abcaxc";
        
            Patter p="ab.*c";
        
          贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab.*c)。
        
          非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab.*c)。
        
        2.编程中如何区分两种模式
        
          默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。
        
          量词:{m,n}:m到n个
        
             *:任意多个
        
             +:一个到多个
        
             ?:0或一个
        

          

    3. 写代码(3分)
                v1 = {11,22,33}
                v2 = {22,44,55}
       a. 如何获取 v1 中存在而v2中不存在的值?
       b. 如何获取 v2 中存在而v2中不存在的值?
       c. 如何获取v1和v2中都存在的值?
      1. l3 = v1-v2
        l4 =  v2-v1
        l5= v1&v2
        

          

    4.  请编写一个函数实现将IP地址转换成一个整数(4分)

             如 10.3.9.12 转换规则为:

                      10            00001010
                        3            00000011

                      9            00001001
                      12            00001100

     

    def iptoint(num):
        h = []
        s = num.split(".")
        for temp in s:
            a = bin(int(temp))[2:]
            a = a.zfill(8)
            h.append(a)
            g = "".join(h)
            e = int(g, 2)
        print(e)
    
    
    
    iptoint('7.91.205.21')
    

      

           再将以上二进制拼接起来计算十进制结果,即:
                  00001010 00000011 00001001 00001100 = ?

    第二部分:MySQL数据库(22分)

    1. MySQL中char和varchar的区别(1分)?
      1. 变长度和定长度,找的速度定长快点
    2. MySQL中varchar(50)的50表示什么意思?(1分)
      1. VARCHAR列中的值为可变长字符串。长度可以指定为0到65535之间的值。VARCHAR的最大有效长度由最大行大小和使用的字符集确定。在MySQL 4.1之前的版本,VARCHAR(50)的“50”指的是50字节(bytes)。如果存放UTF8汉字时,那么最多只能存放16个(每个汉字3字节)。从MySQL 4.1版本开始,VARCHAR(50)的“50”指的是50字符(character),无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放50个。
    3. left join、right join以及inner join的区别?(2分)
      1. left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 
        right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
        inner join(等值连接) 只返回两个表中联结字段相等的行
    4. MySQL组合索引(2分)
      where子句中有a、b、c 三个查询条件,创建一个组合索引 abc(a,b,c),那么如下那中情况会命中索引:
               a.  where (a)
               b.  where (b)
               c.  where (c)
               d.  where (a,b)
               e.  where (b,c)
               f.  where (a,c)
               g.  where (a,b,c)
      1.   
    5. 假设学生Student和教师Teacher关系模型如下:(4分)
              Student(学号、姓名、性别、类型、身份证号)
              Teacher(教师号、姓名、性别、类型、身份证号、工资)
      其中,学生表中类别为“本科生”和“研究生”两类;性别为“男”和“女”两类。
      a. 性别为女的所有学生。
      b. 学生表中类别分别对应的个数。
      c.工资少于10000的女研究生教师的省份证和姓名。
      d. 研究生教师平均工资、最高和最低工资。
      1.   

    id(自增主键)

    name(非空)

    balance(非空)

    1

    A

    19.50

    2

    A

    20.50

    3

    B

    100.00

    1. 根据如下表结构建表:(2分)

    id

    name

    order_time

    sku

    1

    铁锤

    2018/11/11

    篮球

    2

    铁锤

    2018/11/12

    足球

    3

    钢弹

    2018/11/01

    电脑

    4

    钢弹

    2018/11/15

    水杯

    1. 根据如下表查询每个用户第一次下订单的时间。(2分)

    2. 有一个订单系统包含订单信息、商品信息、价格信息且还要一些状态,如何设计表结构(2分)
    3. 有如下表:(3分)
              products(商品表)    columns为 id、name、price
              orders(商城订单表)    columns为 id、reservations_id、product_id、quantity(数量)
              reservations(酒店订单表)    columns为 id、user_id、price、created_at
      a. 各个商品的售卖情况,需要字段:商品名、购买总数、商品收入(单价*数量)
      b. 所有用户在2018-01-01至2018-02-01下单次数、下单金额、商城下单次数、商城下单金额
      c. 历月下单用户数:下单1次的用户数、下单2次的用户数、下单3次及以上的用户数
    4. 根据表写SQL语句:(5分)
    • 查询所有同学的学号、姓名、班级名称。(1分)
    • 查询没有学生的所有班级。(2分)
    • 查询有学生的所有班级的名称和学数量。(2分)

    第三部分:Django20分)

    1. 列举你熟悉的Http协议头以及作用。(1分)
    2. 状态码含义:200、301、302、304、404、500。(2分)
      1. 200:访问成功(表示一切正常,返回的是正常请求结果)
        302:临时重定向(指出被请求的文档已被临时移动到别处,此文档的新的URL在Location响应头中给出)
        304:未修改(表示客户机缓存的版本是最新的,客户机应该继续使用它。)
        404:访问的文件不存在(服务器上不存在客户机所请求的资源)
        500:内部服务器错误(服务器端的CGI、ASP、JSP等程序发生错误)
    3. 简述cookie和session?(2分)
    4. django中get和filter的区别?(1分)
    5. django的中间件在1.7和1.11版本间有什么区别?(1分)
    6. django中contenttypes组件的作用?(1分)
    7. django中Q的作用?(2分)
    8. 将如下SQL语句使用Django的ORM实现:(3分)
      select * from order where id >= 12
      select * from order where id != 12
      select * from order where id in [1,3,4]
      select * from order where id between 20 and 100
      select * from order where id > 20 and (num < 60 or num > 70 )
      select * from order order by id desc,age asc
    9. 编写查询语句:(5分,前2个每个1分,最后一题3分)
       
         

    • 查看所有学生,并打印 姓名、班级名称
    • 查看班级名称为"全栈12期"的所有学生
    • 查看没有学生的所有班级ID、班级名称
    1. django中遇到复杂的SQL时ORM无法完成,如何使用原生SQL执行?(2分)

    第四部分:路飞学城相关(32分)

    1. 简述 restful 规范?(2分)
    2. 简述 django rest framework的各大组件以及作用(2分)
    3. 路飞学城购物流程中为什么使用Redis?(1分)
    4. 请简要写出路飞学城购物流程在redis中的数据结构?以及简述为何如此设计?(2分)
    5. 支付宝支付时付款金额的精度?(1分)
    6. 支付宝支付时用的什么加密?(1分)
    7. 支付流程中,如果用户在支付宝页面支付成功的同时,路飞学城服务器宕机了,用户订单状态未更新,如何解决?(1分)
    8. 简要路飞学城中课程相关的13张表以及相关之间的FK、o2o、m2m 关系(4分)
      注意:使用伪代码表述即可。
    9. 路飞学城表结构查询(10分)
      1. 查看所有学位课并打印学位课名称以及授课老师
      2. 查看所有学位课并打印学位课名称以及学位课的奖学金
      3. 展示所有的专题课
      4. 查看id=1的学位课对应的所有模块名称
      5. 获取id=1的专题课,并打印:课程名、级别(中文)、why_study、what_to_study_brief、所有recommend_courses
      6. 获取id=1的专题课,并打印该课程相关的所有常见问题
      7. 获取id=1的专题课,并打印该课程相关的课程大纲
      8. 获取id=1的专题课,并打印该课程相关的所有章节
      9. 获取id=1的专题课,并打印该课程相关的所有的价格策略
      10. 获取id=1的专题课,并打印该课程相关的所有课时
    10. git相关(8分)
      1. 列举常见的git命令?
      2. git协同开发的流程?
      3. 遇到临时bug怎么办?
      4. 如何划分分支?
      5. 如何做代码review?
      6. git pull 和 git fetch的区别?
      7. git merge 和 git rebase的区别?
      8. 如何给别人的开源项目贡献代码?

    第四部分:Linux13分)

    1. 列举Linux常见发行版?(1分)
      1. redhat  ubuntu centos
    2. 如何获取文件 oldboy.log 的末尾两行数据?(1分)
      1. tail -n 2
    3. vim中如何一次删除光标所在行及后面2行?(1分)
      1.   
    4. 如何查看当前网络的网关地址?(1分)
      1. route -n
    5. 如何过滤出文件bb中包含haha关键字的行,并同时显示行号。(1分)
    6. 如何快速清空文件 oldboy.log 。(1分)
    7. 如何用scp把机器10.1.1.4上/tmp/目录下的文件file拉回到本机?(2分)
      提示:用户名root,ssh端口号12345
    8. 如何把文件/root/xxoo的权限配置为:属主可读、可写、可执行的权限,属组及其他用户没有任何权限。(2分)
      注意:使用数字表示权限的方式进行配置
    9. 如何创建用户 alex,并指定用户shell为/sbin/nologin (2分)
      1. useradd -s /sbin/nologin <new username>
    10. 如何删除用户 alex (1分)
      1.   sudo userdel alex

    第五部分:附加题
    提示:此题是面试真题,并且在面试中经常会遇到临时让你来设计的题目,该题各组私下可以进行一起讨论并设计。

  • 相关阅读:
    T-SQL查询语句
    数据库和表的管理
    数据库概念
    IRF2实验
    IFR2笔记
    校园网双网出口实验案例
    双机热备实验
    华为H3C(NAT)实验
    BGP(边界网关协议)实验
    Hybrid实验
  • 原文地址:https://www.cnblogs.com/qunxiadexiaoxiangjiao/p/9469498.html
Copyright © 2011-2022 走看看