多益网络春招笔试题收集

单选,填空,问答,编程

一、第一份

文章链接:https://blog.csdn.net/hezuo1181/article/details/82462296

1、java语言不允许使用(指针)访问内存,更不允许(指针数组)访问内存。

2、进程和线程的概念,两者间的区别

  1. 基本概念
  • 进程:是对运行时程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发;
  • 线程是进程的子任务,是CPU调度和分配的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组,指令计数器和处理器状态。每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等等),打开的文件队列和其他内核资源。
  1. 区别
  • 一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程依赖于进程而存在。
  • 进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。(资源分配给进程,同一进程的所有线程共享该进程的所有资源。同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。)
  • 进程是资源分配的最小单位,线程是CPU调度的最小单位;
  • 系统开销: 由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/o设备等。因此,操作系统所付出的开销将显著地大于在创建或撤消线程时的开销。类似地,在进行进程切换时,涉及到整个当前进程CPU环境的保存以及新被调度运行的进程的CPU环境的设置。而线程切换只须保存和设置少量寄存器的内容,并不涉及存储器管理方面的操作。可见,进程切换的开销也远大于线程切换的开销。
  • 通信:由于同一进程中的多个线程具有相同的地址空间,致使它们之间的同步和通信的实现,也变得比较容易。进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。在有的系统中,线程的切换、同步和通信都无须操作系统内核的干预
  • 进程编程调试简单可靠性高,但是创建销毁开销大;线程正相反,开销小,切换速度快,但是编程调试相对复杂。
  • 进程间不会相互影响 ;线程一个线程挂掉将导致整个进程挂掉
  • 进程适应于多核、多机分布;线程适用于多核

3、cookies与session的区别和自己的工作原理

cookie 和session 的区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中

参考文章链接:https://www.cnblogs.com/nieliangcai/p/8864791.html

4、web应用中可能出现的安全问题。

参考文章链接:https://blog.csdn.net/zhusongziye/article/details/83690940

5、

在这里插入图片描述

6、instanceof的用法

在这里插入图片描述
参考文章链接:https://www.cnblogs.com/bkyshichao/p/7090401.html

二、第二套

文章链接:https://blog.csdn.net/nkym61/article/details/94494371?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-8&spm=1001.2101.3001.4242

三、第三套

文章链接:https://ac.nowcoder.com/discuss/151226?type=2

选择

1、一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是( )

A、EDCBA

B、DECBA

C、DCEAB

D、ABCDE

  • C

2、下列TCP连接建立过程描述正确的是:( )

A、服务端收到客户端的SYN包后等待2*ml时间后就会进入SYN_SENT状态

B、服务端收到客户端的ACK包后会进入SYN_RCVD状态

C、当客户端处于ESTABLISHED状态时,服务端可能仍然处于SYN_RCVD状态

D、服务端未收到客户端确认包,等待2*ml时间后会直接关闭连接

  • C
  • 在这里插入图片描述

解释参考链接:https://www.nowcoder.com/questionTerminal/2d5a65326a4c43ffa87ca7bf5ad1a632?toCommentId=129342

3、公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是?

A、1:1联系

B、m:1联系

C、1:m联系

D、m:n联系

- C

4、一个无序整数数组长度为N(N>100),要判断M个不同的整数是否在数组里,当M大于

A、>0

B、>2

C、>2log2N

D、>2N

5、设有n个无序的元素,希望用最快的速度挑选出其中前50个最大的元素,请选择最好的排序法

A、冒泡排序

B、基数排序

C、堆排序

D、快速排序

- C

  • 堆排序算法中,数组最大的元素位于堆顶处,在输出堆项的最大值之后,使得剩余n-1个元素的序列又建成一个堆,则得到n个元素中的次大值。如此反复执行50次,便能得到前50个最大的元素。和其他的相比堆排序只执行了50次,其他的在最坏的情况下都要遍历,所以C。

6、若某表最常用的操作是在最后一个节点之后插入一个节点,则采用( )存储方式最节省运算时间。

A、单链表

B、双链表

C、单循环链表

D、带头节点的双循环链表

- C

7、N的阶乘后面有多少个0?6的阶乘=12345*6=720,720后面有一个0.现在给出一个数N=10000,求N!后面有几个0?

A、2498

B、2499

C、2450

D、2451

  • B

  • 10可以被5整除

    10000/5=2000

    2000/5=400

    400/5=80

    80/5=16

    16/5=3余1
    所以n=2000+400+80+16+3=2499

8、一个无序整数数组长度为N(N>10000),其中整数皆在0到100之间。从小到大打印数组里的数,所需的最小时间复杂度为?

A、O(C)

B、O(N)

C、O(Nlog2N)

D、O(N^2)

  • c

填空

1、2的64次方,它的个位数是

6

2、一个长度为100的循环链表,指针A和指针B都指向了链表中的同一个节点,A以步长为1向前移动,B以步长为3向前移动,一共需要同时移动多少步A和B才能再次指向同一个节点 。

50

3、设int a=3,b=8;在不用临时变量情况下,交换两个数的值。

参考文章:https://www.cnblogs.com/tk091/archive/2012/07/13/2590938.html

4、通常情况下,插入排序、快速排序、堆排序的时间复杂度分别是多少?

二分法插入排序 复杂度 O(nlogn)
快速排序 O(nlogn) 有可能退化
归并排序 O(nlogn) 比较快
堆排序 O(nlogn)最稳定的

5、深度优先搜索一般使用栈结构,广度优先搜索一般使用队列结构。

6、设有一稀疏图G,则G采用邻接表存储较省空间;设有一稠密图G,则G采用领接矩阵存储较省空间。

7、某通信码中只会出现8种字符,其概率分别是0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,若对其进行赫夫曼编码,其赫夫曼树的高度为 。

8、设线性表长度为N,使用冒泡排序,在最坏的情况下比较次数为n(n-1)/2

9、已知有一个关键字数列:(27,23,34,14,1,55,20,19,85,10,68)散列存储在一个哈希表中,若散列函数为H(key)=key%7,并采用链地址法来解决冲突,则在等概率情况下查找成功的平均查找长度为 (精确到小数点后两位即可)

简答题

1、请将以下短文翻译成中文:

Because static data members are not part of individual objects of the class type,they are not defined when we create objects of the class.As a result,they are not initialized by the class’constructors.Moreover,in general,we may not initialize a static member inside the class.Instead,we must define and initialize each static data member outside the class body.Like any other object,a static data member may be defined only once.

元素路径:

2、什么是进程(Process)和线程(Thread)?有何区别?

3、数据库中有一张如下所示的表,表名为sales。表中数据如下表1:

在这里插入图片描述
要求:写一个SQL语句查询出如下表2所示的结果。

在这里插入图片描述
https://my.oschina.net/lhrbest/blog/4631881

4、DNS服务在网络中有什么作用和功能?

DNS 服务器的功能是把域名解析为IP地址。

编程

在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b

class Solution {
    public int findRepeatNumber(int[] nums) {
        for(int i = 0; i < nums.length; i++){
           for(int j = i+1; j < nums.length; j++){
                if(nums[i] == nums[j]){
                    return nums[i];
               }
           }
        }
        return -1;
    }
}

四、第四套

文章链接:https://blog.csdn.net/qq_39026548/article/details/88070860?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&dist_request_id=1328641.52619.16157946942668379&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control

选择

1、快速排序算法(排序算法出了好几道题)

https://blog.csdn.net/elma_tww/article/details/86164674

2、最坏的情况下,冒泡排序,归并排序,快速排序,希尔排序哪种排序算法时间复杂度

https://www.cnblogs.com/lungeer/articles/2446990.html

填空

1、数据库事务及其特性

2、死锁产生的条件,如何预防死锁

3、UDP用户数据报的字段为6612b,能划分为几个数据报片,以及每个数据报片的数据字段长度和偏移字段

编程

有n个样品,第i个样品的权重对应i,权重大的个体被抽到的概率大,权重小的个体被抽到的概率小,现在要求按比重从中随机选取一个样品。(需要叙述算法思想)

五、第五套

https://blog.csdn.net/nkym61/article/details/94494371?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-8&spm=1001.2101.3001.4242

六、第六套

https://blog.csdn.net/qq_42980244/article/details/100586069?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=1328641.52619.16157946942668379&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值