《网易2020笔试- Java 开发工程师(提前批)》由会员分享,可在线阅读,更多相关《网易2020笔试- Java 开发工程师(提前批)(14页珍藏版)》请在金锄头文库上搜索。
1、1.单选题电子邮件系统中,用户代理把邮件发往发送发邮件服务器、发送方邮件服务器把邮件发往接收方邮件服务器以及用户使用用户代理从接收方邮件服务器上读取邮件时,使用的协议可能是以下的哪种情形()A.IMAP、SMTP、POP3B.MIME、SMTP、POP3C.SMTP、IMAP、POP3D.SMTP、SMTP、IMAP2.main程序输出:123456789101112131415161718192021222324interface Alpha void f();class Betaimplements Alpha public void f() System.out.println(Beta
2、.f();public void g() System.out.println(Beta.g();public class Main public static void main(String args) Alpha a =new Beta();a.f();System.out.println(a.getClass().getName();try Beta b = (Beta)a;b.g();catch (Exception e) System.out.println(Error);A.AlphaErrorB.Beta.f()BetaBeta.g()C.AlphaBeta.g()D.Beta
3、.f()BetaError3.下列最短路径算法的叙述中正确的是()A.Dijkstra算法通常用于求每一对顶点间的最短路径;B.Dijkstra算法不允许图中带有负权值的边,而Floyd算法则可以适用;C.Floyd算法通常用于求某一顶点到其他各顶点的最短路径;D.Floyd算法允许有包含负权值的边组成的回路,而Dijkstra算法不允许;4.判断一个数组或序列是正序,倒序还是乱序,需要我们将这个数组完整的遍历一遍通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入的排序算法是()A.选择排序B.希尔排序C.插入排序D.归并排序5.队列是一种特殊的线性表,特殊之处
4、在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表,进行插入操作的端称为队尾,进行删除操作的端称为队头,若用一个大小为6的数组来实现循环队列,数组下标为0,5,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?()A.1 和 5B.2 和 4C.4 和 2D.5 和 16.信号量是对一个共享资源访问的控制,表示一个事件的发生并且让两个任务同步,有三个进程共享一程序段,而每次最多允许两个进程进入该程序段,则信号量的取值范围是()?A.2,1,0,-1
5、B.3,2,1,0C.2,1,0,-1,-2D.1,0,-1,-27.下面关于JavaNIO提供了与标准IO不同的IO工作方式描述错误的是A.NIO的非阻塞特性是通过锁来实现的B.标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作C.JavaNIO可以让你异步的使用IO,例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情D.JavaNIO引入了选择器的概念,选择器用于监听多个通道的事件8.读程序,选出输出结果12345678910public static void main(String args) Nowcoder no
6、wcoder =new Nowcoder();int i =0;nowcoder.inc(i);i = i+;System.out.println(i);void inc(int i) i+;A.0B.1C.2D.39.ls-l命令有以下输出,描述正确的是A.default.etcd为可执行文件,只能被root执行B.go目录占的磁盘空间大小为4KBC.install-client.sh脚本可以用./install-client.sh命令执行D.go文件夹可以被任意用户浏览10.访问记录visit表中包含日期date,用户user_id,访问的页面url3个字段,以下哪个选项不能计算2019-
7、03-11这一天访问过页面的所有用户数A.SELECT count(user_id) FROM (SELECT user_id FROM visit WHERE date = 2019-03-11 GROUP BY user_id) fB.SELECT count(user_id) FROM (SELECT DISTINCT user_id FROM visit WHERE date = 2019-03-11) fC.SELECT count(DISTINCT user_id) FROM visit WHERE date = 2019-03-11D.SELECT count(user_id)
8、FROM visit WHERE date = 2019-03-11 GROUP BY date11.题目描述java数据库开发中怎么理解两个方法数据库操作在一个事务里面,事务和数据库连接池有什么关系,JTA事务和普通事务的区别12.问答题题目描述在并发编程有个名称叫线程安全,怎么理解一个类是线程安全13.编程题序列交换时间限制:C/C+ 1秒,其他语言2秒空间限制:C/C+ 256M,其他语言512M小易给你一个包含n个数字的数组。你可以对这个数组执行任意次以下交换操作:对于数组中的两个下标i,j(1=i,j=n),如果为奇数,就可以交换和。现在允许你使用操作次数不限,小易希望你能求出在所有
9、能通过若干次操作可以得到的数组中,字典序最小的一个是什么。输入描述:第一行一个整数n;第二行n个整数,表示数组,每两个数字之间用一个空格分隔。输入保证。输出描述:n个整数,每两个整数之间用一个空格分隔,表示得到的字典序最小的数组。输入例子1:47 3 5 1输出例子1:7 3 5 1输入例子2:1053941 38641 31525 75864 29026 12199 83522 58200 64784 80987输出例子2:12199 29026 31525 38641 53941 58200 64784 75864 80987 8352214.编程题数字圆环时间限制:C/C+ 1秒,其他语
10、言2秒空间限制:C/C+ 256M,其他语言512M小易有一个长度为n的数字数组, ,。问你是否能用这n个数字构成一个环(首尾连接),使得环中的每一个数字都小于它相邻的两个数字的和(每个数字都必须使用并且每个数字只能使用一次)。输入描述:第一行包含一个整数t(1=t=10),表示测试用例的组数。每个测试用例输入如下:第一行一个整数n,表示数字的个数;第二行n个整数, , , ,每两个整数之间用一个空格分隔。输入数据保证。输出描述:输出应该包含t行,对于每组用例,若能输出YES,否则输出NO。输入例子1:1517 6 17 11 17输出例子1:YES输入例子2:131 2 4输出例子2:NO1
11、5.编程题小易的英语软件时间限制:C/C+ 1秒,其他语言2秒空间限制:C/C+ 256M,其他语言512M小易是班级的英语课代表, 他开发了一款软件开处理他的工作。小易的软件有一个神奇的功能,能够通过一个百分数来反应你的成绩在班上的位置。“成绩超过班级 .% 的同学”。设这个百分数为 p,考了 s 分,则可以通过以下式子计算得出 p:p = ( 分数不超过 s 的人数 - 1)班级总人数突然一天的英语考试之后,软件突然罢工了,这可忙坏了小易。成绩输入这些对于字写得又快又好的小易当然没有问题,但是计算这些百分数这庞大的数据量吓坏了他。于是他来找到你,希望他编一个程序模拟这个软件:给出班级人数
12、n,以及每个人的成绩,请求出某几位同学的百分数。输入描述:第一行一个整数 n,表示班级人数。 第二行共 n 个自然数,第 i 个数表示第 i 位同学的成绩 。 第三行一个整数 q,表示询问的次数。 接下来 q 行,每行一个数 x,表示询问第 x 位同学的百分数。输出描述:输出应有 q 行,每行一个百分数,对应每一次的询问。为了方便,不需要输出百分号,只需要输出百分号前的数字即可。四舍五入保留六位小数即可。输入例子1:3100 98 873123输出例子1:66.66666733.3333330.00000016.编程题序列维护时间限制:C/C+ 3秒,其他语言6秒空间限制:C/C+ 256M,其他语言512M小易在维护数据的时候遇到一个需求,具体来说小易有一系列数据,这些数据了构成一个长度为n的数字序列,接下来小易会在这个序列上进行q次操作。每次操作有一个查询的数字x,小易需要将序列数据中所有大于等于x的数字都减一,并输出在本次操作中有多少个数字被减一了。小易犯了难,希望你能帮帮他。输入描述:第一行n,q,表示数字个数和操作个数。 接下来一行n个数表示初始的数字。 接下来q行,每行一个数,表示指定的数字x。,输出描述:对于每个询问,输出一个数字表示答案输入例子1:4 31 2 3 4431输出例子1:124输入例子2:3 2 1 2 3 3 3输出例子2:10