圣湘生物科技股份有限公司9月招聘面试题67道202091

●队列通常采用两种存储结构是 (34) 。

(34) A.顺序存储结构和链表存储结构

B.散列方式和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构


正确答案:A
【解析】队列通常采用两种存储结构是顺序存储和链表存储。


● 栈和队列都是线性的数据结构。以下关于栈和队列的叙述中,正确的是 (37) 。

(37)A. 栈适合采用数组存储,队列适合采用循环单链表存储

B. 栈适合采用单链表存储,队列适合采用数组存储

C. 栈和队列都不允许在元素序列的中间插入和删除元素

D. 若进入栈的元素序列确定,则从栈中出来的序列也同时确定


答案:B

顺序表示的栈和队列,必须预先分配空间,并且空间大小受限,使用起来限制比较多。而且,由于限定存取位置,顺序表示的随机存取的优点就没有了,所以,链式结构应该是首选。

 


下列叙述中正确的是( )。

A.线性链表的各元素在存储空间中的位置必须是连续的

B.线性链表的头元素一定存储在其他元素的前面

C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面

D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的


正确答案:D
解析: 性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。


● 栈和队列都是线性的数据结构。以下关于栈和队列的叙述中,正确的是 (37) 。

(37)

A. 栈适合采用数组存储,队列适合采用循环单链表存储

B. 栈适合采用单链表存储,队列适合采用数组存储

C. 栈和队列都不允许在元素序列的中间插入和删除元素

D. 若进入栈的元素序列确定,则从栈中出来的序列也同时确定


正确答案:C
试题(37)分析
    本题考查数据结构基础知识。
    在应用中,栈和队列都作为容器使用。在运算方式上,栈结构的特点是后进先出,队列的特点是先进先出。在存储结构的选择上,需要考虑使用栈或队列的应用场合及数据的特点和规模等,没有统一的标准。若开发系统已经实现了栈和队列结构,则无须考虑栈和队列的存储结构,只要按照规定的接口使用即可。应用栈时,只要栈不空,就可以令栈顶元素出栈;只要栈不满,就可以令元素进栈,因此元素的入栈次序一定时,出栈次序有多种选择。
参考答案
C


下列叙述中正确的是( )。

A.线性链表的各元素在存储空间中的位置必须是连续的.

B.线性链表的头元素一定存储在其他元素的前面

C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面

D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的


正确答案:D
解析: 性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。


圣湘生物科技股份有限公司9月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:描述数组、链表、队列、堆栈的区别?可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出; 队列和堆栈可以用数组来实现,也可以用链表实现。 问题 Q2:装饰器的作用和功能?可用的回答 : 1. 引入日志 2. 函数执行时间统计 3. 执行函数前预备处理 4. 执行函数后的清理功能 5. 权限校验等场景 6. 缓存 问题 Q3:ngnix的正向代理与反向代理?可用的回答 : 正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容, 客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。 客户端必须要进行一些特别的设置才能使用正向代理。 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。 客户端向反向代理的命名空间中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求, 并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。 问题 Q4:简述 三次握手、四次挥手的流程?可用的回答 : 三次握手: 初始状态:客户端A和服务器B均处于CLOSED状态,然后服务器B创建socket,调用监听接口使得服务器处于LISTEN状态,等待客户端连接。(后续内容用A,B简称代替) 1、A首先向B发起连接,这时TCP头部中的SYN标识位值为1,然后选定一个初始序号seq=x(一般是随机的), 消息发送后,A进入SYN_SENT状态,SYN=1的报文段不能携带数据,但要消耗一个序号。 2、B收到A的连接请求后,同意建立连接,向A发送确认数据,这时TCP头部中的SYN和ACK标识位值均为1,确认序号为ack=x+1, 然后选定自己的初始序号seq=y(一般是随机的),确认消息发送后, B进 入SYN_RCVD状态,与连接消息一样,这条消息也不能携带数据,同时消耗一个序号。 3、A收到B的确认消息后,需要给B回复确认数据,这时TCP头部中的ACK标识位值为1, 确认序号是ack=y+1,自己的序号在连接请求的序号上加1,也就是seq=x+1, 此时A进入ESTABLISHED状态,当B收到A的确认回复后,B也进入ESTABLISHED状态, 至此TCP成功建立连接,A和B之间就可以通过这个连接互相发送数据了。 四次挥手: 初始状态:客户端A和服务器B之间已经建立了TCP连接,并且数据发送完成,打算断开连接, 此时客户端A和服务器B是等价的,双方都可以发送断开请求,下面以客户端A主动发起断开请求为例。(后续内 容用A,B简称代替) 1、A首先向B发送断开连接消息,这时TCP头部中的FIN标识位值为1,序号是seq=m,m为A前面正常发送数据最后一个字节序号加1得到的, 消息发送后A进入FNI_WAIT_1状态,FIN=1的报文段不能携带数据,但要消耗一个序号。 2、B收到A的断开连接请求需要发出确认消息,这时TCP头部中的ACK标识位值为1,确认号为 ack=m+1, 而自己的序号为seq=n,n为B前面正常发送数据最后一个字节序号加1得到的, 然后B进入 CLOSE_WAIT状态,此时就关闭了A到B的连接, A无法再给B发数据,但是B仍然可以给A发数据,同时B端通知上方应用层,处理完成后被动关闭连接。 然后A收到B的确认信息后,就进入了 FIN_WAIT_2状态。 3、B端应用层处理完数据后,通知关闭连接, B向A发送关闭连接的消息,这时TCP头部中的FIN和ACK标识位值均为1, 确认号ack=m+1,自己的序号为seq=k,消息发送后B进入LACK_ACK状态。 4、A收到B的断开连接的消息后,需要发送确认消息, 这是这时TCP头部中的ACK标识位值为1,确认号ack=k+1,序号为m+1(因为A向B发送断开连接的消息时消耗了一个消息号), 然后A进入TIME_WAIT 状态,若等待时间经过2MSL后,没有收到B的重传请求, 则表明B收到了自己的确认,A进入CLOSED状态, B收到A的确认消息后则直接进入CLOSED状态。至此TCP成功断开连接。 问题 Q5:什么是PEP 8?可用的回答 :PEP 8是一个编码约定,关于如何编写Python代码更具可读性。问题 Q6:Python中的module和package是什么?可用的回答 :在Python中,模块是构造程序的方式。每个Python程序文件都是一个模块,它导入其他模块,如对象和属性。Python程序的文件夹是一个模块包。包可以包含模块或子文件夹。问题 Q7:什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?可用的回答 : 粘包:在接收数据时,一次性多接收了其它请求发送来的数据(即多包接收)。如: 对方第一次发送hello,第二次发送world,在接收时,应该收两次, 一次是hello,一次是world,但事实上是一次收到helloworld,一次收到空,这种现象叫粘包。 原因: 粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。 什么情况会发生: 1、发送端需要等缓冲区满才发送出去,造成粘包 发送数据时间间隔很短,数据很小,会合到一起,产生粘包 2、接收方不及时接收缓冲区的包,造成多个包接收 客户端发送了一段数据,服务端只收了一小部分, 服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包 解决方案: 一个思路是发送之前,先打个招呼,告诉对方自己要发送的字节长度, 这样对方可以根据长度判断


下列叙述中正确的是( )。

A)线性链表的各元素在存储空间中的位置必须是连续的

B)线性链表的头元素一定存储在其他元素的前面

C)线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面

D)线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的


正确答案:D
性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。


(3)下列叙述中错误的是A. 线性链表的各元素在存储空间中的位置必须是连续的 B.线性链表的头元素一定存储在其元素的前面 C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的


正确答案:D
【解析】在线性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。


队列通常采用两种存储结构是(38)。

A.顺序存储结构和链表存储结构

B.散列方式和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构


正确答案:A
解析:和线性表一样,队列可以有两种存储表示,即顺序存储和链式存储。


下列叙述中正确的是( )。

A.线性链表中的各元素在存储空间中的位置必须是连续的

B.线性链表中的表头元素一定存储在其他元素的前面

C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素—定存储在其他元素的前面

D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的


正确答案:D
解析:性表的链式存储结构中,各数据结点的存储位置不连续,选项A错误。各结点在存储空间中的位置关系与逻辑关系也不一致,选项B和选项C错误。选项D正确。


线性表常采用的两种存储结构是( )。A.散列方法和索引方式B.链表存储结构和数组

线性表常采用的两种存储结构是( )。

A.散列方法和索引方式

B.链表存储结构和数组

C.顺序存储结构和链式存储结构

D.线性存储结构和非线性存储结构


正确答案:C
C)【解析】线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。


相关考题:

考题 下列叙述中正确的是( )。A.线性链表中的各元素在存储空间中的位置必须是连续的B.线性链表中的表头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 正确答案:D

考题 下列叙述中正确的是A.线性链表中的各元素在存储空间中的位置必须是连续的B.线性链表中的表头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 正确答案:D解析:性表的链式存储结构中,各数据结点的存储序号不连续,且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域宋指示的。所以,选项D正确。

考题 数据结构里,邻接表是图的一种存储结构,是一维数组和链表的结合。正确答案:正确

考题 下列不属于物理数据存储方式的是()。A、文本文档B、数组C、链表D、数据库正确答案:A

考题 下列叙述中正确的是( )。A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 正确答案:DD。【解析】性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后关系。

考题 栈和队列都是线性的数据结构。以下关于栈和队列的叙述中,正确的是( )。A.栈适合采用数组存储,队列适合采用循环单链表存储’B.栈适合采用单链表存储,队列适合采用数组存储C.栈和队列都不允许在元素序列的中间插入和删除元素D.若进入栈的元素序列确定,则从栈中出来的序列也同时确定 正确答案:C解析:栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端称为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表(LIFO表)。队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

考题 下列叙述中正确的是( )。A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 正确答案:D

考题 单选题下列不属于物理数据存储方式的是()。A文本文档B数组C链表D数据库正确答案: C解析: 暂无解析

考题 下列关于线性链表的叙述,正确的是A.线性链表中的各元素在存储空间中的位置必须是连续的B.线性链表中的表头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 正确答案:D解析:线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可以是连续的,也可能是不连续的。

考题 下列叙述中正确的是( )。A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 正确答案:D解析:性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。
最新考题