美丽联合2018校招基础平台-基础后端开发工程师笔试

关于排序算法下列说法正确的是

快速排序在被排序的数据完全无序时最易发挥其长处
快速排序是稳定的排序算法
堆排序最好情况和最坏情况下时间复杂度不同
快速排序所需的辅助空间少于堆排序

正确答案: A   你的答案: A (正确)

下面关于Linux文件系统的inode描述错误的是

正确答案: A   你的答案: D (错误)

inode和文件是一一对应的
inode描述了文件大小和指向数据块的指针
通过inode可获得文件占用的块数
通过inode可实现文件的逻辑结构和物理结构的转换

解析:

一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。

但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。

这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;

但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)。

在TCP/IP中,ICMP属于哪一层协议?

正确答案: A   你的答案: D (错误)

ip
ppp
udp
tcp

解析:

ICMP是IP协议不可分割的一部分,所以ICMP是属于网络层的一个协议.

0.6332 的数据类型是()

正确答案: B   你的答案: B (正确)

float
double
Float
Double

灰度等级为256级,分辨率为1024*1024的显示器,至少需要的帧缓存容量为()

正确答案: C   你的答案: C (正确)

4MB
2MB
1MB
512KB

解析:1024*1024=1Mbit,1Mbit*8=1MB(256灰度用8比特表示),256 = 2^8 八位

设在一棵度数为3的树中,度数为3的结点数有2个,度数为2的结点数有1个,度数为1的结点数有2个,那么度数为0的结点数有( )个。

正确答案: C   你的答案: C (正确)

4
5
6
7

解析:从子节点的角度,共有节点数为:
度数为3的子节点数+度数为2的子节点数+度数为1的子节点数+根节点数=3*2+2*1+1*2+1=11;
从父节点的角度,共有节点数为:度数为3的节点数+度数为2的节点数+度数为1的节点数+度数为0的节点数=2+1+2+x;
解得x=6
小明的游戏账号密码是一串8位数字,只记前面5个数字为38034.但他肯定,后面3个数字全是奇数,最后一个数字是5,且后3个数字中相邻数字不相同,小明至少要试多少次才能保证登入()

正确答案: C   你的答案: C (正确)

20
18
16
15

入栈序列是:a1,a3,a5,a2,a4,a6,出栈序列是:a5,a4,a2,a6,a3,a1,则栈的容量最小是()

正确答案: D   你的答案: D (正确)

5
3
6
4

500张骨牌整齐地排成一行,按顺序编号为1、2、3、......、499、500。第一次拿走所有奇数位置上的骨牌,第二次再从剩余骨牌中拿走奇数位置上 的骨牌,以此类推。请问最后剩下的一张骨牌的编号是?

正确答案: C   你的答案: C (正确)

128
250
256
500

解析:循环除2为偶的且是最大的,
除2为偶的有:2,4,8,16,32,64,128,256。
继续有:4,16,64,256
继续有:16,256
最后:256

Linux 文件权限一共 10 位长度,从前数第 5-7 位表示的内容是()

正确答案: B   你的答案: B (正确)

其他用户的权限
文件所有者所在组的权限
文件类型
文件所有者的权限

Linux用户分为:拥有者、组群(Group)、其他(other) linux中的文件属性过分四段,如 -rwzrwz---
第一段 - 是指文件类型 表示这是个普通文件
文件类型部分
-为:表示文件
d为:表示文件夹 
l为:表示连接
b为:表示里面可以供存储周边设备
c为:表示里面为一次性读取装置
第二段(2-4) rwz 是指拥有者具有可读可写可执行的权限 类似于windows中的所有者权限比如 administrator 对文件具有 修改、读取和执行权限
第三段(5-7) rwz 是指所属于这个组的成员对于这个文件具有,可读可写可执行的权限 类似于windows中的组权限比如administrators组,属于这个组的成员对于文件的都有 可读可写可执行权限
第四段 --- 是指其他人对于这个文件没有任何权限 类似于windows中的 anyone 一样就是说所有人对着个文件都会有一个怎样的权限

面向对象程序设计语言的三个基本特征是?(   )

正确答案: D   你的答案: D (正确)

封装、接口和多态
封装、继承和动态
跨平台、接口和动态
封装、继承和多态

指出以下程序运行的结果是

public class Example{String str=new String("good");char[]ch={'a','b','c'};public static void main(String args[]){Example ex=new Example();ex.change(ex.str,<a href="http://ex.ch/">ex.ch);System.out.print(ex.str+" and ");System.out.print(ex.ch);}public void change(String str,char ch[]){str="test ok";ch[0]='g';}}

正确答案: B   你的答案: C (错误)

good and abc
good and gbc
tst ok and abc
tst ok and gbc以下代码执行后输出结果为:
public class Test{public static Test t1 = new Test();{System.out.println("blockA");}static{System.out.println("blockB");}public static void main(String[]
args){Test t2 = new Test();}}

计算机系统中判别是否有中断事件发生应是在()

正确答案: B   你的答案: D (错误)

进程切换时
执行完一条指令后
执行P 操作后
由用户态转入核心态时

避免死锁的一个著名的算法是( )
正确答案: B   你的答案: B (正确)

先入先出法
银行家算法
优先级算法
资源按序分配法

某系统中有 3 个并发进程,都需要同类资源 4 个,试问该系统不会发生死锁的最少资源数是:

正确答案: B   你的答案: B (正确)

9
10
11
12

下面有关共享内存,说法不正确的是?

正确答案: D   你的答案: D (正确)

共享内存和使用信号量一样,属于进程间通信的一种方式。
使用shmget函数来创建共享内存
尽管每个进程都有自己的内存地址,不同的进程可以同时将同一个内存页面映射到自己的地址空间中,从而达到共享内存的目的
共享内存提供了同步机制,在第一个进程结束对共享内存的写操作之前,会有自动机制可以阻止第二个进程开始对它进行读取

假设如下代码中,若t1线程在t2线程启动之前已经完成启动。代码的输出是()

 public static void main(String[]args)throws Exception {final Object obj = new Object();Thread t1 = new Thread() {public void run() {synchronized (obj) {try {obj.wait();System.out.println("Thread 1 wake up.");} catch (InterruptedException e) {}}}};t1.start();Thread.sleep(1000);//We assume thread 1 must start up within 1 sec.Thread t2 = new Thread() {public void run() {synchronized (obj) {obj.notifyAll();System.out.println("Thread 2 sent notify.");}}};t2.start();}

正确答案: B   你的答案: C (错误)

Thread 1 wake up<br>Thread 2 sent notify.
Thread 2 sent notify.<br>Thread 1 wake up
A、B皆有可能
程序无输出卡死
解析:以下A代表t1,B代表t2。
当B调用obj.notify/notifyAll的时候,B正持有obj锁,因此,A1,A2,A3虽被唤醒,但是仍无法获得obj锁。直到B退出synchronized块,释放obj锁后,A1,A2,A3中的一个才有机会获得锁继续执行。当B调用obj.notify/notifyAll的时候,B正持有obj锁,因此,A1,A2,A3虽被唤醒,但是仍无法获得obj锁。直到B退出synchronized块,释放obj锁后,A1,A2,A3中的一个才有机会获得锁继续执行。

关于TCP可靠数据传输服务的论述,正确的是(  )
正确答案: D   你的答案: B (错误)

只有当超时事件发生,TCP才会执行重传
每次TCP重传时,都重新为定时器设置一个固定时间间隔
TCP接收方不需要对乱序到达的分组进行确认
一旦收到3个冗余ACK,TCP就执行快速重传
解析:

a 有差错分组也将重传 差错由tcp差错检测完成 rdt2.0开始

b 倒计数定时器,发送方需要每次发送一个分组就启动一个定时器且可以响应定时器的中断和终止定时器  而不是重新射到时间  rdt2.2

c 重传需要处理冗余分组 seq用来判断是否是重传

d

主要的考虑还是要区分包的丢失是由于链路故障还是乱序等其他因素引发。

两次duplicated ACK时很可能是乱序造成的!三次duplicated ACK时很可能是丢包造成

的!四次duplicated ACK更更更可能是丢包造成的。丢包肯

定会造成三次duplicated ACK!综上是选择收到三个重复确认时窗口减半效果最好

通过POP3 协议接收邮件时,使用的传输层服务类型是()

正确答案: D   你的答案: D (正确)

无连接不可靠的数据传输服务
无连接可靠的数据传输服务
有连接不可靠的数据传输服务
有链接可靠的数据传输服务

下列关于闪存(Flash Memory)的叙述中,错误的是( )

正确答案: A   你的答案: D (错误)

信息可读可写,并且读、写速度一样快
存储元由 MOS 管组成,是一种半导体存储器
掉电后信息不丢失,是一种非易失性存储器
采用随机访问方式,可替代计算机外部存储器
解析:闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位(注意:NOR Flash 为字节存储。),区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,闪存与EEPROM不同的是,EEPROM能在字节水平上进行删除和重写而不是整个芯片擦写,而闪存的大部分芯片需要块擦除。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本程序)、PDA(个人数字助理)、数码相机中保存资料等。

下面代码会输出什么()

int main(int argc, char **argv){int a[4] = {1, 2, 3, 4};int *ptr = (int *)(&a + 1);printf("%d",*(ptr - 1));}

正确答案: D   你的答案: A (错误)

1
2
3
4
解析:a指向数组a[0]的地址,&指向a[]的地址,他们的值是相同的,但是相加不同,a+1表示之下下一位,等于a+sizeof(int),&a+1表示指向下一个a[]数组,即等于a+sizeof(a)

执行如下代码段后,变量s1引用的字符串值是(    )

String s1 = "ABCD";String s2 = "1234";System.out.println(s1+ s2); 

正确答案: A   你的答案: A (正确)

ABCD
1234
ABCD1234
1234ABCD

以下方法,哪个不是对add方法的重载?

public class Test{public void add( int x,int y,int z){}}

正确答案: B   你的答案: B (正确)

public int add(int x,int y,float z){return 0;}
public int add(int x,int y,int z){return 0;}
public void add(int x,int y){}
都不是

在java类设计中,类的成员变量要求仅仅能够被同一package下的类访问,请问应该使用下列哪个修饰词()

正确答案: D   你的答案: A (错误)

protected
public
private
不需要任何修饰词

解析:同一个类 同一个包 不同包的子类 不同包的非子类
private √
default √ √
protected √ √ √
public √ √ √ √

下面有关forward和redirect的描述,错误的是()

正确答案: A   你的答案: A (正确)

redirect默认将产生301 Permanently moved的HTTP响应
执行forward时,浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址
执行redirect时,服务器端告诉浏览器重新去请求地址
forward是内部重定向,redirect是外部重定向
解析:redirect默认是302暂时性跳转。301永久

如果您想列出当前目录以及子目录下所有扩展名为“.txt”的文件,那么您可以使用的命令是()

正确答案: C   你的答案: D (错误)

ls -d.txt
ls *.txt
find -name “*.txt”
find “.txt”

二分查找要求节点 ()

正确答案: A   你的答案: A (正确)

有序、顺序存储
有序、链接存储
无序、顺序存储
无序、链接存储

用直接插入排序方法对下面4个序列进行排序(由小到大),元素比较次数最少的是()

正确答案: C   你的答案: C (正确)

94,32,40,90,80,46,21,69
32,40,21,46,69,94,90,80
21,32,46,40,80,69,90,94
90,69,80,46,21,32,94,40

现有1G数据需要排序,计算资源只有1G内存可用,下列排序方法中最可能出现性能问题的是____。

正确答案: C   你的答案: C (正确)

堆排序
插入排序
归并排序
冒泡排序

下列选项中,降低进程优先级的合理时机是?

正确答案: B   你的答案: B (正确)

进程刚完成I/O,进入就绪列队
进程的时间片用完
进程从就绪态转为运行态
进程长期处于就绪队列中
解析:

a 他已经进入就绪了

c 人家刚运行,你就降低,有可能会被抢断

d 原因 长期在就绪也就是等待,在不升高优先级就要饿死了

关于抽象类叙述正确的是? ( )

正确答案: B   你的答案: B (正确)

抽象类不能实现接口
抽象类必须有“abstract class”修饰
抽象类必须包含抽象方法
抽象类也有类的特性,可以被实例化
解析:一个类中含有抽象方法,则这个类为抽象类,一个类为抽象类,可以没有抽象方法。

引入二叉线索树的目的是()

正确答案: A   你的答案: A (正确)

加快查找结点的前驱或后继的速度
为了能在二叉树中方便地进行插入与删除
为了能方便地找到双亲
使二叉树的遍历结果唯一

用邻接表表示图进行广度优先遍历时,通常是采用()来实现算法的

正确答案: B   你的答案: B (正确)

队列

在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是

正确答案: D   你的答案: A (错误)

-m
-d
-f
-p

下面有关内核线程和用户线程说法错误的是?

正确答案: C   你的答案: A (错误)

用户线程因<br>I/O 而处于等待状态时,整个进程就会被调度程序切换为等待状态,其他线程得不到运行的机会
内核线程只运行在内核态,不受用户态上下文的影响
用户线程和内核线程的调度都需要经过内核态
内核线程有利于发挥多处理器的并发优势,但却占用了更多的系统开支
解析:用户线程不需要,不然golang就没有存在的意义了

视图是一个“虚表”,视图的构造基于(    )

正确答案: C   你的答案: C (正确)

基本表
视图
基本表或视图
数据字典

大整数845678992357836701转化成16进位制的表示,最后两位字符是(  )

正确答案: D   你的答案: B (错误)

8B
AB
EF
9D

解析:100%4 = 0
1000%8 = 0

10000%16 = 0

(84567899235783*10000)

(845678992357830000+6701)
845678992357836701%16 = 6701%16 = 701%16 = 13
所以最后一位是D

Java中用正则表达式截取字符串中第一个出现的英文左括号之前的字符串。比如:北京市(海淀区)(朝阳区)(西城区),截取结果为:北京市。正则表达式为()

正确答案: A   你的答案: C (错误)

&quot;.*?(?=\\()&quot;
&quot;.*?(?=\()&quot;
&quot;.*(?=\\()&quot;
&quot;.*(?=\()&quot;桌子上有 4 个杯子,每个杯子上写着一句话:第一个杯子:“所有的杯子中都有水果糖”;第二个杯子:“本杯中有苹果”;第三个杯子:“本杯中没有巧克力”;第四个杯子:“有些杯子中没有水果糖”。如果其中只有一句真话,那么以下哪项为真?( )

正确答案: D   你的答案: D (正确)

所有的杯子中都有水果糖
所有的杯子中都没有水果糖
所有的杯子中都没有苹果
第三个杯子中有巧克力

在一个java程序的内存中,存在一个复杂的嵌套的对象A;现在我们需要将A中所有信息,通过TCP方式传输二进制流到server端。考虑到server可反向转化成对象A和以及网络流量尽量小,请问如下哪种方案的描述是正确和可行的

正确答案: D   你的答案: D (正确)

先通过protobuf序列化成一个字符串,转化成二进制流,然后通过lz4压缩成需要传输的二进制流
先通过gzip压缩成一个字符串,转化成二进制流,然后通过json序列化成需要传输的二进制流
先通过xml序列化成一个字符串,转化成二进制流,然后通过hessian压缩成需要传输的二进制流
先通过json序列化成一个字符串,转化成二进制流,然后通过snappy压缩成需要传输的二进制流

在HTTP协议的网络编程中,经常会涉及到『长连接』、『短连接』、『长轮询』等概念,关于这些以下哪种说法不正确:

正确答案: C   你的答案: B (错误)

长连接需要定期保活机制,否则容易出现断连的问题
长轮询可以基于长连接实现,也可以是短连接实现
在网络调用量很大的时候,短连接因为资源占用少,因而相对长连接性能更好
长短连接的创建的基本过程是一致的
解析:c 频繁创建Socket 性能并不好

对于Linux的fsync,下列哪个说法是正确的?

正确答案: A   你的答案: B (错误)

文件的脏页以及metadata会同步到存储设备
文件的脏页会同步到存储设备,但不包含文件的metadata
新同步的文件内容一定不会丢失
fsync比fdatasync的性能更好
解析:fsync除了同步文件的修改内容(脏页),fsync还会同步文件的描述信息(metadata(B错),包括size、访问时间st_atime & st_mtime等等),因为文件的数据和metadata通常存在硬盘的不同地方,因此fsync至少需要两次IO写操作,而fdatasync不用同步metadata,所以少一次IO写操作,更快(D错)

编程题

今年的第几天?

输入年、月、日,计算该天是本年的第几天。

输入描述:

包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。

输出描述:

输入可能有多组测试数据,对于每一组测试数据,

输出一个整数,代表Input中的年、月、日对应本年的第几天。

输入例子1:

1990 9 20

2000 5 1

输出例子1:

263

122

code:

public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int yead = in.nextInt();int month = in.nextInt();int day = in.nextInt();int[] days = {31,28,31,30,31,30,31,31,30,31,30,31};int nums= 0;for(inti=0;i<month-1;i++){nums +=days[i];}if(month>2){if(isLeapYear(yead)){nums+=1;}}System.out.println(nums+day);}public static boolean isLeapYear(intyear){if(year%4==0&&year%100!=0){return true;}else if(year % 400==0){returntrue;}return false;}
}

美丽联合2018校招基础平台-基础后端开发工程师笔试相关推荐

  1. 七牛2018春季校园招聘后端开发工程师笔试经验

    笔试公司:上海七牛信息技术有限公司 笔试岗位:后端开发工程师 笔试时间:2018年4月14日14:00-15:30 笔试形式:牛客网在线做题 笔试回忆: 笔试共分为不定项选择和问答两部分,不定项选择1 ...

  2. java后端开发工程师笔试_后端开发工程师面试参考

    为什么要写这篇文章 后端开发工程师的知识体系大而杂,从Java基础到算法.数据库.操作系统.网络.中间件.系统设计等都可以理解为后端的射程.下定决心开始准备面试时,可谓是千头万绪无从下手.我的开始源于 ...

  3. 字节跳动2020春招后端开发工程师笔试复盘

    1.题目类型 4道编程题 2.注意 在牛客网界面做,可切出ide,自带样例检测,秒出结果(以case通过率出结果) 3.编程题 (1) (2) (3) (4)

  4. 数据分析真题日刷 | 商汤科技2018校招C++/算法开发/大数据/后端/运维/测试/数据挖掘开发工程师笔试第二场

    断了大半个月没有刷题,进入「数据分析真题日刷」系列第13篇 . 今日真题 商汤科技2018校招C++/算法开发/大数据/后端/运维/测试/数据挖掘开发工程师笔试第二场 (来源:牛客网) 题型 客观题: ...

  5. IT:后端进阶技术路线图(初级→中级→高级)、后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介、技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略

    IT:后端进阶技术路线图(初级→中级→高级).后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介.技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略 目录 后端 ...

  6. 【计算机就业-后端开发工程师】校招想去互联网公司担任后端开发工程师该怎么准备

    前言 hello大家好,我本次分享的主题是计算机专业校招想去互联网公司担任后端开发工程师该怎么准备,比如说计算机专业投什么岗,笔试面试需要准备什么.我将结合自己以及身边小伙伴们的秋招经历来进行简要的分 ...

  7. 今日头条2018校园招聘后端开发工程师(第二批)编程题 - 题解

    以前做过第三批的题目,今日头条2018校园招聘后端开发工程师(第三批)编程题 - 题解.这一场的题目偏技巧和算法,而第三批的题偏编码.这一场涉及的算法有二分查找.区间动态规划. 原题链接:点这儿. 第 ...

  8. 今日头条2018校园招聘后端开发工程师(第四批)编程题 - 题解

    做过第三批的题目,今日头条2018校园招聘后端开发工程师(第三批)编程题 - 题解和第二批的题目,今日头条2018校园招聘后端开发工程师(第二批)编程题 - 题解. 这一场题目还是挺好玩的,也挺有技巧 ...

  9. 今日头条2018校园招聘后端开发工程师(第三批)编程题 - 题解

    昨天做了下头条的后端开发工程师的编程题,这编码量大啊,两个小时,三个编程题,一个改错题,一个设计题,说实话,很考技术含量,而且编程题中有两个还特别考细心编码,如果两个小时能做三个题,确实非常不错了,写 ...

最新文章

  1. Windows页目录自映射方案
  2. 鸡肋还是革新——Blazor进WinForm
  3. HTML5 address元素
  4. Python+matplotlib绘制等电位面图
  5. 在装有Anaconda的情况下,使用默认的python程序方法
  6. 【unity】解决 2d-extras 的 CustomRuleTileMenu 脚本报错的问题
  7. C编程语言中16位整型数据的取值范围介绍
  8. nginx 安全优化
  9. 6.数据结构 --- 树和二叉树
  10. Win11截图工具在哪里?
  11. MapperReduce初学附加自定义输出的NameWordCount统计
  12. 组织人事领域信息化探索:开启编制、干部、人事一体化管理新模式
  13. iHRM 人力资源管理系统_第7章 POI报表的入门
  14. PMP-项目成本管理
  15. 什么样的资金盘能活一年,还上了热搜?
  16. NOIP2016模拟 星际争霸(二分)
  17. 【Java并发编程实战14】构建自定义同步工具(Building-Custom-Synchronizers)
  18. FZU 1980 AbOr's story
  19. 超详细anaconda安装教程(Mac,Windows,Linux版本)
  20. OGRE3D引擎入门重拾

热门文章

  1. 看我如何复制学院管理员账户并畅游
  2. unity 控制物体移动的三种方法
  3. 一幅趣味漫画,让你读懂Linux内核!
  4. 计算机大赛作品文本,全国创新杯说课大赛计算机应用基础类一等奖作品:毕业展示会策划文案的美化文本和段落的格式设置说课课件...
  5. HTTP模块SuperAgent(轻量级ajaxAPI)
  6. 一个小流氓的色情往事
  7. 大学里,如果你一个人,就请这样生活!
  8. 用计算机听音乐和看电影的ppt,小学信息技术川教版五年级下册第六课 用计算机听音乐和看电影教案...
  9. android 未读信息反复提醒,Android仿微信未读消息数提示显示数字BadgeView大于99条显示99+...
  10. 【矩阵乘法】CDOJ1610 黑红梅方