考试题-路飞中期(卷一)

全栈11期考试题

考试须知:

  • 分值:100分
  • 考试时间:3小时
  • 考试类型:闭卷考试
  • 考试纪律:
    • 教室断网
    • 禁止翻阅笔记
    • 禁止互相讨论
    • 禁止拷贝
    • 以上情况,一经发现取消考试成绩并处以留级处理。

考试范围

  • Python基础
  • 数据库
  • django
  • 路飞学城相关
  • Linux

 

考试题目

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

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

val = “i am a string”

val.reverse()

  1. 判断101-200之间有多少个质数(2分)
    提示:一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的书叫质数
  2. 简述正则表达式中的贪婪匹配并举例说明(2分)

math匹配尽量多的字符,

seroutch

  1. 写代码(3分)
              v1 = {11,22,33}
              v2 = {22,44,55}
     a. 如何获取v1 中存在而v2中不存在的值?

 

list=[]

For i in v1:

    If i not in v2:

      list.appent(i)

Print (list)
 b. 如何获取v2 中存在而v1中不存在的值?

list=[]

For i in v2:

    If i not in v1:

      list.appent(i)

Print (list)
 c. 如何获取v1和v2中都存在的值?

list=[]

For i in v1:

    For j in v2;

      If i ==j:

          list.appent(i)

Print (list)

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

         如10.3.9.12 转换规则为:

                  10            00001010
                    3            00000011

                  9            00001001
                  12            00001100

 

 

a = '10.3.9.12'

list = []

a.split('.')

fori ina:

list.appent(bin(i))

print(list)

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

 

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

  1. MySQL中char和varchar的区别(1分)?
#Char是定长的,必须先设置字符串长度,用或不用都会占用这么多字节,查询速度快

#varchar 是变长的,会根据长度自动匹配长度,查询速度慢

 

  1. MySQL中varchar(50)的50表示什么意思?(1分)
#Varchar的50代表最大长度的字符

 

  1. left join、right join以及inner join的区别?(2分)
#left join 左关联,主表在左边,右边为从表。如果左侧的主表中没有关联字段,会用null 填满

#right join 右关联 主表在右边和letf join相反

#inner join 内关联只会显示主表和从表相关联的字段,不会出现null

 

  1. MySQL组合索引(2分)
    #组合索引abc(a,b,c) 当有多字段时用多字段组合使用
    #最左前缀
    #命中:
    #    a,ab,ac,abc
    #不命中:
    #    b,c,bc

    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. 假设学生Student和教师Teacher关系模型如下:(4分)
            Student(学号、姓名、性别、类型、身份证号)
           Teacher(教师号、姓名、性别、类型、身份证号、工资)
    其中,学生表中类别为“本科生”和“研究生”两类;性别为“男”和“女”两类。
    a. 性别为女的所有学生。
#select * from Student where 性别=“女”;

    b. 学生表中类别分别对应的个数。

#select  count(id)  from Student  group by 类型;

    c.工资少于10000的女教师的省份证和姓名。

#select 姓名,身份证号  from Teacher where fiter(工资<=10000);

 

    d. 研究生教师平均工资、最高和最低工资。

#select avg(工资),mini(工资),max(工资) from Teacher where 类型="研究生";

 

select max(工资)mini(工资) from Teacher on(select * from Student where 类别=“本科生”);

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

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

水杯


用户表

   id    name   订单id(一对多)

订单详情表

   订单id      order time    sku

 

  1. 有一个订单系统包含订单信息、商品信息、价格信息且还要一些状态,如何设计表结构(2分)

商品信息

      商品id  name  价格id(一对一)

价格信息

     价格id     价格

订单信息

            商品id(一对多)    订单id   订单时间  订单状态

  1. 有如下表:(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次及以上的用户数
  2. 根据表写SQL语句:(5分)
  • 查询所有同学的学号、姓名、班级名称。(1分)
  • select sid name from student
  • 查询没有学生的所有班级。(2分)
  • 查询有学生的所有班级的名称和学数量。(2分)

第三部分:Django20分)

  1. 列举你熟悉的Http协议头以及作用。(1分)

head,post,get,option,put,delete,catch 等等….

  1. 状态码含义:200、301、302、304、404、500。(2分)

200状态成功,301重定向原地址永久删除,302重定向原地址可用,304重定向,404网页加载失败,500服务器错误

  1. 简述cookie和session?(2分)

cookie是存放在浏览器上的键值对,用来保存用户的状态

session是服务器端的容器,用来保存用户的信息,session key是随机字符串,session依赖于cookie,把随机字符串保存在浏览器上。

  1. django中get和filter的区别?(1分)

get返回对象,找不到会报错

filter返回querset,找不到会返回None

  1. django的中间件在1.7和1.11版本间有什么区别?(1分)

假设django有4个中间件,

在1.7中任意中间件request有值得时候,会直接跳到最后一个中间件执行response。

在1.11中任意中间件request有值得时候,会跳到当前中间件的response

  1. django中contenttypes组件的作用?(1分)

contenttypes是django自动创建的表里边有所有的app和表的对应关系,当使用一对多外键关联所有表的时候就可以用contenttypes

  1. django中Q的作用?(2分)

用来复杂的过滤信息 例如filter或 | (管道符号)

  1. 将如下SQL语句使用Django的ORM实现:(3分)
    select * from order where id >= 12

models.order.object.filter(id >= 12)
select * from order where id != 12

models.order.object.excloud(id = 12)
select * from order where id in [1,3,4]

models.order.object.exite([1,3,4])
select * from order where id between 20 and 100

models.order.object.filter(between(20 100))
select * from order where id > 20 and (num < 60 or num > 70 )
select * from orderorder by id desc,age asc

  1. 编写查询语句:(5分,前2个每个1分,最后一题3分)
  • 查看所有学生,并打印姓名、班级名称

   Student_obj=models.Student.objects.filter(name)

   Print(Student_obj.name ,Student_obj.classes__classes)

  • 查看班级名称为"全栈12期"的所有学生

Models.Classes.objects.filter(name="全栈12期").valuse(Student__name)

  • 查看没有学生的所有班级ID、班级名称

       Models.Classes.objects.filter(count(name) = 0).valuse(name,id)

  1. django中遇到复杂的SQL时ORM无法完成,如何使用原生SQL执行?(2分)

 

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

  1. 简述restful 规范?(2分)

1 url中要表示资源2要使用https,不要使用hettp 3 url要有api标识4url要有版本信息5 url可以过滤信息6 根据请求方式执行不同方法7根据请求方式不同返回不同信息8 返回错误信息9返回状态码10 超文本连接heaper link

  1. 简述django rest framework的各大组件以及作用(2分)
    1. 路由  根据路由找对应视图
    2. 视图 用来处理逻辑相关
    3. 版本 用来过滤不同的版本
    4. 认证  确认用户有没有资格
    5. 权限 用来查看用户有没有权限
    6. 频率 控制用户频繁访问
    7. 解析器 用来解析用户发来的请求
    8. 渲染器 用来渲染末班
    9. 序列化 用来前端的信息
    10. 分页器 用来给前端返回的信息,分页
  2. 路飞学城购物流程中为什么使用Redis?(1分)

因为redis运行在内存中查看速度快,中间状态:订单在提交成功后没有必要存到数据库,购物车中的数据就清除了。

  1. 请简要写出路飞学城购物流程在redis中的数据结构?以及简述为何如此设计?(2分)

pricepolicy={1:{

   id=”id”,

   有效时间:”有效时间”,

   price:”price”

},

2:{

            id=”id”,

            有效时间:”有效时间”,

            price:”price”

},

}

 

luffy_car_用户id_课程id:{

   title:” title ”,

   img_src : “ 图片的地址 ”,

   pricepolice:pricepolicy

}

  1. 支付宝支付时付款金额的精度?(1分)

小数点后两位

  1. 支付宝支付时用的什么加密?(1分)

RAF加密

  1. 支付流程中,如果用户在支付宝页面支付成功的同时,路飞学城服务器宕机了,用户订单状态未更新,如何解决?(1分)

支付宝支付成功,服务器会在24小时之内,一直给路飞学成发信息。如果超过24小时,只能手动更改。

  1. 简要路飞学城中课程相关的13张表以及相关之间的FK、o2o、m2m 关系(4分)
    注意:使用伪代码表述即可。
    1. 课程大纲
    2. 课程子节点
    3. 专业课表
    4. 课程详情表
    5. 教师表
    6. 奖学金表
    7. 学位课表
    8. 章节
    9. 课时表
    10. 优惠券表
    11. 常见问题
    12. 价格策略
  2. 路飞学城表结构查询(10分)
    1. 查看所有学位课并打印学位课名称以及授课老师

list=models.学位课.object.all()

for I in list:

             i.name,i.()

  1. 查看所有学位课并打印学位课名称以及学位课的奖学金

           models.学位课.object.filter().valuer(name,学位课对应奖学金的字段__)

 

  1. 展示所有的专题课

models.Course.object.all()

  1. 查看id=1的学位课对应的所有模块名称
  2. 获取id=1的专题课,并打印:课程名、级别(中文)、why_study、what_to_study_brief、所有recommend_courses
  3. 获取id=1的专题课,并打印该课程相关的所有常见问题

CourseObj=models.Course.object.filter(id=1)

 

  1. 获取id=1的专题课,并打印该课程相关的课程大纲
  2. 获取id=1的专题课,并打印该课程相关的所有章节
  3. 获取id=1的专题课,并打印该课程相关的所有的价格策略
  4. 获取id=1的专题课,并打印该课程相关的所有课时
  5. 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. 如何获取文件oldboy.log 的末尾两行数据?(1分)
  2. vim中如何一次删除光标所在行及后面2行?(1分)
  3. 如何查看当前网络的网关地址?(1分)

ifconfig

  1. 如何过滤出文件bb中包含haha关键字的行,并同时显示行号。(1分)
  2. 如何快速清空文件oldboy.log 。(1分)
  3. 如何用scp把机器10.1.1.4上/tmp/目录下的文件file拉回到本机?(2分)
    提示:用户名root,ssh端口号12345
  4. 如何把文件/root/xxoo的权限配置为:属主可读、可写、可执行的权限,属组及其他用户没有任何权限。(2分)
    注意:使用数字表示权限的方式进行配置
  5. 如何创建用户alex,并指定用户shell为/sbin/nologin (2分)
  6. 如何删除用户alex (1分)

 

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

转载于:https://www.cnblogs.com/chongdongxiaoyu/p/9468613.html

你可能感兴趣的:(考试题-路飞中期(卷一))