中国长城计算机深圳股份有限公司10月招聘面试题151道2020109

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

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

B.散列方式和索引方式

C.链表存储结构和数组

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


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


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

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

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

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

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


答案:B

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

 


在以下的叙述中,正确的是()。

A.线性表的顺序存储结构优于链表存储结构

B.二维数组是其数据元素为线性表的线性表

C.栈的操作方式是先进先出

D.队列的操作方式是先进后出


正确答案:B


数据的四种基本逻辑结构是指______。

A. 组、链表、树、图形结构

B.线性表、链表,栈队列、数组广义表

C.线性结构、链表,树,图形结构

D.集合,线性结构、树、图形结构


正确答案:D


下面关于线性表的叙述中,错误的是(32)。

A.顺序表使用一维数组实现线性表

B.顺序表必须占用一片连续的存储单元

C.顺序表的空间利用率高于链表

D.在链表中,每个结点只有一个链域


正确答案:D
解析:本题考查线性表的相关知识。线性表的存储方式有顺序存储和链接存储两种。顺序存储是最简单的存储方式,通常用一个一维数组存储,占用一片连续的存储单元,空间利用率高。链接存储是用链表存储线性表(链表),有利于插入和删除操作。


中国长城计算机深圳股份有限公司10月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:常见的HTTP状态码有哪些?可用的回答 : 200 OK 301 Moved Permanently 302 Found 304 Not Modified 307 Temporary Redirect 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 410 Gone 500 Internal Server Error 501 Not Implemented 问题 Q2:.什么是关联查询,有哪些?可用的回答 :将多个表联合起来进行查询,主要有内连接、左连接、右连接、全连接(外连接)问题 Q3:描述数组、链表、队列、堆栈的区别?可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出; 队列和堆栈可以用数组来实现,也可以用链表实现。 问题 Q4:什么是_init_?可用的回答 :_init_是Python中的方法或者结构。在创建类的新对象/实例时,将自动调用此方法来分配内存。所有类都有_init_方法。问题 Q5:介绍一下except的用法和作用?可用的回答 : tryexceptexceptelsefinally 执行try下的语句,如果引发异常,则执行过程会跳到except语句。 对每个except分支顺序尝试执行,如果引发的异常与except中的异常组匹配,执行相应的语句。 如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。 try下的语句正常执行,则执行else块代码。如果发生异常,就不会执行 如果存在finally语句,最后总是会执行。 问题 Q6:描述数组、链表、队列、堆栈的区别?可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出; 队列和堆栈可以用数组来实现,也可以用链表实现。 问题 Q7:什么是arp协议?可用的回答 : ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。 问题 Q8:什么是反射?以及应用场景?可用的回答 : 通过字符串获取对象的方法称之为反射 python中可以通过如下方法实现: 1. getattr 获取属性 2. setattr 设置属性 3. hasattr 属性是否存在 4. delattr 删除属性 问题 Q9:什么是socket?简述基于tcp协议的套接字通信流程?可用的回答 : 套接字: 也称为BSD套接字,是支持TCP/IP的网络通信的基本操作单元, 可以看做是不同主机之间的进程进行双向通信的端点, 简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。 应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题 通信流程: 1. 服务器先用 socket 函数来建立一个套接字,用这个套接字完成通信的监听。 2. 用 bind 函数来绑定一个端口号和 IP 地址。 因为本地计算机可能有多个网址和 IP,每一个 IP 和端口有多个端口。需要指定一个 IP和端口进行监听。 3. 服务器调用 listen 函数,使服务器的这个端口和 IP 处于监听状态,等待客户机的连接。 4. 客户机用 socket 函数建立一个套接字,设定远程 IP 和端口。 5. 客户机调用 connect 函数连接远程计算机指定的端口。 6. 服务器用 accept 函数来接受远程计算机的连接,建立起与客户机之间的通信。 7. 建立连接以后,客户机用 write 函数向 socket 中写入数据。也可以用 read 函数读取服务器发送来的数据。 8. 服务器用 read 函数读取客户机发送来的数据,也可以用 write 函数来发送数据。 9. 完成通信以后, 用 close 函数关闭 socket 连接。 问题 Q10:如何在Python中删除文件?可用的回答 :使用命令os.remove(filename) 删除文件 或 os.unlink(filename) 删除快捷方式算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:链表中的环题目描述如下:Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?基本思路:形成环就是后面的节点中的next指向了前面出现过的节点。下面这个用了额外空间。改进:使用 O(1) 空间的解决方法:思路是两个指针:一个每次走一步,另一个每次走两步,若有一个环,那么走两步的与走一步的会在走过这个环的长度后相遇。相当于两个人跑步,一个每秒跑两米,一个跑一米,绕着100米的圆形跑,100秒过后,一米的这个跑了一圈,二米的这个跑了两圈,但它们相遇了。测试地址:https:/ ListNode(object):# def _init_(self, x):# self.val = x# self.next = Noneclass Solution(object): def hasCycle(self, head): :type head: ListNode :rtype: bool # while

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

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

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

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

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


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


将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中允许有重复的数据。


参考答案:
  合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的表头结点之后,如果两个表中的元素相等,只摘取La表中的元素,保留Lb表中的元素。当一个表到达表尾结点,为空时,将非空表的剩余元素依次摘取,链接在Lc表的表头结点之后。
  [算法描述]
  void MergeList(LinkList& La, LinkList& Lb, LinkList& Lc, )
  {//合并链表La和Lb,合并后的新表使用头指针Lc指向
  pa=La->next; pb=Lb->next;
  //pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点
  Lc=pc=La; //用La的头结点作为Lc的头结点
  Lc->next=NULL;
  while(pa||pb )
  {//只要存在一个非空表,用q指向待摘取的元素
  if(!pa) {q=pb; pb=pb->next;}
  //La表为空,用q指向pb,pb指针后移
  else if(!pb) {q=pa; pa=pa->next;}
  //Lb表为空,用q指向pa,pa指针后移
  else if(pa->data<=pb->data) {q=pa; pa=pa->next;}
  //取较小者(包括相等)La中的元素,用q指向pa,pa指针后移
  else {q=pb; pb=pb->next;}
  //取较小者Lb中的元素,用q指向pb,pb指针后移
  q->next = Lc->next; Lc->next = q;
  //将q指向的结点插在Lc 表的表头结点之后
  }
  delete Lb; //释放Lb的头结点
  }


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

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

B.散列方式和索引方式

C.链表存储结构和数组

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


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


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

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

A.散列方法和索引方式

B.链表存储结构和数组

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

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


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


以下是线性表的数据结构是()。

A、数组

B、单链表

C、双链表

D、循环链表


答案:ABCD

更多 “中国长城计算机深圳股份有限公司10月招聘面试题151道2020109” 相关考题
考题 单选题顺序栈存储空间的实现使用()。A 链表B 数组C 循环链表D 变量正确答案:D解析:暂无解析

考题 在以下的叙述中,正确的是()。A、线性表的顺序存储结构优于链表存储结构B、二维数组是其数据元素为线性表的线性表C、栈的操作方式是先进先出D、队列的操作方式是先进后出。正确答案:B

考题 关系型数据库的连接查询有内连接和外连接之分,内连接只能实现两个表的查询,外连接可以实现多个表的查询。正确答案:错误

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

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

考题 问答题数据结构中数组和链表各有什么特点,什么场合下应该使用数组,什么场合下应该使用链表?正确答案:二者都属于一种数据结构。从逻辑结构来看:1.数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费;数组可以根据下标直接存取。2.链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项,非常繁琐)链表必须根据next指针找到下一个元素。从内存存储来看:1.(静态)数组从栈中分配空间,对于程序员方便快速,但是自由度小。2.链表从堆中分配空间,自由度大但是申请管理比较麻烦。从上面的比较可以看出,如果需要快速访问数据,很少或不插入和删除元素,就应该用数组;相反,如果需要经常插入和删除元素就需要用链表数据结构了。解析:暂无解析

考题 用SQL语句进行表的查询操作,使用()语句。如果要进行分组查询,应使用()子句;如果要对查询结果进行排序,要使用()子句;查询使用连接操作时,可以使用的外连接方式主要有左连接(),右连接(),全连接()等几种。正确答案:SELECT-FROM-WHERE;GROUP BY;GROUP BY;LEFT JOIN;RIGHT;FULL

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

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

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