笔试

时间:2017.04.26,120分钟
题型:单选题20道(40分钟),在线编程2道(80分钟)

单选

1.下面哪种作业调度算法适用于处理紧急任务
( ) 先来先服务算法
( ) 短作业优先算法
( ) 优先权调度算法
( ) 时间片轮转算法
( ) 多级反馈队列算法
( ) 高响应比优先算法

2.北京通常有1/4的概率有雾霾,当你出差去北京需要决定是否带口罩。你会随机问在北京的3个同事。每个同事有3/4的概率说真话。当3个同事都说北京有雾霾的时候,问实际上有多大概率北京有雾霾。
( ) 63/64
( ) 3/4
( ) 1/4
( ) 27/64
( ) 9/10
( ) 37/64

3.新生军训,一个小组有8个人,排成一排操练。为了让组内同学都互相认识,指导员每天都在重新排队,保证任意相邻的同学之前都没有被安排相邻过。按这个规则最多可以重排多少天?
( ) 2
( ) 3
( ) 4
( ) 5
( ) 6
( ) 7

4. 请阅读下面代码,判断可被垃圾回收的对象

public class TestGC
{private static TestGC m_t;public void assign(TestGC t){m_t = t;}public void clear(TestGC t){t = null;}public static void main(String[] args){TestGC t1 = new TestGC();TestGC t2 = new TestGC();TestGC t3 = new TestGC();t1.assign(t2);t1 = null;t2 = null;t3.clear(t3);System.out.printIn("This point");}
}

当程序执行到“System.out.printIn”这行时,可被虚拟机回收的对象有:
( ) t1
( ) t1、t2
( ) t2、t3
( ) t1、t3
( ) t1、t2、t3
( ) t1、t2、t3全都不可回收

5. 请阅读下面代码,计算运行结果:
TaskBGThread.java定义如下

public class TaskBGThread extends Thread
{private int i = 1;public void run(){System.out.print("TaskBG"+i);i++;}
}

TaskThread.java定义如下

public class TaskBGThread implements Runnable
{private int i = 1;public void run(){System.out.print("TaskBG"+i);i++;}public static void main(String[] args){Runnable runner = new TaskThread();Thread thTask1 = new Thread(runner);thTask1.run();Thread thTask2 = new Thread(runner);thTask2.start();Thread thTaskBG1 = new TaskBGThread();thTaskBG1.start();Thread thTaskBG2 = new TaskBGThread();thTaskBG2.start();}
}

以上程序的运行结果可能会出现的是
( ) Task1Task2TaskBG1TaskBG2
( ) Task2Task1TaskBG1TaskBG2
( ) Task1Task1TaskBG1TaskBG2
( ) Task2Task2TaskBG1TaskBG2
( ) Task1Task2TaskBG1TaskBG1
( ) Task1Task1TaskBG1TaskBG1

6 .

public class TestFinally
{public static void main(String[] args) throws InterruptedException{Runnable s = new Runnable(){public void run(){try{System.out.print("线程开始执行");Thread.sleep(1000);System.out.print("线程执行完毕");}catch (InterruptedException e){System.out.print("睡眠中发生中断");}finally{System.out.print("finally块被调用了");}}};Thread thread = new Thread(s);thread.setDaemon(true);thread.start();Thread.sleep(500);}
}

程序执行后,输出的内容最可能是以下的哪种情况:
( ) 线程开始执行 线程执行完毕 睡眠中发生中断 finally块被调用了
( ) 线程开始执行 睡眠中发生中断 finally块被调用了
( ) 线程开始执行 finally块被调用了
( ) 线程开始执行
( ) 线程开始执行 finally块被调用了 睡眠中发生中断
( ) 没有输出

7.

public class TestAtomicInteger
{public static void main(String[] args){final AtomicInteger tickets = new AtomicInteger(10);Runnable s = new Runnable(){public void run(){while(ture){int ticket = tickets.updateAndGet(n -> (n > 0) ? n -1 : n);//ticket代表售出的票System.out.print(ticket + " ");if (ticket <= 0){ break;}}}};Thread t1 = new Thread(s);Thread t2 = new Thread(s);t1.start();t2.start();}
}

以下说法正确的是:
( ) 结果不会发生超卖,因为AtomicInteger是线程安全的
( ) 结果会发生超卖,且超卖的票号不确定
( ) 结果会发生超卖,且超卖的票号一定是最后一张
( ) 结果会发生超卖,且超卖的票号一定是最先卖出的那张
( ) 超卖可能会发生,也可能不会发生
( ) 以上都不对

8 . 已知元素和对应的哈希值如下:
元素 A B C D E F G
哈希值 3 1 4 1 5 2 5

基于线性探测哈希法,按照某种顺序,将上面元素插入到长度为7的哈希表中,则下面哪种情况是可能的正确结果:
(1)
0 1 2 3 4 5 6
G B D F A C E

(2)
0 1 2 3 4 5 6
B G D F E C A

(3)
0 1 2 3 4 5 6
E G F A B C D

(4)
0 1 2 3 4 5 6
G B D A C E F

( ) (1)
( ) (1) + (2)
( ) (1) + (4)
( ) (2) + (3)
( ) (3) + (4)
( ) (1) + (2) + (3) + (4)

9. 以下说法正确的是()

#include <iostream>int f(int i)
{if (i <= 0){ return 1; }return i*f(i - 1);
}int main()
{for (size_t i = 10; i >= 0; --i){std::cout<<f(i)<<std::endl;}return 0;
}

( ) 正常输出1~10的阶乘
( ) 正常输出0~10的阶乘
( ) 正常输出0~2^32-1的阶乘
( ) 死循环
( ) 编译错误
( ) 运行错误

10.一个淘宝外卖小哥在望京某高档社区迷了路。他的勉强有三条路,第一条路3分钟就能出去,第二条路5分钟绕回原地,第三条路10分钟绕回原地。估计外卖小哥要花多少时间出去
( ) 15
( ) 16
( ) 17
( ) 18
( ) 19
( ) 25

11.有一组记录排序码(1 9 6 2 5 4 7 3)需要进行堆排序,请问在堆化(小根堆)之后,堆所对应的二叉树后序遍历序列为:
( ) (9 3 2 5 1 6 4 7)
( ) (9 3 5 2 6 7 4 1)
( ) (9 2 3 1 4 4 6 7)
( ) (9 3 2 5 6 7 4 1)
( ) (9 3 2 5 6 1 4 7)
( ) (9 2 3 5 6 7 4 1)

12.下列关于Linux中inode的描述正确的是:
( ) inode包含文件的全部信息
( ) inode不会消耗硬盘空间
( ) 文件目录没有对应的inode信息
( ) 多个文件能指向同一个inode
( ) inode中包含有文件名的信息
( ) 移动或者修改文件会生成新的inode

13. A和B两个团队在合作p项目,B团队做p项目子项目p1,A团队做子项目p2,p2部分依赖于p1,A和B的主管不是同一个人,后来p1项目衍生出来一个附属项目s,B团队做了一段时间后,B团队由于有其他紧急项目B团队的主管M让B团队的兄弟团队C团队做s项目,同时p1项目也调走了几个人,A团队不开心,这干扰了A团队在p2项目中的项目进度,而且A团队由于之前跟C团队合作不顺畅,不是很认可C团队的能力。A团队以下做法中最不恰当的是:
( ) 自己加大投入,接管BC团队的所有工作
( ) 私下向大boss告状,质疑B团队的合作精神以及C团队的能力
( ) 与主管M理论,要求B团队充分重视p项目,加强p2和s项目的投入,反对C团队加入
( ) 放弃p项目,从项目中撤出所有人员,转去做其他项目
( ) 将BC团队召集在一起沟通,让他们改变计划,确保p计划顺利完成
( ) 重新制定项目计划,引入自己认可的D团队接手B团队的所有任务

14.下面关于无线开发论述错误的是?
( ) 无线开发需要特别关注应用的稳定运行和良好体验
( ) 虽然近来移动设备的性能提升明显,但目前无线开发仍需要重点关注内存,线程等系统资源的合理使用
( ) Hybride技术是一种兼顾原生体验实现快速迭代的无线应用开发方式
( ) 使用C/C++语言可以用来开发跨平台(iOS,Android)的功能库
( ) Flex作为一种网页布局方案,同样被应用在ReactNative,Weex等无线方案中
( ) Instrument是Android中用于性能优化的调试工具

15.以下对L0,L1,L2正则项描述不正确的是:
( ) L0正则化表示非零参数的个数
( ) L1正则化表示各个参数绝对值之和
( ) L2正则化表示各个参数的平方的和的开方值
( ) L1是光滑连续的
( ) L1范数可以看做是L0凸函数近似
( ) L1范数会使权值稀疏

16.公司某项目有A,B,C共3位工程师,一个java开发工程师,一个前端工程师,一个测试工程师。C的入职年限比测试工程师长,A和前端开发工程师不是同一年入职,前端开发工程师比B晚入职。根据上面的描述,可以推出以下哪个结论:
( ) A是java开发工程师,B是前端开发工程师,C是测试工程师
( ) A是前端开发工程师,B是java开发工程师,C是测试工程师
( ) A是前端开发工程师,B是测试工程师,C是java开发工程师
( ) A是测试工程师,B是java开发工程师,C是前端开发工程师
( ) A是java开发工程师,B是测试工程师,C是前端开发工程师
( ) A是测试工程师,B是前端开发工程师,C是java开发工程师

17. 36辆赛车参加比赛,赛车车速是定值,但每个赛车车速各不相同。当前只有6个赛道,无法计时,每场只能知道6辆车的相对快慢,请问最少几场比赛可以找出36辆车速度最快的前3名?
( ) 6场
( ) 7场
( ) 8场
( ) 9场
( ) 10场
( ) 11场

18. MySQL是常用的数据库,找出以下错误的表述
( ) MyISAM和InnoDB数据存储引擎都是用B+TREE索引
( ) PRIMARY KEY一定是唯一索引
( ) HASH索引的性能一定优于BTREE索引
( ) 使用多列索引时,如果查询条件没有指定索引的第一列则不用索引
( ) 使用普通单列索引时,如果查询条件中带有函数则无法使用到索引
( ) InnoDB存储引擎,尽量采用自增字段做主键的性能更好

19. 设一棵完全二叉树共有799个结点,则该二叉树中的叶子结点数为:
( ) 398
( ) 399
( ) 400
( ) 401
( ) 402
( ) 403

20. 以下关于stl容器说法错误的是()
( ) vector存储使用连续内存,当push_back超出所拥有内存上限时,会发生数据的整体复制迁移
( ) list存储内存不连续,其插入、删除性能好于vector,但不能像vector一样随机访问
( ) map作为KV结构,底层使用Hash表存储数据,随机访问时间复杂度接近O(1)
( ) set中不允许存储相同的值,需要查找元素的时间复杂度为O(logn)
( ) 自定义对象如要放到容器里,需要实现拷贝构造函数
( ) string可以当成char容器来使用,支持常见容器操作,且swap操作的时间复杂度与长度无关

在线编程

【1】做股票的人总会忍不住幻想:如果知道明天怎样就好了。那么问题来了,如果打开上帝视角,你最好能做到怎样?
真实世界的股票交易规则太复杂,我们这里做一些简化。首先我们假设有N个股票和M个交易期。
可以认为在单个交易期内所有股票的价格都是恒定的。股票卖出需要缴纳交易额的P倍的印花税。股票可以零碎地买卖,即,你买个0.01股也是可以的。
我们这个市场里没有停牌,没有休市,没有涨停跌停,没有买空卖空,没有分红,而且股票价格也不会跌到零。

举个例子,假设你用手里的一元钱买了个股票。这个股票第一期价格1元/股,你买入之后手上有1股股票和0元现金。
这个股票在第二期涨到2元/股,那么你这时卖出1股就获得了2元(税前),扣除10%的印花税,你手上没有股票却有1.8元现金。

如果你在一开始有1元现金,在M个交易期之后,你最多能持有多少现金?

编程说明
编译器版本: gcc 4.8.4
请使用标准输入输出(stdin,stdout) ;请把所有程序写在一个文件里,勿使用已禁用图形、文件、网络、系统相关的头文件和操作,如sys/stat.h , unistd.h , curl/curl.h , process.h

时间限制: 1S (C/C++以外的语言为: 3 S)
内存限制: 64M (C/C++以外的语言为: 576 M)

输入:
第一行是两个正整数N和M以及一个浮点数P。随后是M行,每行N个浮点数,代码某期(行)内某股票(列)的价格。

输出:
M期后你持有的现金,一个精确到小数点后一位的浮点数。

输入范例:
1 2 0.1
1
2

输出范例:
1.8

【2】多多岛上有很多小火车, 在提茅斯机房由原来的放射性火车库排列改成了新的车库,每个车库只能存放一辆小火车,每个小火车进到车库只能是单行。每个小火车出车库由一个天车把移动钢轨放到车库前,然后该列上的小火车从下而上优先出库。你能帮胖总管实现火车出站调度吗?

编程说明
编译器版本: gcc 4.8.4
请使用标准输入输出(stdin,stdout) ;请把所有程序写在一个文件里,勿使用已禁用图形、文件、网络、系统相关的头文件和操作,如sys/stat.h , unistd.h , curl/curl.h , process.h

时间限制: 1S (C/C++以外的语言为: 3 S)
内存限制: 64M (C/C++以外的语言为: 576 M)

输入:

#include <map>
#include <vector>
#include <queue>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;
/* a / \ b c / \ / \ d e f g \ / \ h j i \ k \ l //层级遍历
a:托马斯(Thomas) b:艾德华(Edward) c:亨利(Henry) d:高登(Gordon) e:詹姆士(James) f:培西(Percy) g:托比(Toby)
h:达克(Duke) j:唐纳德&道格拉斯(Donald&Douglas) j:奥利佛(Oliver) k:亚瑟(Arthur) l:艾蜜莉(Emily) */struct BT
{
int key;
BT *l, *r;
};BT* create_n(int key)
{}bool train_schedule(BT* rt, int index)
{if (!rt) return false;map<int, string> m_train;m_train[0] = "Thomas";m_train[1] = "Edward";m_train[2] = "Henry";m_train[3] = "Gordon";m_train[4] = "James";m_train[5] = "Percy";m_train[6] = "Toby";m_train[7] = "Duke";m_train[8] = "Donald&Douglas";m_train[9] = "Oliver";m_train[10] = "Arthur";m_train[11] = "Emily";
//TODO:write the real train schedule code here return true;
}int main()
{int i = 0;BT *rt = create_n('a');rt->l = create_n('b');rt->r = create_n('c');rt->l->l = create_n('d');rt->l->r = create_n('e');rt->r->l = create_n('f');rt->r->r = create_n('g');rt->r->l->r = create_n('h');rt->r->r->r = create_n('i');rt->r->r->l = create_n('j');rt->r->r->l->r = create_n('k');rt->r->r->l->r->r = create_n('l');std::cin >> i;train_schedule(rt,i);return 0;
}

输出:
输出小火车的出站顺序

输入范例:
1

输出范例:
Emily Donald&Douglas

希望对你有用!
欢迎分享答案。
2017.04.26

2017阿里研发工程师C/C++实习生招聘笔试题相关推荐

  1. 前端实习生笔试_2017携程Web前端实习生招聘笔试题总结

    考察encodeURI encodeURI(), decodeURI()它们都是Global对象的方法. encodeURI()通过将某些字符的每个实例替换代表字符的UTF-8编码的一个或多个转义字符 ...

  2. 数据分析真题日刷 | 网易2018实习生招聘笔试题-数据分析实习生

    上周开始实习,博客更新就缓下来了.这是十天前做的套题了,现在拾起来把它再整理整理. 网易数据分析实习生的笔试题,和校招的题目还是有部分重复的,不过难度也不小. 今日真题 网易2018实习生招聘笔试题- ...

  3. 【牛客】网易2018实习生招聘笔试题——数据分析师实习生解析

    [牛客]网易2018实习生招聘笔试题--数据分析师实习生解析 * 选择题根据牛客网下方讨论整理,三道大题均为自己答案,欢迎大家讨论并给予指正. (https://www.nowcoder.com/te ...

  4. 网易2018实习生招聘笔试题-JAVA开发实习生

    网易2018实习生招聘笔试题-JAVA开发实习生 如何从有数字规律的网址抓取网页并保存在当前目录?假设网址为 http://test/0.xml,其中这个数字可以递增到100. for(int i=0 ...

  5. 2014年实习生招聘之华为实习生招聘笔试题(上机完成)—2014/04/02

    作者:Bryant Lei 出处:http://blog.csdn.net/bryantlei 华为(武汉)今年的实习生招聘的第一轮选拔是上机测试,其平台类似于常见的编程网站,即用户提交程序,由系统测 ...

  6. 华为 2017 实习生招聘笔试题

    最近几年HUAWEI的利润日胜一日,所以雇员价格也是水涨船高.本次网上编程时间是2017年3月17日晚上7点,共3个小编程题 题目一太简单了~~,就是把控制台输入的字符串小写转大写,忽略非字母字符. ...

  7. 2020阿里实习生招聘笔试题

    题目1 小强有n个养鸡场,第i个养鸡场初始有a[i]只小鸡,小强的每个养鸡场每天早上都会增加k只小鸡,到了下午小强会把鸡最多的鸡场卖掉一半鸡,那么小强想知道m天后他所有养鸡场一共有几只鸡. 第一行输入 ...

  8. 2011阿里巴巴集团实习生招聘笔试题 CC++

    答案为自己整理的,欢迎批评指正. 公共题 选择题(每题5分) 1. 若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是(      ) A:9    B:11     C:12     ...

  9. 【笔试or面试】UC2014实习生招聘笔试题

    今晚参加了UC的实习生笔试,本着练练的心态去参加,还是被虐了,还是因为基础不扎实啊.在这里总结一下笔试的题,为后来的笔试和面试做下积累. 1.首先总结下最后一道编程题,当时思考了挺久的.给出一个整数数 ...

最新文章

  1. struts tags 学习
  2. 抽象类 VS 接口 (3)
  3. getchar()和EOF
  4. URL Loading System 概览
  5. linux chattr修改文件属性,linux chattr(改变文件属性)
  6. python创建person类用printinfo方法_Python学习期刊Day11类和对象(2),日记,与,下
  7. mysql 协议的processInfo命令包及解析
  8. 【Java数据结构】顺序存储的二叉树
  9. HAProxy安装和配置大全
  10. window 快捷键
  11. python资料-Python 有哪些好的学习资料或者博客?
  12. 淘宝网用什么样的服务器
  13. UWB定位技术原理图解
  14. 西安邮电大学计算机学院教师,西安邮电大学计算机学院
  15. [完全版] Windows安装与配置Git cz (commitizen)
  16. 【JZOJ3337】wyl8899的TLE【二分】【哈希】
  17. 微信小程序~云开发Demo 实现数据的添加、查询和分页实现
  18. 光伏组件高温自燃?台湾一屋顶光伏电站起火
  19. 干支纪年法简便算法_2020年天干地支对照表,干支日历表
  20. ROS中的分布式通信

热门文章

  1. Android入门教程 Android开发环境搭建【详细教程】
  2. iis远程访问mysql_通过IIS不能连接远程数据库的问题
  3. 基于SpringBoot的高并发秒杀(限时秒杀)
  4. SLAM本质剖析-Boost
  5. kermit使用总结
  6. Unity 人形动画、动画切割、Animator
  7. 将 Cpar 文件导入 2019 版的 Carsim 后,无法打开 video+plot 是什么问题?
  8. 如何设计好一条推送通知
  9. 禁用U盘!隐藏盘符和禁止查看
  10. SqlHelper的使用