JZC&DSJ机试题目

木犀2018后端组机试题目PART2



机试环境:

  • 电脑
  • Linux(Ubuntu)
  • python2.7或以上
  • 网络(用于传输而并非用于搜索题解)
    若发现利用网络搜索答案的,直接OUT

时长及琐碎事项:

  • 本次机试时长为三个半小时
  • 期间允许上厕所之类的,包括买水也是可以的
  • 完成的题目统一提交到 shiina_orez@qq.com
    • 邮件题目:名字首字母大写,如ZMC或者DSJ
    • 邮件正文:你们随便写吧
    • 附件:
      • 文件名:如problem_1.py或problem_1.c
      • 一题多解: 如果你时间足够充裕,对一道题目有两种解法,可以命名为problem_1_method_1.py
  • 现场问题可以向学长学姐提问
  • 关于C语言的编译
    • gcc example.c
    • 然后在目录下会产生一个名为a.out的文件
    • ./a.out
    • 就是运行了

JZC部分:

problem 1:

具体要求:请求并分析json

描述:
众所周知,Artstation是一个有名的画作网站,不需要用户登陆就可以拿到很多数据。
用来练手是最棒的了。

其实有没有结构真的无所谓,但是还是告诉我们你会用get方法吧。


problem 2:

具体要求:python实现斐波那契数列

描述:
众所周知,斐波那契数列是一个神奇的数列。

  • 形如:1,1,2,3,5,8,13…
  • 除第一第二项之外都是前两项之和

请你使用python语言完成对第n项的计算,只输出结果

样例输入:
6
样例输出:
8

problem 3:

具体要求: python实现二路归并排序

描述:
众所周知,归并排序是一个算法效率比较高的的排序方法。

  • 算法的解释: 归并排序
  • 不允许使用python内置的sorted函数

实现对于一列数的排序,并且输出最终结果

样例输入:
5
3 2 1 4 5
样例输出:
1 2 3 4 5

problem 4:

具体要求:

描述:
众所周知,我们的周围的超市经常会有打折促销活动。
请你使用python语言编写一个能够根据用户信息打折的服务。

  • 你的程序应该使用面向对象的方式进行编程
  • 建议把商品和人写成类
  • 运用折扣的方法自己选择
    • 比如: 一次买的货物有100元,就可以打95折
    • 比如: 如果这个人是会员,不论多少都可以打95折
    • 比如: 如果这个人的积分有1000,那么就可以打8折
  • 你如果时间特别多,可以试着自动选择最优方案
样例输入:
没有样例输入,你想怎么输入就怎么输入
样例输出:
没有样例输出,你想怎么输出就怎么输出


DSJ部分

problem1:

具体要求:

描述:
众所周知,木犀团队很强。

  • 你的程序应该使用C语言编写
  • 循环输出,奇偶判断
  • 如果是奇数,输出Muxi
  • 如果是偶数,输出Studio
样例输入:
5
样例输出:
Muxi
Muxi
Muxi
Muxi
Muxi

###problem2:

具体要求:

描述:
众所周知,求和是基本操作。

  • 你的程序应该使用C语言编写
  • 输入是一些整数
  • 输出其中一段的和
样例输入:
6
1 2 3 4 5 6
2 5
样例输出:
14 //(2+3+4+5)

problem3

具体要求:

描述:
众所周知,我们的生活离不开排序。

  • 你的程序应该使用C语言编写
  • 输入是一些整数
  • 请阅读伪代码,完成冒泡排序的C程序
BubbleSort(input ele[],input length)
	for i <- 1 to length step 1
		for j <- i+1 to 0 step -1
			if ele[j] < ele [j - 1]
				swap (ele[j],ele[j - 1])
			end if
		end 
  • 如果觉得看不懂,还可以看这个:
/*	问题:
		设有一数组,其大小为10个元素(int   str[10])数组内的数据是无序。现在要求我们通过编程将这个无序的数组变成一个从小到大排序的数组(从下标为0开始)
	思路:
		按照题目的要求,毫无疑问,正确的结果应该就像这样: 1 2 3 4 5 6 7 8 9 10   要做到这样,最简单和最直接想到的方法就是进行对比交换。
		首先,把10个数里最小的个数放到下标为0的位置上(str[0])通过将下标为0的数(str[0])与剩下其余9个数进行对比交换(将较少者放置在下标为0的位置上),就可以得到这10个数最小的那个10个数最小的那位确定后,接下来就要找剩下9个数最小的那个。因为已经确定出一个最小的数,所以就不要动str[0],直接从str[1]开始,与剩下的8个数对比交换,找出9个数中最小的那位放到下标为1(str[1])的位置上继续按照这个思路就可以将这十个数变成有序的(从小到大)的数组*/
样例输入:
8
3 2 1 5 7 4 6 8
样例输出:
1 2 3 4 5 6 7 8

祝你们顺利233333333333333333333333333333333333333

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值