1、1. 在软件开发过程中,我们可以采用不同的过程模型,下列有关 增量模型描述正确的是()A. 是一种线性开发模型,具有不可回溯性 B. 把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件 C. 适用于已有产品或产品原型(样品),只需客户化的工程项目 D. 软件开发过程每迭代一次,软件开发又前进一个层次正确答案:B这道题重复出现在京东2019春招京东数据分析类试卷第一题。增量模型增量模型也称为渐增模型,是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。优点: (1)将待开发的软件系统模块化,可以
2、分批次地提交软件产品,各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品,使用户可以及时了解软件项目的进展。 (2)以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统。 (3)开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。缺点 (1)要求待开发的软件系统可以被模块化。如果待开发的软件系统很难被模块化,那么将会给增量开发带来很多麻烦。来源:百度百科题目解析 A. 具有可回溯性,可以返回修改; B. 正确; C. 适用于未开发的原型(样品);
3、 D. 软件开发过程每迭代一次,软件开发又前进一个层次,属于螺旋模型的软件过程。- 螺旋模型 强烈参考常用软件开发模型比较分析(2. 下面有关值类型和引用类型描述正确的是()?A. 值类型的变量赋值只是进行数据复制,创建一个同值的新对象,而引用类型变量赋值,仅仅是把对象的引用的指针赋值给变量,使它们共用一个内存地址。 B. 值类型数据是在栈上分配内存空间,它的变量直接包含变量的实例,使用效率相对较高。而引用类型数据是分配在堆上,引用类型的变量通常包含一个指向实例的指针,变量通过指针来引用实例。 C. 引用类型一般都具有继承性,但是值类型一般都是封装的,因此值类型不能作为其他任何类型的基类。 D
4、. 值类型变量的作用域主要是在栈上分配内存空间内,而引用类型变量作用域主要在分配的堆上。正确答案:A B C(求解析D)值类型 值类型就是现金,要用直接用;引用类型是存折,要用还得先去银行取现。值类型 1.值类型变量都存储在栈中。2.访问值类型变量时,一般都是直接访问其实例。 3.每个值类型变量都有自己的数据副本,因此对一个值类型的变量的操作不会影响其他的变量。 4.复制值类型变量时,复制的是变量的值,而不是变量的地址。 5.值类型变量不能为null,必须具有一个确定的值。引用类型 1.必须在托管堆中为引用类型变量分配内存。2.必须使用new关键字来创建引用类型变量。 3.在托管堆中分配的每个
5、对象都有与之相关联的附加成员,这些成员必须被初始化。 4.引用类型变量是由垃圾回收机制来管理的。 5.多个引用类型变量都可以引用同一个对象,这种情形下,对一个变量的操作会影响另一个变量所引用的同一对象。 6.引用类型被赋值之前的值都是null。 来源:参考资料3. 如何在多线程中避免发生死锁?A. 允许进程同时访问某些资源。 B. 允许进程强行从占有者那里夺取某些资源。 C. 进程在运行前一次性地向系统申请它所需要的全部资源。 D. 把资源事先分类编号,按号分配,使进程在申请,占用资源时不会形成环路。官方答案:A B C D 民间答案:B C D死锁在多道程序设计环境下,多个进程可能竞争一定数
6、量的资源。一个进程申请资源,如果资源不可用,那么进程进入等待状态。如果所申请的资源被其他等待进程占有,那么该等待的进程有可能无法改变状态,这种情况下称之为死锁。产生死锁的4个必要条件: 互斥条件:系统存在临界资源,存在一个资源每次只能被一个进程使用,若别的进程也要使用该资源,需要等待知道其占用者用完释放。 保持与等待条件:部分分配,允许进程在不释放其已经分得的资源的情况下请求并等待分配的资源 不可抢占条件:有些系统资源是不可抢占的,系即当某个进程已经获得这种资源后,系统是不能强行收回,其他进程也不能强行夺走,只能由自身使用完释放。 循环等待条件:若干个进程形成环形链,链中的每一个进程都在等待该
7、链中下一个进程所占用的资源。 死锁的预防需要至少破坏死锁的4个必要条件之一,而死锁的避免不去刻意破坏4个必要条件,而是通过对资源的分配策略施加较少的限制条件,来避免死锁的产生。民间解析选项B,破坏不可抢占条件,属于死锁预防 选项C,破坏了保持与等待条件,属于死锁预防 选项D,破坏了循环等待条件,属于死锁预防 来源: 作者:尹沐君参考资料如何在多线程中避免发生死锁4.以下为求0到1000以内所有奇数和的算法,从中选出描述正确的算法( )A. s=0;i=1;s=s+i;i=i+2;如果i1000,则返回;结束 B. s=0;i=1;i=i+2;s=s+i;如果i1000,则返回;结束 C. s=
8、1;i=1;s=s+i;i=i+2;如果i1000,则返回;结束 D. s=1;i=1;i=i+2;s=s+i;如果i1000,则返回;结束正确答案:A5. 关于递归法的说法不正确的是( )A. 程序结构更简洁 B. 占用CPU的处理时间更多 C. 要消耗大量的内存空间,程序执行慢,甚至无法执行 D. 递归法比递推法的执行效率更高正确答案:D民间解析简单的说,递推是在借助前一个几经计算出来的结果去计算下一步的结果,以此来得到最终结果,有此可知递推并不需要保留太多现场信息,而递归就不一样,虽然也是要借助前一步的结果,但这前一步结果往往刚开始是未知的,要一步一步递推下去,直到遇到终结条件,然后在一
9、层一层的回归,直到回归到最上一层计算出结果,可见递归是包含两步的,一个递推下去,一个在回归递归往往表达简单 ,但计算需要时空都比较大参考资料6.字符串”ABCD”和字符串”DCBA”进行比较,如果让比较的结果为真,应选用关系运算符()A. B. =正确答案:B字符串比较优先判断对应字符的大小(ASCII码顺序),A”为65;“a”为97;“0”为48;题目解析字符串”ABCD”和字符串”DCBA”,A小于D,则无需继续比较了,符号为 D. 正确答案:D运算符优先级函数算术关系逻辑算数 指数() 取负(-) 乘浮点除(*、/) 整除() 取模(Mod) 加、减(+、-) 连接(&)关系 等于()
10、不等于(!=)小于() 小于等于()大于等于()LikeIs逻辑 NotAndOrXorEqv(等价)Imp(蕴含)9.采用哪种遍历方法可唯一确定一棵二叉树?( )A. 给定一棵二叉树的先序和后序遍历序列 B. 给定一棵二叉树的后序和中序遍历序列 C. 给定先序、中序和后序遍历序列中的任意一个即可 D. 给定一棵二叉树的先序和中序遍历序列正确答案:B D二叉树的遍历方法目前做了三套题,二叉树的遍历方法出现了三次。套题知识点京东2019春招京东数据分析类试卷第2题:根据前序和后续遍历,求中序遍历网易2018校园招聘数据分析工程师笔试卷第1题:已知中序遍历,求二叉树的所有可能京东2019校招数据分
11、析工程师笔试题第9题:遍历方法确定唯一的二叉树题目解析前序和后序在本质上都是将父节点与子结点进行分离,但并没有指明左子树和右子树的能力,因此得到这两个序列只能明确父子关系,而不能确定一个二叉树。给出中序遍历之后再给一个其他的遍历就能够确定了。前序遍历+中序遍历后序遍历+中序遍历 可以唯一确定一棵二叉树。10.已知小顶堆:51,32,73,23,42,62,99,14,24,3943,58,65,80,120,请问62对应节点的左子节点是A. 99 B. 73 C. 3943 D. 120官方答案:B 个人答案:65堆来源:最小/大堆的构建方法,强烈参考最小堆 构建、插入、删除的过程图解 11.
12、 若串S=”UP!UP!JD”,则其子串的数目A. 33 B. 37 C. 39 D. 35正确答案:B 个人答案:31子串串中任意个连续的字符组成的子序列称为该串的子串,是子集的概念,不是集合。空串也属于子串。长度为n的字符串串中字符均不相同 1、有n(n+1)/2 +1个子串; 2、非空子串:n(n+1)/2; 3、非空真子串:n(n+1)/2 1;串中字符出现重复 n(n+1)/2+1-重复个数题目解析UP!UP!JD,有8个字符,n = 8。 n(n+1)/2 + 1 = 37但官方答案没有考虑重复的字符。若考虑重复字符, 1个字符子串重复个数 = 1 + 1 + 1 (U,P,!) 2个字符子串重复个数 = 1 + 1 (UP, P!) 3个字符子串重复个数 = 1 (UP!) 所以, 37 - 6 = 31强烈参考求解字符串所包含子串的个数 求字符串的子串个数 https:/b