中国长城计算机深圳股份有限公司5月招聘面试题92道2020512

下列对引用的陈述中错误的是()。

A、每一个引用都是其所引用对象的别名,因此必须初始化;

B、形式上针对引用的操作实际上作用于它所引用的对象;

C、一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行;

D、不需要单独为引用分配存储空间。


参考答案:B


下列哪种情况不会导致Python对象的引用计数增加()

A.对象被创建

B.被作为参数传递给函数

C.成为容器对象的元素

D.该对象无法访问时


正确答案:D


下述代码执行后,有几个引用变量和几个对象?()对象声明Studentstu(对象)=newStudent(Mike”);对象定义(开辟空间)Studentstua;(声明变量)Stua=stu;

A.2个引用变量,1个对象

B.1个引用变量,1个对象

C.2个引用变量,2个对象

D.1个引用变量,2个对象


参考答案:A


下述代码执行后,有几个引用变量和几个对象?()Studentstu=newStudent(“Mike”);Studentstua;Stua=stu;

A.2个引用变量,1个对象

B.1个引用变量,1个对象

C.2个引用变量,2个对象

D.1个引用变量,2个对象


参考答案:A


在java中,引用对象变量和对象间有什么关系?()

A.对象与引用变量的有效期不一致,当引用变量不存在时,编程人员必须动手将对象删除,否则会造成内存泄露。

B.对象与引用变量的有效期是一致的,当引用变量不存在时,它所指向的对象也会自动消失。

C.对象与引用变量的有效期是一致的,不存在没有引用变量的对象,也不存在没有对象引用变量。

D.引用变量是指向对象的一个指针。


参考答案:D


中国长城计算机深圳股份有限公司5月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:什么是PEP 8?可用的回答 :PEP 8是一个编码约定,关于如何编写Python代码更具可读性。问题 Q2:什么是PEP 8?可用的回答 :PEP 8是一个编码约定,关于如何编写Python代码更具可读性。问题 Q3:说一下Django,MIDDLEWARES中间件的作用?可用的回答 : 中间件是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。 问题 Q4:Python是如何进行内存管理的?可用的回答 : 从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一、对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。 引用计数增加的情况: 1,一个对象分配一个新名称 2,将其放入一个容器中(如列表、元组或字典),引用计数减少的情况: 1,使用del语句对对象别名显示的销毁 2,引用超出作用域或被重新赋值 sys.getrefcount( )函数可以获得对象的当前引用计数 多数情况下,引用计数比你猜测得要大得多。对于不可变数据(如数字和字符串),解释器会在程序的不同部分共享内存,以便节约内存。 二、垃圾回收 1,当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。 2,当两个对象a和b相互引用时,del语句可以减少a和b的引用计数,并销毁用于引用底层对象的名称。然而由于每个对象都包含一个对其他对象的应用,因此引用计数不会归零,对象也不会销毁。(从而导致内存泄露)。为解决这一问题,解释器会定期执行一个循环检测器,搜索不可访问对象的循环并删除它们。 三、内存池机制 Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。 1,Pymalloc机制。为了加速Python的执行效率,Python引入了一个内存池机制,用于管理对小块内存的申请和释放。 2,Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的malloc。 3,对于Python对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享他们的内存池。也就是说如果你分配又释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。 问题 Q5:如何删除python数组的值?可用的回答 :可以使用pop()或remove()方法删除数组元素。这两个函数之间的区别在于前者返回已删除的值,而后者则不返回。问题 Q6:描述数组、链表、队列、堆栈的区别?可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出; 队列和堆栈可以用数组来实现,也可以用链表实现。 问题 Q7:介绍一下except的用法和作用?可用的回答 : tryexceptexceptelsefinally 执行try下的语句,如果引发异常,则执行过程会跳到except语句。 对每个except分支顺序尝试执行,如果引发的异常与except中的异常组匹配,执行相应的语句。 如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。 try下的语句正常执行,则执行else块代码。如果发生异常,就不会执行 如果存在finally语句,最后总是会执行。 问题 Q8:json序列化时,默认遇到中文会转换成unicode,如果想要保留中文怎么办?可用的回答 :json.dumps函数方法中加上参数 ensure_ascii = False问题 Q9:Python中的module和package是什么?可用的回答 :在Python中,模块是构造程序的方式。每个Python程序文件都是一个模块,它导入其他模块,如对象和属性。Python程序的文件夹是一个模块包。包可以包含模块或子文件夹。问题 Q10:TCP和UDP的区别?可用的回答 : TCP与UDP基本区别 1. 基于连接与无连接 2. TCP要求系统资源较多,UDP较少 3. UDP程序结构较简单 4. 字节流模式(TCP)与数据报模式(UDP); 5. TCP保证数据正确性,UDP可能丢包 6. TCP保证数据顺序,UDP不保证 具体编程时的区别 1.socket()的参数不同 2.UDP Server不需要调用listen和accept 3.UDP收发数据用sendto/recvfrom函数 4.TCP:地址信息在connect/accept时确定 5.UDP:在sendto/recvfrom函数中每次均 需指定地址信息 6.UDP:shutdown函数无效 算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:右边视角的二叉树题目描述如下:Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.Example:Input: 1,2,3,null,5,null,4Output: 1, 3, 4Explanation: 1 - / 2 3 - 5 4 -给一颗二叉树,返回从右边看能看到的第一个。思路BFS,返回最后的一个即可。beat 94%。测试地址:https:/ TreeNode(object):# def _init_(self, x):# self.val = x# self.left = None#

阅读下列说明、图和C++代码,回答问题1至问题3。

【说明】

已知四个类之间的关系如图2-2所示,分别对每个类的方法进行编号,例如Shape的perimeter()方法为1号,表示为1:perimeter(),Rectangle类的perimeter()为2号,表示为2:perimeter(),依此类推,其中,每个类的perimeter方法都为虚函数且方法签名相同。

【C++代码】

Triangle *tr=new Triangle();

Square *sq=new Square();

Shape *sh =tr;

关于上述C++代码中sh和tr的以下叙述中,哪两个是正确的(写出编号)。

①sh和tr分别引用同一个对象;

②sh和tr分别引用同一类型的不同的对象:

③sh和tr分别引用不同类型的不同对象;

④sh和tr分别引用同一个对象的不同备份:

⑤sh和tr所引用的内存空间是相同的。


正确答案:① ⑤
① ⑤


在程序运行过程中,(49)将方法与特定的对象动态地联系在一起,使得不同的对象在使用同样的方法时,可以因对象的状态不同而产生不同的行为,从而使得方法对具体的对象具有个性。

A.消息传递机制

B.对象自身引用

C.消息传递机制和对象自身引用

D.参数多态


正确答案:C
解析:对象自身引用(Self-Reference)是OOPL中的一种特有结构。这种结构在不同的OOPL中有不同的名称,在C++和Java中称为this,使用的值通过消息传递机制提供。对象自身引用的值和类型分别扮演了两种意义的角色:对象自身引用的值使得方法体中引用的成员名与特定的对象,及相关对象自身引用的类型决定了方法体被实际共享的范围。对象自身引用机制使得在进行方法的设计和实现时并不需要考虑与对象联系的细节,而是从更高一级的抽象层次也就是类的角度来设计同类型对象的行为特征,从而使得方法在一个类及其子类的范围内具有共性。在程序运行过程中,消息传递机制和对象自身引用将方法与特定的对象动态地联系在一起,使得不同的对象在执行同样的方法体时,可以因对象的状态不同而产生不同的行为,从而使得方法对具体的对象具有个性。


对象的相对引用中,要引用当前操作的对象,可以使用的关键字是

A.Parent

B.ThisForm

C.ThisformSet

D.This


正确答案:D
解析:对象引用中各关键字的含义,This表示当前操作对象。在对象的相对引用中,关键字Parent表示当前对象的直接容器对象,ThisForm表示当前对象所在的表单,ThisformSet表示当前对象所在的表单集。掌握表单控件的常用属性、方法及事件的含义。


下面关于引用和指针说法错误的是:

A.引用必须初始化,而指针则没有这要求

B.引用初始化以后不能被修改,指针可以改变所指向的对象

C.存在指向空值的引用,也存在指向空值的指针

D.从内存分配上看,程序为指针变量分配内存区域,而引用不需要分配内存区域


正确答案:C
C:不存在指向空值的引用


______操作符动态地为对象按照其指定的类型分配内存,并返回该类的一个引用。


正确答案:new
new

更多 “中国长城计算机深圳股份有限公司5月招聘面试题92道2020512” 相关考题
考题 填空题所有的容器对象都具有与之相关的计数属性和()属性。其中前者是一个数值型属性,它表明了所包含对象的数目;后者是一个数组,用以引用每个包含在其中的对象。正确答案:集合解析:暂无解析

考题 单选题引用是一个变量的别名,下列关于的引用的描述,正确的是()。A 引用的值与被引用变量的值相等,内存地址相同B 引用的值与被引用变量的值相等,内存地址不相同C 引用的值与被引用变量的值不等,内存地址相同D 引用的值与被引用变量的值不等,内存地址不同正确答案:A解析:暂无解析

考题 判断题Delphi采用基于对象的引用模式,即类的每一个变量不保存对象的值,而保存一个引用或一个指针来说明对象存储的内存位置。A 对B 错正确答案:错解析:暂无解析

考题 下述代码执行后,有几个引用变量和几个对象?()   Student stu = new Student(“Mike”);  Student stua;  Stua = stu;  A、 2个引用变量,1个对象B、 1个引用变量,1个对象C、 2个引用变量,2个对象D、 1个引用变量,2个对象正确答案:A

考题 所有的容器对象都具有与之相关的计数属性和()属性。其中前者是一个数值型属性,它表明了所包含对象的数目;后者是一个数组,用以引用每个包含在其中的对象。正确答案:集合

考题 对于一个已经不被任何引用变量引用的对象,当垃圾回收器准备回收该对象所占用的内存时,将自动调用该对象的以下哪个方法()A、finalizeB、notifyC、nofityAllD、hashCode正确答案:A

考题 E-R图中的实体集A、B之前为1:*联系,转换为关系模型时,在B实体集中增加A实体集的标识符作外码;而在面向对象数据模型中( )A.在B对象中增加一个引用属性外,对A对象不作任何处理 B.在B对象中增加一个引用属性外,在A对象中增加一组引用属性 C.在A对象中增加一组引用属性外,对B对象不作任何处理 D.在A对象中增加一组引用属性外,在B对象中增加一组引用属性答案:A解析:小编正在快马加鞭来的路上(详见视频讲解)

考题 单选题下列关于Java对象清除的叙述正确的是哪项?()A对象被创建后,立刻变成垃圾对象B任何不再被引用的对象都是垃圾收集的对象C一旦对象失去引用,垃圾收集器立刻把它从内存中清除DJava对象的清除必须自己手动处理正确答案:D解析:暂无解析

考题 序员可以不必释放已创建的对象,因为Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。正确答案:错误

考题 装箱、拆箱操作发生在()A、类与对象之间B、对象与对象之间C、引用类型与值类型之间D、引用类型与引用类型之间正确答案:C