阿里巴巴2014秋季校园招聘-软件研发工程师笔试题
阿里开发工程师笔试题目
阿里开发工程师笔试题目阿里xx开发工程师笔试题目1、在网络传输数据时,经常需要将二进制数据转换为一个可打印字符串,一般用到的可打印字符集合包含64个字符,因此又称为Base64表示法,现有一个char数组长度为12,要将它表示为Base64字符串,请问Base64字符串至少需要几个char;如果char 的长度为20,则需要几个char。
2、某部门年会的时候,有个环节叫做《国王和天使》,每个人将自己的名字写在纸条上并丢入盒子中,等所有人都完成该动作后,每个人再从盒子里拿出一张小纸条,上面的人物就是自己的国王,自己就是ta的天使,如果抽到自己,就再抽一遍,直到抽到别人为止,如果用有向图来表示他们之间的关系,那么以下结论错误的是——?1、最后的结果可能是存在多个联通分支2、联通分支个数最多不超过人数的二分之一3、最后的结果可能是存在多个强联通分支4、可以用深度优先算法求得联通数5、可以用双向链表存储其结构6、遍历的复杂度是O(N)3、假设支付宝红包口令支持1到6位的数字组合,即'0','1','003'和‘999999’都是合法的'红包口令,那么总共可以有多少个合法的红包口令?4、假设某棵二叉查找树的所有键均为1到10的整数,现在我们要查找下面_是不可能是键的检查序列。
1、10,9,8,7,6,52、2,8,6,3,7,4,53、1,2,9,3,8,7,4,6,54、2,3,10,4,8,55、4,9,8,7,56、以上均正确6、设二叉树节点的线序遍历,中序遍历与后序遍历,所有叶子节点的先后顺序__?7、一个具有513个节点的二叉树,有_种可能的层高。
8、给定一个整数sum,从有N个无序元素的数组中寻找元素a,b,c,d,使得a + b + c + d = sum,最快的平均时间复杂度是_?1、O(N^2)2、O(log N)3、O(N)4、O(N^3)5、O(N^2logN)6、O(N^4)9、如下SQL数据中,_可能返回null值。
软件开发工程师笔试题
软件开发工程师笔试题从古至今,软件开发工程师一直是科技行业中的重要角色。
随着科技的快速发展,软件开发工程师扮演的角色变得越来越重要。
他们不仅需要具备扎实的编程技术,还需要不断学习和适应新的技术和工具。
软件开发工程师的主要工作是根据客户需求设计、开发和维护高质量的软件系统。
他们通常会与团队成员合作,分析和理解用户需求,并将其转化为可执行的软件。
这包括编写代码、测试软件的功能和性能、修复错误和漏洞等。
作为一名优秀的软件开发工程师,编程技术是必不可少的。
他们需要熟练掌握各种编程语言,如Java、C ++、Python等,以及其他开发工具和框架。
掌握多种编程语言使他们能够适应不同的项目需求,并提供高效和可靠的解决方案。
另外,软件开发工程师还需要具备良好的沟通能力和团队合作精神。
他们需要能够与客户和团队成员有效地进行沟通,理解需求并提供解决方案。
与此同时,他们还需要与其他团队成员密切合作,共同推进项目的进展。
软件开发过程中,测试也是不可或缺的一部分。
软件开发工程师需要对自己编写的代码进行测试,以确保软件的功能和性能符合预期。
这包括单元测试、集成测试、系统测试等。
通过测试,软件开发工程师可以及时发现和修复错误和漏洞,提高软件的质量和稳定性。
随着云计算、大数据和物联网等技术的快速发展,软件开发工程师面临着新的挑战和机遇。
他们需要不断学习和了解新的技术和工具,以适应不断变化的行业需求。
比如,云计算技术的出现使软件开发工程师可以更高效地开发和部署软件,而大数据技术则提供了更多的数据处理和分析能力。
此外,软件开发工程师还需要关注软件开发过程中的安全性。
随着网络安全威胁的增加,软件开发工程师需要不断提高自己的安全意识,编写安全可靠的代码,并采取相应的安全措施保护软件系统和用户的数据。
在软件开发行业中,学历和证书也是软件开发工程师找工作时的一大加分项。
许多公司对招聘软件开发工程师都有一定的学历和证书要求。
一般来说,软件开发工程师需要有计算机科学或相关专业的学位,并且持有相关的编程证书,如Oracle认证、微软认证等。
阿里2014年秋招研发试题_附答案
阿里巴巴集团2014校园招聘笔试题(9月22北京)(答案仅是个人见解,欢迎补充更正,谢谢)第一部分单选题(前10题,每题2分;后10题,每题3分。
选对得满分,选错倒扣1分,不选得0分)1、一次内存访问,SSD硬盘访问和SATA硬盘随机访问的时间分别是()A、几微秒,几毫秒,几十毫秒B、几十纳秒,几十微秒,几十毫秒C、几十纳秒,几十微秒,几十毫秒D、几微秒,几十微秒,几十毫秒2、8进制数256,转化成7进制数是(B)A、356B、336C、338D、3463、某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网个数、每个子网内最大可分配地址个数各位(C)A、8,32B、32,8C、32,6D、8,304、以下关于链式存储结构说法错误的是(A)A、查找节点时链式存储比顺序存储快B、每个节点是由数据域和指针域组成C、比顺序存储结构的存储密度小D、逻辑上不相邻的节点物理上可能相邻5、假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(A)A、6B、4C、2D、86、下面函数的功能是(C)int fun (char *s){char *p=s;while(*p++);return p-s-1;}A、计算字符串的位(bit)数B、复制一个字符串C、求字符串的长度D、求字符串存放的位置7、判断有向图是否存在回路,利用(A)方法最佳A、拓扑排序B、求最短路径C、求关键路径D、广度优先遍历8、依次读入数据元素序列{a,b,c,d,e,f,g}进栈,元素进栈或出栈顺序是未知的,下列序列中,不可能成为栈空时弹出的元素构成序列的有(D)A、{d,e,c,f,b,g,a}B、{c,d,b,e,f,a,g}C、{e,f,d,g,c,b,a}D、{f,e,g,d,a,c,b}9、下列有关图的遍历说法中,不正确的是(C)A、有向图和无向图都可以进行遍历操作B、基本遍历算法两种:深度遍历和广度遍历C、图的遍历必须用递归实现D、图的遍历算法可以执行在有回路的图中10、在16位机器上跑下列foo函数的结果是(B)void foo(){int i = 65536;cout << i <<”,”;i = 65535;cout << i;}A、-1,65535B、0,-1C、-1,-1D、0,6553511、有一段年代久远的C++代码,内部逻辑复杂,现在需要利用其实现一个新的需求,假定有以下可行的方案,应当优先选择(D)A、修改老代码的接口,满足新的需求B、将老代码抛弃,自己重新实现类似的逻辑C、修改老代码的内部逻辑,满足新的需求D、在这段代码之外写一段代码,调用该代码的一些模块,完成新功能需求12、在5个页框上使用LRU页面替换算法,当页框初始为空时,引用序列为0、1、7、8、6、2、3、7、2、9、8、1、0、2,系统将发生(C)次缺页A、13B、12C、11D、8分析:缺页为:0、1、7、8、6、2、3、9、8、1、0,共11次13、阿里巴巴有相距1500km的机房A和B,现有100GB数据需要通过一条FTP 连接在100s的时间内从A传输到B。
软件开发人员招聘笔试试题
试题一:综合(基本知识引导,思考,)1.面向对象语言的特征中字符流和字节流的区别?2.和的区别的生命周期? 的生命周期?3.协议是长连接还是短连接?4.的基本数据类型有那些? 是不是基本类型?5.的概念和在项目中的应用?6.如何避免多个的读写阻塞1.4新增了那些方法解决这个问题?7.如果一个变量的值为,观察以下程序:8.变量分支1;分支2;程序最终执行那一个分支?9.中有那些重定向方法,它们的区别的优势和特点和的区别?10.在数据库中,一个表被删除后,还能否将空间分配给其它表哪?11.在数据库中,一个表有两千万条数据,怎样最有效的将其删除?12.在数据库中,如果处理表中的每一条数据,用那种方法?13.发送一条邮件的几个步骤在中如何初始化上下文14.常用的组件技术?会话的属性?实体的属性?15.与的区别?16.编程具体步骤?事务模式?17.容器管理事务的事务属性为的意义18.事务失败时的会话的重新初始化方法19.中开发应用通常遵循的步骤试题二:分类试题(分类必作题)基础1.作用域,以与不写时的区别?2.和的区别, 和的区别3.型变量中能不能存贮一个中文汉字?为什么?4.多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?5.继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?6.内部类的实现方式?父类:;{(){(" ");}}子类:;;{(){(" ");}([] ){= ();= ();}}输出结果:7. 3. ?( .){d1 = 1.0;}3.( .)A. { .静态内部类可以有静态成员,而非静态内部类则不能有静态成员 () { d1;}}B. { .静态内部类可以有静态成员,而非静态内部类则不能有静态成员() { d1;}}C. {() { d1;}}D. {() { d1;} 静态内部类的非静态成员不可访问外部类的非静态变量}E. {();}8.垃圾回收机制,如何优化程序?9.型 3.4是否正确?10.介绍中的 (包括如何写自己的数据结构)?11.中异常处理机制,事件机制?12.中的多形与继承?13.抽象类与接口?14.的通信编程,用编程,读服务器几个字符,再写入本地显示?15.用实现一种排序,类实现序列化的方法(二种)?如在框架中,实现比较要实现什么样的接口?16.编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
笔试真题——阿里巴巴
阿里巴巴软件测试笔试题类型:软件测试|试题:55道试题(50道选择题,5道问答题)注意:答题过程如果您不提交答案,或者关闭浏览器退出,我们将不再允许您再次答题。
谢谢!一、单选题1.在面向对象的系统中,系统责任的良好分配原则是A、在类之间均匀分配B、集中分配在少数控制类中C、根据交互图的消息进行分配D、根据个人喜好进行分配2.int I=2;int x=(I++)+(I++)+(I++);执行结束后,X的值是A、6B、7C、8D、93.char*p=”ab”;sizeof(*p)=()A、1B、2C、3D、44.下列关于程序效率的描述错误的是A、提高程序的执行速度可以提高程序的效率B、降低程序占用的存储空间可以提高程序的效率C、源程序的效率与详细设计阶段确定的算法的效率无关D、好的程序设计可以提高效率5.现在向银行存款,年利率为i,若希望在n年后从银行得到F元,现在应该存入的钱数为A、i/(1+F)nB、F/(1+i n)C、F/inD、F/(1+i)n6.以下哪些类型的文件可以通过数字签名加载到IE?A、.datB、.icoC、.exeD、.cab7.在LINUX系统中,下列哪一个命令属于目录管理的常用命令?A、pwd B、pr C、ln D、find8.如果互连的局域网高层分别采用TCP/IP协议与SPX/IPX协议,那么我们可以选择的互连设备应该是A、中继器B、网桥C、网卡D、路由器9.LINUX下,解压缩文件的命令为?A、tar zxvf文件名B、unzip文件名C、CAT文件名D、VI文件名10.以下关于TCP/IP传输层协议的描述中,错误的是A、TCP/IP传输层定义了TCP和UDP两种协议B、TCP协议是一种面向连接的协议C、UDP协议是一种面向无连接的协议D、UDP协议与TCP协议都能够支持可靠的字节流传输11.关于因特网,以下哪种说法是错误的A、用户利用HTTP协议使用Web服务B、用户利用NNTP协议使用电子邮件服务C、用户利用FTP协议使用文件传输服务D、用户利用DNS协议适用域名解析12.软件测试的对象包括()1.目标程序和相关文档2.源程序、目标程序、数据及相关文档3.目标程序、操作系统和平台软件4.源程序和目标程序13.软件测试类型按开发阶段划分是()A、需求测试、单元测试、集成测试、验证测试B、单元测试、集成测试、确认测试、系统测试、验收测试C、单元测试、集成测试、验证测试确认测试、验收测试D、调试、单元测试、集成测试、用户测试14.V模型指出,对程序设计进行验证A、单元和集成测试B、系统测试C、验收测试和确认测试D、验证测试15.V模型指出,对系统设计进行验证A、单元测试B、集成测试C、功能测试D、系统测试16.V模型指出,应当追朔到用户需求说明A、代码测试B、集成测试C、验收测试D、单元测试17.以下哪种测试与其余三种测试在分类上不同A、负载测试B、强度测试C、数据库容量测试D、静态代码走查18.白盒测试是()的测试A、基于功能B、基于代码C、基于设计D、基于需求文档19.下列字符中,ASCII码值最小的是A、aB、AC、xD、Y20.OSI(开放系统互联)参考模型的最低层是A、传输层B、网络层C、物理层D、应用层21.计算机中,一个浮点数由两部分组成,它们是A、阶码和尾数B、基数和尾数C、阶码和基数D、整数和小数22.存储400个24×24点阵汉字字形所需的存储容量是A、255KBB、75KBC、37.5KBD、28.125KB23.用于保存计算机输入输出数据的材料及其制品称为A、输入输出媒体B、输入输出通道C、输入输出接口D、输入输出端口24.下面是关于解释程序和编译程序的论述,其中正确的一条是A、编译程序和解释程序均能产生目标程序B、编译程序和解释程序均不能产生目标程序C、编译程序能产生目标程序而解释程序则不能D、编译程序不能产生目标程序而解释程序能25.下面是与地址有关的四条论述,其中有错的一条是A、地址寄存器是用来存储地址的寄存器B、地址码是指令中给出源操作数地址或运算结果的目的地址的有关信息部分C、地址总线上既可传送地址信息,也可传送控制信息和其他信息D、地址总线上除传送地址信息外,不可以用于传输控制信息和其它信息26.下列四个不同数制表示的数中,数值最大的是A、二进制数11011101B、八进制数334C、十进制数219D、十六进制数DA27.当个人计算机以拨号方式接入Internet网时,必须使用的设备是A、网卡B、调制解调器(Modem)C、电话机D、浏览器软件28.微机计算机硬件系统中最核心的部件是A、主板B、CPUC、内存储器D、I/O设备29.为解决某一特定问题而设计的指令序列称为A、文档B、语言C、程序D、系统30.下列关于系统软件的四条叙述中,正确的一条是A、系统软件与具体应用领域无关B、系统软件与具体硬件逻辑功能无关C、系统软件是在应用软件基础上开发的D、系统软件并不具体提供人机界面31.微型计算机存储系统中,PROM是A、可读写存储器B、动态随机存取存储器C、只读存储器D、可编程只读存储器32.下列几种存储器中,存取周期最短的是A、内存储器B、光盘存储器C、硬盘存储器D软件盘存储器33.计算机能直接识别和执行的语言是A、机器语言B、高级语言C、汇编语言D、数据库语言34.与十进制数254等值的二进制数是A、11111110B、11101111C、11111011D、1110111035.下列术语中,属于显示器性能指标的是A、速度B、可靠性C、分辨率D、精度36.在计算机领域中通常用MIPS来描述A、计算机的运算速度B、计算机的可靠性C、计算机的可运行性D、计算机的可扩充性37.在计算机网络中,表征数据传输可靠性的指标是A、传输率B、误码率C、信息容量D、频带利用率38.以下关于链式存储结构的叙述中哪一条是不正确的?A、结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构B、逻辑上相邻的结点物理上不必邻接C、可以通过计算直接确定第i个结点的存储地址D、插入、删除运算操作方便,不必移动结点39.以下哪一个不是栈的基本运算A、删除栈顶元素B、删除栈底元素C、判断栈是否为空D、将栈置为空栈40.以下关于广义表的叙述中,正确的是A、广义表是0个或多个单元素或子表组成的有限序列B、广义表至少有一个元素是子表C、广义表不可以是自身的子表D、广义表不能为空表41.如果一棵二叉树结点的前序序列是A、B、C,后序序列是C、B、A,则该二叉树结点的对称序序列A、必为A、B、CB、必为A、C、BC、必为B、C、AD、不能确定42.在虚拟页式存储管理方案中,下面哪一部分完成将页面调入内存的工作?A、缺页中断处理B、页面淘汰过程C、工作集模型应用D、紧缩技术利用43.在DOS系统中,用于记录和管理磁盘数据区使用情况的数据结构A、位图表B、空闲块表C、文件分配表D、文件控制块44.PSP是?A、团队软件过程B、个体软件过程C、过程改进过程D、质量管理过程45.在CMM模型中,对软件成熟度有以下5个级别,请从低到高排序a初始级:软件过程的特点是无秩序的,偶尔甚至是混乱的。
阿里巴巴校园招聘笔试题目分享
阿里巴巴校园招聘笔试题目分享导读:时间为2014年8月29日,均为网上答题。
第一部分为单选题,共20题,要在40分钟内完成。
每个人的选择题都不一样,应该是后台有题库,每个人的试卷都是随机生成的。
第二部分为附加题,一般为1道问答题,2道编程题。
以下是由应届毕业生网小编j.l为您整理推荐的阿里巴巴校园招聘笔试题目分享,欢迎参考阅读。
通过算法生成的随机数是“伪随机”的,也就是说,在设定好第一个数之后,后面的数字的序列是确定的,并且经过一个非常大的循环会回到第一个数的状态,然后周而复始。
显然,摇号、抽奖的程序是不能通过伪随机数来实现的。
现实中常常基于某种热噪声来实现真正的随机数。
假定某热噪声是标准正态分布,那么能否将它转换成(0,1)区间上的均匀分布______?忽略测量和计算误差,可以转换为(0,1)区间上的均匀分布。
无法转换为(0,1)区间上的均匀分布。
信息不足,无法判断。
借助伪随机数生成算法可以转换为(0,1)区间上的均匀分布。
仅仅靠伪随机数生成算法,就可以生成(0,1)区间上的均匀分布以上说法都不对。
在一个童话世界里,任意两个人之间要么是朋友关系,要么是敌人关系,不存在其他关系及没有关系的情况。
并且,如果a和b是朋友关系,b和c是朋友关系,那么a和c必然是朋友关系。
那么关于这个童话世界中的人群的说法错误的是:______?可能只有1个人群,这个人群内部是朋友关系。
可能有2个人群,人群内部是朋友关系,人群之间是敌人关系。
可能有3个及以上个人群,人群内部是朋友关系,人群之间是敌人关系。
如果存在多个人群,并且人群内部是朋友关系,人群之间是敌人关系,那么这些人群必然是差不多大小的。
选项b中的情况可以是其中一个人群只有一个人,另外一个人群可以由很多人。
这样一个世界里朋友关系是比较不容易发生变化的。
12321能被写成______种两个质数相加的形式。
12345在小端序的机器中,如果unionx{intx;chary[4];};如果:xa;a.x=0x11223344;//16进制则:______a.y[0]=11a.y[1]=11a.y[2]=11a.y[3]=11a.y[0]=22a.y[3]=22使用一辆卡车运输n块单块1tb装满数据的硬盘,以时速80km/h 行驶1000km将数据运送到目的地;卡车至少运送______块硬盘才能使传输速率超1000gbps。
2014校园招聘阿里巴巴笔试题系统工程师
(3)信号机制:类似于进程间的信号处理; 进程与线程的区别: 进程概念: 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创 建一个进程,并为它分配资源。然后,把该进程放入进程的就绪队列。进程调度程序选中它,为它分配 CPU 以及其他有关子亚 U 年,该进程才真正运行。所以,进程是系统中并发执行的单位。 线程的概念: 线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操 作系统所完成的任务,那么线程表示完成该任务的许多子任务之一。线程可以在处理器上独立调度执行, 这样,在多处理器环境下就允许几个线程各自在单独处理器上进行。 引入线程的好处: (1)易于调度。 (2)提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部 分。 (3)开销少。创建线程比创建进程要快,所需开销很少。 (4)利于充分发挥多处理器的功能。通过创建多线程进程(即一个进程可具有两个或更多个线程), 每个线程在一个处理器上运行,从而实现应用程序的并发性,使每个处理器都得到充分运行。 进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。 (3)处理机分给线程,即真正在处理机上运行的是线程。 (4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
(5)信息量:主要作为进程间以及同一进程不同线程之间的同步手段;
(6)套接口:更为一般的进程间通信机制,可用于不同机器之间的进程间通信。
Linux 线程间通信几种主要通信手段简介:
(1)锁机制:包括互斥锁、条件变量、读写锁,互斥锁提供了以排他方式防止数据结构被并发修改的 方法,使用条件变量可以以原子的方式阻塞线程,直到某个特定条件为真为止。对条件的测试是在互斥锁 的保护下进行的,条件变量始终与互斥锁一起使用。读写锁运行多个线程同时读共享数据,而对写操作是 互斥的;
2014年阿里巴巴校园招聘研发工程师考试真题
2014年阿里巴巴校园招聘研发工程师考试真题1.有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页?A、7B、8C、9D、102.设有一个顺序栈S,元素s1、s2、s3、s4、s5、s6依次进栈,如果6个元素的出栈顺序为s2、s3、s4、s6、s5、s1,则顺序栈的容量至少应为多少?A、2B、3C、4D、53.下列关于文件索引结构的叙述中,哪一个是错误的?A、采用索引结构,逻辑上连续的文件存放在连续的物理块中B、系统为每个文件建立一张索引表C、索引结构的优点是访问速度快,文件长度可以动态变化D、索引结构的缺点是存储开销大4.【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是()A、【2、1、4、3、9、5、8、6、7】B、【1、2、5、4、3、9、8、6、7】C、【2、3、1、4、7、9、5、8、6】D、【1、2、5、4、3、9、7、8、6】5.某页式存储管理系统中,地址寄存器长度为24位,其中页号占14位,则主存的分块大小是()字节。
A、10B、2^10C、2^14D、2^246.在一个长为33厘米的光滑凹轨上,在第3厘米、第6厘米、第19厘米、第22厘米、第26厘米处各有一个钢珠,凹轨很细,不能同时通过两个钢珠,开始时,钢珠运动方向是任意的。
两个钢珠相撞后,以相同速度反向运动。
假设所有钢珠初始速度为每秒运动1厘米,那么所有钢珠离开凹轨的最长可能时间是()A、30B、26C、38D、337.std::vector::iterator重载了下面哪些运算符?A、++B、>>C、*(前置)D、==8.下列运算符,在C++语言中不能重载的是()A、*B、?:C、::D、delete9.在排序方法中,元素比较次数与元素的初始排列无关的是()A、Shell 排序B、归并排序C、直接插入排序D、选择排序10.给定如下代码:int x[4]={0}; int y[4]={1}; 数组x和y的值为()A、{0,0,0,0},{1,1,1,1}B、{0,0,0,0},{1,0,0,0}C、{0,不确定},{1,不确定}D、与编译器相关10.给出以下定义,下列哪些操作是合法的?const char *p1 = "hello";char* const p2 = "world";A、p1++B、p1[2]='w';C、p2[2]='l';D、p2++11.假设在n进制下,下面的等式成立,n值是() 567*456=150216A、9B、10C、12D、1812.关于struct和class,下列说法正确的是()A、struct的成员默认是public,class的成员默认是privateB、struct不能继承,class可以继承C、struct可以有无参构造函数D、struct的成员变量只能是public13.定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?A、int (*(*F)(int, int))(int)B、int (*F)(int, int)C、int (*(*F)(int, int))D、*(*F)(int, int)(int)14.声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()A、(int *p[10])(int*);B、int [10]*p(int *);C、int (*(*p)[10])(int *);D、int ((int *)[10])*p;E、以上选项都不正确15.一个栈的输入序列为123.....n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是()A、不确定B、n-i+1C、iD、n-i16.下列代码编译时会产生错误的是()[cpp] view plaincopy#includeusing namespace std;struct Foo{Foo() { }Foo(int) { }void fun() { }};int main(void){Foo a(10); //语句1a.fun(); //语句2Foo b(); //语句3b.fun(); //语句4return 0;A、语句1B、语句2C、语句3D、语句417.在32位机器上,下列代码中[cpp] view plaincopy#pragma pack(2)class A{int i;union U{char buff[13];int i;}u;void foo() { }typedef char* (*f)(void*);enum{red, green, blue} color;}a;sizeof(a)的值是()A、20B、21C、22D、24E、非以上选项18.下面描述中,错误的是()A、基类定义的public成员在公有继承的派生类中可见,也能在类外被访问B、基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问C、基类定义的public和protected成员在保护继承的派生类中不可见D、基类定义的protected成员在protected继承的派生类中可见,也能在类外被访问19.当很频繁地对序列中部进行插入和删除操作时,应该选择使用的容器是()A、vectorB、listC、dequeD、stack20.判断一个单向链表中是否存在环的最佳方法是()A、两重遍历B、快慢指针C、路径记录D、哈希表辅助21.给你1、2、3 这三个数字可以使用C的各种运算符你能表示的最大的整数是()A、2*3*sizeof(1)B、3<<(2<< D、(unsignedC、sizeof(3)<<(sizeof(2)<<(sizeof(1)))> -1的二进制形式就是全1表示22.下面代码的输出是多少?[cpp] view plaincopyclass A{public:A() { cout<<"A"<<>~A() { cout<<"~A"<<>};class B:public A{public:B(A &a):_a(a){cout<<"B"<< p>}~B(){cout<<"~B"<< p>}private:A _a;};int main(void){A a; //很简单,定义a的时候调用了一次构造函数B b(a); //这里b里面的_a是通过成员初始化列表构造起来的//而且是通过copy constructor构造的是b的成员对象_a的,这里是编译器默认的,因此在构造好_a前,先调用基类构造函数//然后才是构造自身,顺序就是A()->_a->B()(局部)//因此这里有两个A,一个B//在return之前进行析构/************************************************************************//*析构是按照定义对象的反顺序来的,而且同一个对象按照构造的反顺序来的,因此这里先析构b然后才是a,那么b的构造顺序是上面的A()->_a->B()(局部),反过来,就是B()(局部)->_a->A()因此得到的就是~B->~A->~A在b之后就是析构a最后结果就是~B->~A->~A->~A*/return 0;}23.一个骰子,6面,1个面是1,2个面是2,3个面是3,问平均掷多少次能使1、2、3都至少出现一次!24.一个有趣的抛硬币问题假设有一个硬币,抛出字(背面)和花(正面)的概率都是0.5,而且每次抛硬币与前次结果无关。
阿里2014实习生研发笔试题
2.64位系统上,定义变量int*a[2][3]占据字节。
A.4 B.12 C. 24 D.48
3.Linux中使用df–h/home和du–sh/home所查看到的已使用的磁盘容量不同,可能的原因是。
21.以下有关C语言的说法中,错误的是。
A.内存泄露一般是只程序申请了一块内存,使用完后,没有及时将这块内存释放,从而导致程序占用大量内存。
B.无法通过malloc(size_t)函数调用申请超过该机器物理内存大小的内存块。
C.无法通过内存释放函数free(void *)直接将某块已经使用完的物理内存直接归还给操作系统
void f(char *x)
{
x++;
*x =‘a’;
}
int main()
{
char str [ sizeof (“hello”)];
strcpy( str,“hello”);
f(str);
cout << str;
return 0;
}
A. hello B. hallo C. allo D.以上都不是
阿里巴巴2014实习生招聘笔试题(研发工程师)--北京站
一、单选题(前10题,每题2分;后10题,每题3分;共50分。选对得满分,选错倒扣1分,不选德得0分)
1.假设一个主机的IP地址为192.168.5.121,而子网掩码为255.255.255.248。那么该主机的网络号部分(包括子网号部分)为。
int tmp = array[middle];
if(tmp < key){
阿里巴巴2014校园招聘笔试试题-软件研发工程师+答案
阿里巴巴2014秋季校园招聘-软件研发工程师笔试题1. 单选题1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数A: h(K)=K/N;B: h(K)=1;C: h(K)=K mod N;D: h(K)=(K+rand(N)) mod N, rand(N)返回0到N-1的整数答案:D2. 下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是:A: 堆排序B:插入排序C: 冒泡排序D:快速排序答案:A(插入排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O (n^2)冒泡排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2)快速排序:最优时间复杂度O(nlogn)最差时间复杂度O(n^2)平均时间复杂度O(nlogn)堆排序:最优时间复杂度O(nlogn)最差时间复杂度O(nlogn)平均时间复杂度O(nlogn))3. 下面说法错误的是:A: CISC计算机比RISC计算机指令多B: 在指令格式中,采用扩展操作码设计方案的目的是为了保持指令字长不变而增加寻址空间C:增加流水线段数理论上可以提高CPU频率D:冯诺依曼体系结构的主要特征是存储程序的工作方式答案:B4. 不属于冯诺依曼体系结构必要组成部分是:A:CPU B: Cache C:RAM D:ROM答案:B5. 一个栈的入栈序列式ABCDE则不可能的出栈序列是:A:DECBA B:DCEBA C:ECDBA D:ABCDE答案:C6.你认为可以完成编写一个C语言编译器的语言是:A:汇编B:C语言C:VB D:以上全可以答案:D7. 关于C++/JAVA类中的static成员和对象成员的说法正确的是:A:static成员变量在对象构造时候生成B: static成员函数在对象成员函数中无法调用C: 虚成员函数不可能是static成员函数D: static成员函数不能访问static成员变量答案:A8:答案:C9:某进程在运行过程中需要等待从磁盘上读入数据,此时进程的状态将:A: 从就绪变为运行B:从运行变为就绪C: 从运行变为阻塞D:从阻塞变为就绪答案:C10:下面算法的时间复杂度为:Int f(unsigned int n){If(n==0||n==1)Return 1;ElseReturn n*f(n-1);}A: O(1) B:O(n) C:O(N*N) D:O(n!)11: n从1开始,每个操作可以选择对n加1或者对n加倍。
阿里巴巴校招软件笔试题经典(含答案)
while( (as+1<len1) && (bs+1<len2) && (s1[++as] == s2[++bs]) ) //查找最大相等长度 count++;
if(count > maxlen) //如果大于最大长度则更新
int main() { bitree *root;
root=creatbitree(); printf("最大值与最小值之差为:\n"); printf("%d",abs(Max(root)-Min(root))); return 0; }
2、给定一个 query 和一个 text,均由小写字母组成。要求在 text 中找出以同样的顺序连续出 现在 query 中的最长连续字母序列的长度。例如, query 为“acbac”,text 为“acaccbabb”, 那么 text 中的“cba”为最长的连续出现在 query 中的字母序列,因此,返回结果应该为其 长度 3。请注意程序效率。
} return max;
}
int Min(bitree * root) { if(root==NULL)return 0;
else{ if(root->data<min) min=root->data; M(root->lchild); M(root->rchild);
} return min;
}
{
maxlen = count;
r1=i;
//存储公共子字符串的起始位
2014年阿里巴巴校招笔试(9月22号)题目-推荐下载
13. 有多少个 2012 位的数,这些数的任意两个相邻数位依序构成的两位数均能被 17 或 23 整除 ?
A. 3 B. 5. C. 7 D. 9
14. 关于 linux 的进程,下面说法不正确的是:
A. 僵尸进程会被 init 进程接管,不会造成资源浪费;
for(j = 0; j < NUMA; ++j) ++a[j];
}
void pb() {
int i, j; for(i = 0; i < NUMA; ++i)
for(j = 0; j < NUMB; ++j)
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术通关,1系电过,力管根保线据护敷生高设产中技工资术艺料0不高试仅中卷可资配以料置解试技决卷术吊要是顶求指层,机配对组置电在不气进规设行范备继高进电中行保资空护料载高试与中卷带资问负料题荷试2下卷2,高总而中体且资配可料置保试时障卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并22工且22作尽22下可22都能22可地护以缩1关正小于常故管工障路作高高;中中对资资于料料继试试电卷卷保破连护坏接进范管行围口整,处核或理对者高定对中值某资,些料审异试核常卷与高弯校中扁对资度图料固纸试定,卷盒编工位写况置复进.杂行保设自护备动层与处防装理腐置,跨高尤接中其地资要线料避弯试免曲卷错半调误径试高标方中高案资等,料,编试要5写、卷求重电保技要气护术设设装交备备置底4高调、动。中试电作管资高气,线料中课并敷3试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
软件工程师笔试题及答案
软件工程师笔试题及答案一、选择题1. 在面向对象编程中,封装的目的是:A. 隐藏数据B. 隐藏方法C. 隐藏数据和方法D. 隐藏类答案:C2. 下列哪个不是Java的基本数据类型?A. intB. floatC. StringD. double答案:C3. 在软件开发中,哪个阶段是进行需求分析?A. 计划阶段B. 需求分析阶段C. 设计阶段D. 编码阶段答案:B二、简答题1. 请简述软件开发生命周期(SDLC)的主要阶段。
答案:软件开发生命周期(SDLC)的主要阶段包括:- 需求收集与分析- 系统设计- 编码与实现- 测试- 部署- 维护2. 什么是递归算法?请举例说明。
答案:递归算法是一种在问题解决过程中调用自身的算法。
它通常用于解决可以分解为相似子问题的问题。
例如,计算阶乘的算法就是一个递归算法:```int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}```三、编程题1. 编写一个函数,实现字符串的反转。
示例代码:```pythondef reverse_string(s):return s[::-1]```2. 给定一个整数数组,请找出其中最大的连续子数组和。
示例代码:```pythondef max_subarray_sum(arr):max_sum = current_sum = arr[0]for num in arr[1:]:current_sum = max(num, current_sum + num)max_sum = max(max_sum, current_sum)return max_sum```四、案例分析题1. 描述一个你参与过的软件项目,并解释你在项目中的角色和贡献。
答案:(此处应根据个人经验填写具体内容,包括项目名称、使用的技术和工具、个人职责、解决的问题以及取得的成果等。
2014年阿里巴巴校招笔试(9月22号)题目
1. 现在计算机中整数采用的编码方式:A. 原码B. 反码C. Unicode 码D. 补码2. 下面程序的运行结果:#include <iostream>using namespace std;void test(char c, char *d){++c;++*d;cout << c << *d;}int main(){char a='A', b = 'a';test(b, &a);cout << a << b;return 0;}A. ...B. ...C. bBBaD. ...3. 下面的说法那个正确:#define NUMA 10000000#define NUMB 1000int a[NUMA], b[NUMB];void pa(){int i, j;for(i = 0; i < NUMB; ++i)for(j = 0; j < NUMA; ++j)++a[j];}void pb(){int i, j;for(i = 0; i < NUMA; ++i)for(j = 0; j < NUMB; ++j)++b[j];}A. pa 和pb 运行的一样快B. pa 比pb 快C. pb 比pa 快D. 无法判断4. 10 个小球中只有一个红球,现在有放回地抽取一个小球,问至到第n 次才取到k 个红球(k ≤n) 的概率是多少?A. B. C. D.5. 某指令流水线由5 段组成,各段所需要的时间分别是:t、3t、t、2t 和t 。
问如果连续执行10 条指令,则吞吐率是多少?A. 0.1428/tB. 0.2041/tC. 0.2857/tD. 0.3333/t6. 现有两道四个选项的火星文单选题,你已经至少答对一题了,那么你两题都对的概率是多少?A. 1/3B. 1/4C. 1/7D. 1/87. 以下是一个tree 的遍历算法,queue 是一个FIFO 队列。
阿里校园招聘研发工程师笔试题
阿里校园招聘研发工程师笔试题1.某团队有2/5的人会写java程序,有3/4的人会写c++程序,这个团队里同时会写java和c++的至少有()人a.3b.4c.5d.8e.15f.202.某团队负责人接到一个紧急项目,他要考虑在代号为abcdef这6个团队成员中的部分人员参加项目开发工作。
人选必须满足一下各点:ab两人中至少一个人参加ad不能都去aef三人中要派两人bc两人都去或都不去cd两人中有一人参加若d不参加,e也不参加那么最后()参加紧急项目开发。
a.ecefb.afc.ecfd.fe.abcff.ecdef3.对立双方争夺一个价值为1的商品,双方可以采纳的策略可以分为鸽子策略和鹰策略。
如果双方都是鸽子策略,那么双方各有1/2的几率获得该物品;如果双方均为鹰策略,那么双方各有1/2的概率取胜,胜方获得价值为1的物品,付出价值为1的代价;如果一个为鸽子策略,一方为鹰策略,那么鹰策略获得价值为1的物品。
在争夺结果出来之前,没人知道对方是鸽子策略还是鹰策略。
当选择鸽子策略的人的比例是某一个值时,选择鸽子策略和选择鹰策略的预期收益是相同的。
那么该值是:a.0.2b.0.4c.0.5d.0.7e.0.8f.以上都不对4.在小端机器中,如果unionx{intx;chary[4];};如果:xa;a.x=0x11223344;//16进制则:a.a.y[0]=11b.a.y[1]=11c.a.y[2]=11d.a.y[3]=11e.a.y[0]=22f.a.y[3]=225.在以下*作中,数组比线*表速度更快的是()a.原地逆序b.头部*入c.返回中间节点d.返回头部节点e.选择随机节点6.linux系统某个可执行文件属于root并且有setid,当一个普通用户mike运行这个程序时,产生的进程的有效用户和实际用户分别是()a.rootmikeb.rootrootc.mikerootd.mikemikee.deamonmikef. mikedeamon7.有4个进程a、b、c、d,设它们依次进入就绪队列,因相差实际很短可视为同时到达。
腾讯阿里巴巴软件开发类笔试试题
腾讯2014校园招聘软件开发类笔试试题考试时长:120分钟一不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)A.CFHGEBDA B.CDFEGHBA C.FGHCDEBA D.CFHGEDBA2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)A.有序数组 B.有序链表 C.AVL树 D.Hash表3 下列排序算法中,哪些时间复杂度不会超过nlogn?(BC)A.快速排序 B.堆排序 C.归并排序 D.冒泡排序4 初始序列为1 8 6 25 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)A.8 3 2 5 1 6 4 7B.3 2 8 5 1 4 6 7C.3 8 2 5 1 6 7 4D.8 2 3 5 1 4 7 65 当n=5时,下列函数的返回值是:(A)int foo(int n){if(n<2)return n;return foo(n-1)+foo(n-2);A.5 B.7 C.8 D.106 S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C)A.37.5% B.32.5% C.28.6% D.26.1%7 Unix系统中,哪些可以用于进程间的通信?(BCD)A.Socket B.共享内存 C.消息队列 D.信号量8 静态变量通常存储在进程哪个区?(C)A.栈区 B.堆区 C.全局区 D.代码区9 查询性能(B)A.在Name字段上添加主键B.在Name字段上添加索引C.在Age字段上添加主键D.在Age字段上添加索引10 IP地址131.153.12.71是一个(B)类IP地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
阿里巴巴2014秋季校园招聘-软件研发工程师笔试题2013-09-21 22:381089人阅读评论(4)收藏举报校园招聘阿里巴巴软件研发算法百度1. 单选题1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数A: h(K)=K/N;B: h(K)=1;C: h(K)=K mod N;D: h(K)=(K+rand(N)) mod N, rand(N)返回0到N-1的整数答案:D2. 下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是:A: 堆排序B:插入排序C: 冒泡排序D:快速排序答案:A(插入排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O (n^2)冒泡排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2)快速排序:最优时间复杂度O(nlogn)最差时间复杂度O(n^2)平均时间复杂度O(nlogn)堆排序:最优时间复杂度O(nlogn)最差时间复杂度O(nlogn)平均时间复杂度O(nlogn))3. 下面说法错误的是:A: CISC计算机比RISC计算机指令多B: 在指令格式中,采用扩展操作码设计方案的目的是为了保持指令字长不变而增加寻址空间C:增加流水线段数理论上可以提高CPU频率D:冯诺依曼体系结构的主要特征是存储程序的工作方式答案:B4. 不属于冯诺依曼体系结构必要组成部分是:A:CPU B: Cache C:RAM D:ROM答案:B5. 一个栈的入栈序列式ABCDE则不可能的出栈序列是:A:DECBA B:DCEBA C:ECDBA D:ABCDE答案:C6.你认为可以完成编写一个C语言编译器的语言是:A:汇编B:C语言C:VB D:以上全可以答案:D7. 关于C++/JAVA类中的static成员和对象成员的说法正确的是:A:static成员变量在对象构造时候生成B: static成员函数在对象成员函数中无法调用C: 虚成员函数不可能是static成员函数D: static成员函数不能访问static成员变量答案:A8:答案:C9:某进程在运行过程中需要等待从磁盘上读入数据,此时进程的状态将:A: 从就绪变为运行B:从运行变为就绪C: 从运行变为阻塞D:从阻塞变为就绪答案:C10:下面算法的时间复杂度为:Int f(unsigned int n){If(n==0||n==1)Return 1;ElseReturn n*f(n-1);}A: O(1) B:O(n) C:O(N*N) D:O(n!)11: n从1开始,每个操作可以选择对n加1或者对n加倍。
若想获得整数2013,最少需要多少个操作。
A:18 B:24 C:21 D;不可能答案:A,对2013用除法,显示2013->2012->1006->503->502->251->250->125->124->62->31->30->15->14->7->6->3-> 2->1正向只能是+1和×2,所以逆向只能-1和/2,由上过程可得18次12:对于一个具有n个顶点的无向图,若采用邻接表数据结构表示,则存放表头节点的数组大小为:A: n B: n+1 C: n-1 D:n+边数答案:A13:答案:A.对于几何中的每个字符串取hash可以看作是同分布的独立重复事件,所以每一个事件出现10的概率都是p=1/1024,那么当出现的时候,期望的次数就是1/p,1024.14:如下函数,在32bit系统foo(2^31-3)的值是:Int foo(int x){Return x&-x;}A:0 B: 1 C:2 D:415:对于顺序存储的线性数组,访问节点和增加节点删除节点的时间复杂度为:A: O(n),O(n)B:O(n),O(1) C:O(1),O(n) D:O(n),O(n)答案:C16:在32为系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是:Struct A{Int a;short b;int c;char d;};Struct B{int a;short b;char c;int c;};A: 16,16 B:13,12 C:16,12D:11,16答案:C17:袋中有红球,黄球,白球各一个,每次任意取一个放回,如此连续3次,则下列事件中概率是8/9的是:A: 颜色不全相同B:颜色全不相同C:颜色全相同D:颜色无红色18:一个洗牌程序的功能是将n张牌的顺序打乱,以下关于洗牌程序的功能定义说法最恰当的是:A: 每张牌出现在n个位置上的概率相等B: 每张牌出现在n个位置上的概率独立C: 任何连续位置上的两张牌的内容独立D: n张牌的任何两个不同排列出现的概率相等答案:A19:用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到则只算一种,一共有多少种染色:A: 10 B:11 C:14: D:15答案:C解释:应该有14种方案,设只有黑白两色,默认白色,那么,用p(n)表示有n个黑棋的种类p(0)=p(6)=1p(1)=p(5)=1p(2)=p(4)=3 //相邻的一种,隔一个的一种,两个的一种p(3)=4 //都相邻的一种,BB0B的一种,BB00B的一种,B0B0B的一种,一共4种综上是14种20:递归式的先序遍历一个n节点,深度为d的二叉树,则需要栈空间的大小为:A: O(n) B:O(d) C:O(logn) D:(nlogn)答案:B第二部分:多选21:两个线程运行在双核机器上,每个线程主线程如下,线程1:x=1;r1=y;线程2:y=1;r2=x;X和y是全局变量,初始为0。
以下哪一个是r1和r2的可能值:A: r1=1,r2=1B: r1=1,r2=0C:r1=0,r2=0D:r1=0,r2=1答案:ABD22.关于Linux系统的负载,以下表述正确的是:A: 通过就绪和运行的进程数来反映B: 通过TOP命令查看C: 通过uptime查看D: Load:2.5,1.3,1.1表示系统的负载压力在逐渐变小答案:BC(对于A不确定)23:关于排序算法的以下说法,错误的是:A: 快速排序的平均时间复杂度O(nlogn),最坏O(N^2)B:堆排序平均时间复杂度O(nlogn),最坏O(nlogn)C:冒泡排序平均时间复杂度O(n^2),最坏O(n^2)D:归并排序的平均时间复杂度O(nlogn),最坏O(n^2)答案:D解释:归并排序的平均时间复杂度O(nlogn),最坏O(nlogn)24:假设函数rand_k会随机返回一个【1,k】之间的随机数(k>=2),并且每个证书出现的概率相等。
目前有rand_7,通过调用rand_7()和四则运算符,并适当增加逻辑判断和循环控制逻辑,下列函数可以实现的有:A:rand_3 B:rand_21 C:rand_23 D:rand_49答案:ABCD解释:对于rand_x(x<7)的直接截断,只要rand数大于x直接忽略,保证rand_x能够做到概率相等。
而对于其他的则采用7×rand_7+rand_7,可以-7得到rand_49,然后截断成rand_42,统一除以2,则是rand_21,其他类似。
阿里巴巴2014秋季校园招聘-软件研发工程师笔试题续2013-09-21 23:32368人阅读评论(0)收藏举报校园招聘百度阿里巴巴软件研发算法第三部分25、某二叉树的前序遍历序列为-+a*b-cd/ef,后序遍历序列为abcd-*+ef/-,问其中序遍历序列是——。
答案:a+b*c-d-e/f26、某缓存系统采用LRU淘汰算法,假定缓存容量为4,并且初始为空,那么在顺序访问以下数据项的时候1,5,1,3,2,4,1,2出现缓存命中的次数是——。
最后缓存中即将准备淘汰的数据项是——。
答案:3,3解释:(LRU是Least Recently Used 近期最少使用算法。
)1-》1,5-》5,1-》5,1,3-》5,1,3,2-》1,3,2,4-》3,2,4,1-》3,4,1,2-》首先1调入内存,然后5调入内存,然后1调入内存(命中缓存),然后3调入内存,然后2调入内存,然后4调入内存(将最少使用的5置换出内存),然后1调入内存(命中缓存),然后2调入内存(命中缓存)。
最后,最少使用的3将面临被置换出的危险。
27、两个较长的单向链表a和b,为了找出及诶单noed满足node in a并且node in b。
请设计空间使用尽量小的算法(用c/c++,java 或者伪代码)[html]view plaincopyprint?1struct node2{3int v;4node *next;5};6/*7返回链表的长度8链表为空返回09*/10size_t listLen(node * p)11{12size_t num = 0;13while (p!=NULL)14{15num++;16p = p->next;17}18return num;19}20// 如果找到了则返回指针指向公共节点21// 如果不存在则返回空指针22node * findFirstCommenNode(node * pheada, node * pheadb) 23{24size_t lenA = listLen(pheada);25size_t lenB = listLen(pheadb);2627node * plistA = pheada;28node * plistB = pheadb;29//调整长度30//plistA 指向较长的一个31if (lenA < lenB)32{33plistB = pheada;34plistA = pheadb;35size_t t = lenA;36lenA = lenB;37lenB = t;38}39while(lenA > lenB)40{41plistA = plistA->next;42--lenA;43}44//一样长了45//寻找公共节点46while (plistA!=NULL && plistA != plistB)47{48plistA = plistA->next;49plistB = plistB->next;50}51return plistA;52}算法的空间复杂度O(1),时间复杂度O(m+n)。
28、当存储数据量超出单节点数据管理能力的时候,可以采用的办法有数据库sharding的解决方案,也就是按照一定的规律把数据分散存储在多个数据管理节点N中(节点编号为0,1,2,,,,N-1)。