阿里巴巴2014秋季校园招聘_软件研发工程师笔试题答案

合集下载

阿里巴巴笔试题

阿里巴巴笔试题

1.平均速度最快的排序算法是______。

Shell排序快速排序冒泡排序插入排序2014-03-29 18:36:022.某服务进程的QPS(没秒处理的请求个数)较低,在空闲时间RT(响应时间)比较合理。

在压力下CPU占用率20%左右。

那么可能存在的问题是______。

该进程的某个处理过程的代码需要提高速度该进程依赖的服务可能存在性能瓶颈该进程需要增加线程数该进程可能有一个锁的粒度太大2014-03-29 18:36:163.无锁化编程有哪些常见方法?______ 。

针对计数器,可以使用原子加只有一个生产者和一个消费者,那么就可以做到免锁访问环形缓冲区(Ring Buffer)RCU(Read-Copy-Update),新旧副本切换机制,对于旧副本可以采用延迟释放的做法CAS(Compare-and-Swap),如无锁栈,无锁队列等待2014-03-29 18:37:002014-03-29 18:37:004.假设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f依次通过S和Q,即每一个元素必须先进栈,之后再出栈进入队列。

若这6个元素出队的顺序是b、d、c、f、e、a,则栈S的容量至少应该为______。

34562014-03-29 18:37:115.设栈S初始状态为空。

元素a,b,c,d,e,f依次通过栈S,若出栈的顺序为c,f,e,d,b,a,则栈S的容量至少应该为______ 。

3462014-03-29 18:37:256.一个单向链表,头指针和尾指针分别为p,q,以下_____项操作的复杂度受队列长度的影响?删除头部元素删除尾部元素头部元素之前插入一个元素尾部元素之后插入一个元素2014-03-29 18:37:337.集合A={1,2,3},A上的关系R={(1,1),(2,2),(2,3),(3,2),(3,3)},则R不具备。

自反性传递性对称性反对称性2014-03-29 18:37:448.件设备的寿命通常符合指数分布,即无记忆性,也就是如果一个设备当前正常工作,那么剩余预期寿命和已经工作的时间无关。

阿里2014年秋招研发试题_附答案

阿里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.“秘密”是一款在朋友圈内匿名交流的SNS平台,A朋友很多的楼主。

B朋友很少的楼主。

C发负能量帖子的楼主。

D有很多个小朋友圈的楼主。

E发正能量帖子的楼主。

F只有一个大朋友圈的楼主。

2.有一个装过食盐的瓶子,容积是w,在食盐用完之后,还有一些食盐粉末(体积可以忽略)残留在瓶子壁上。

现在要把该瓶子改装糖,给你u体积的纯洁水,用来清洗该瓶子。

在每次清洗之后,瓶子里会残留至少v体积的水(食盐溶液,可以忽略盐的体积)。

假设w>u>v,请问下述哪种方式使用这些纯洁水,能把瓶子洗得最干净?A.把所有的纯洁水全部倒入瓶子,然后把水倒掉。

B.将纯洁水平均分为两份,用每一份清水洗一遍瓶子。

C.每次注入体积为v的纯洁水清洗瓶子,直到纯洁水用尽。

D.每次注入体积为2v的纯洁水清洗瓶子,直到纯洁水用尽。

E.将用过的水重新注入瓶子,屡次清洗。

F.以上方法清洗效果相同。

3.有一只火鸡出生在某年春天。

从出生第一天起,主人就会每天给它喂食。

这只火鸡用一个模型来计算主人对它的爱的程度=吃到米的天数/(出生之后的总天数+1)。

这只火鸡发现这个爱的指数每天都在上升。

有一天感恩节到了,火鸡被主人杀掉了。

关于火鸡的爱的指数模型的说法正确的选项是:?A.火鸡的模型之所以无效,是因为这个公式不是最大似然估计。

B.火鸡的模型之所以无效,是因为这个爱的指数增长速度先快后慢。

C.火鸡的模型之所以无效,是因为没有计算这个爱的指数的方差。

D.火鸡的模型之所以无效,是因为分母+1了。

E.火鸡的模型之所以无效,是因为主人太坏了。

F.火鸡的模型之所以无效,是因为统计的概率空间不完整。

4.以下方法中,不可以用来程序调优 ?A.改善数据访问方式以提升缓存命中率B.使用多线程的方式提高I/O密集型操作的效率C.利用数据库连接池替代直接的数据库访问D.使用迭代替代递归E.合并多个远程调用批量发送F.共享冗余数据提高访问效率5.并发进程执行的相对速度是。

笔试真题——阿里巴巴

笔试真题——阿里巴巴

阿里巴巴软件测试笔试题类型:软件测试|试题: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初始级:软件过程的特点是无秩序的,偶尔甚至是混乱的。

阿里巴巴笔试题及答案

阿里巴巴笔试题及答案

阿里巴巴笔试题及答案篇一:阿里巴巴oracle-dba 笔试题及答案】txt>1: 列举几种表连接方式hash join/merge join/nest loop(cluster join)/index join2: 不借助第三方工具,怎样查看sql 的执行计划set autot onexplain plan set statement_id = item_id for sql;select * from table(dbms_xplan.display);在optimizer_mode=choose 时, 如果表有统计信息(分区表外) ,优化器将选择cbo, 否则选rbo 。

rbo 遵循简单的分级方法学, 使用15 种级别要点,当接收到查询,优化器将评估使用到的要点数目,然后选择最佳级别(最少的数量)的执行路径来运行查询。

cbo 尝试找到最低成本的访问数据的方法, 为了最大的吞吐量或最快的初始响应时间,计算使用不同的执行计划的成本,并选择成本最低的一个,关于表的数据内容的统计被用于确定执行计划。

4: 如何定位重要(消耗资源多)的sql select sql_textfrom v$sqlwhere disk_reads 1000 or (executions 0 and buffer_gets/executions 30000); 5: 如何跟踪某个session 的sql execdbms_system.set_sql_trace_in_session(sid,serial#,sql_trace); selectsid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1);exec dbms_system.set_ev(sid,serial#,event_10046,level_12,);6:sql 调整最关注的是什么查看该sql 的response time(db block gets/consistent gets/physicalreads/sorts (disk))7: 说说你对索引的认识(索引的结构、对dml 影响、为什么提高查询性能) b-tree index/bitmap index/function index/patitional index(local/global) 索引通常能提高select/update/delete 的性能, 会降低insert 的速度, 8: 使用索引查询一定能提高查询的性能吗?为什么索引就是为了提高查询性能而存在的,如果在查询中索引没有提高性能, 只能说是用错了索引,或者讲是场合不同9: 绑定变量是什么?绑定变量有什么优缺点?绑定变量是相对文本变量来讲的,所谓文本变量是指在sql 直接书写查询条件,这样的sql 在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询bind value 在运行时传递,然后绑定执行。

2014年阿里巴巴校园招聘研发工程师考试真题

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,而且每次抛硬币与前次结果无关。

阿里巴巴笔试题目

阿里巴巴笔试题目

1.现有1G数据需要排序,计算资源只有1G内存可用,下列排序方法中最可能出现性能问题的是____。

A.堆排序B.插入排序C.归并排序D.快速排序E.选择排序F.冒泡排序正确答案:C2.Linux下两个进程可以同时打开同一个文件,这时如下描述错误的是:A.两个进程中分别产生生成两个独立的fdB.两个进程可以任意对文件进行读写操作,操作系统并不保证写的原子性C.进程可以通过系统调用对文件加锁,从而实现对文件内容的保护D.任何一个进程删除该文件时,另外一个进程会立即出现读写失败E.两个进程可以分别读取文件的不同部分而不会相互影响F.一个进程对文件长度和内容的修改另外一个进程可以立即感知正确答案:D一个进程删除该文件后,另一个进程可以继续操作,直到退出以后,才找不到该文件3.现在有一个程序由A,B两个同学结对编程完成,在整个程序中的代码比例是3:5,据往常的统计A同学的千行代码缺陷率为10‰,B同学的千行代码缺陷率为15‰,现在在改程序中发现了一个缺陷,那么是由A同学的代码引起的缺陷的概率为____。

A.28.6%B.37.5%C.40.0%D.47.4%E.52.6%F.71.4%正确答案:A记发现BUG为事件BUG,A编写代码为事件A,B编写代码为事件B,则A编写的代码中发现BUG的概率为P(BUG|A)=0.01%B编写的代码中发现BUG的概率为P(BUG|B)=0.015%对于已经编好的一个程序,P(A)=3/8,P(B)=5/8根据贝叶斯公式得:P(A|BUG)=P(A)P(BUG|A)/{P(A)P(BUG|A)+P(B)P(BUG|B)}=3/8*0.01%/(3/8*0.01%+5/8*0.015%)4.猜数字游戏的过程是你输入一个4位数(数字选取0~9,不会重复),电脑会告诉你两个信息:A个数字和位置均正确,B个数字正确但位置错误。

例如正确答案是7890你输入0789,电脑会告诉你0A4B,表示有0个数字和位置完全正确,但有4个数字正确但位置错误。

2014校园招聘阿里巴巴笔试题系统工程师

2014校园招聘阿里巴巴笔试题系统工程师
(2)信号量机制:包括无名线程信号量和命名线程信号量;
(3)信号机制:类似于进程间的信号处理; 进程与线程的区别: 进程概念: 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创 建一个进程,并为它分配资源。然后,把该进程放入进程的就绪队列。进程调度程序选中它,为它分配 CPU 以及其他有关子亚 U 年,该进程才真正运行。所以,进程是系统中并发执行的单位。 线程的概念: 线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操 作系统所完成的任务,那么线程表示完成该任务的许多子任务之一。线程可以在处理器上独立调度执行, 这样,在多处理器环境下就允许几个线程各自在单独处理器上进行。 引入线程的好处: (1)易于调度。 (2)提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部 分。 (3)开销少。创建线程比创建进程要快,所需开销很少。 (4)利于充分发挥多处理器的功能。通过创建多线程进程(即一个进程可具有两个或更多个线程), 每个线程在一个处理器上运行,从而实现应用程序的并发性,使每个处理器都得到充分运行。 进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。 (3)处理机分给线程,即真正在处理机上运行的是线程。 (4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
(5)信息量:主要作为进程间以及同一进程不同线程之间的同步手段;
(6)套接口:更为一般的进程间通信机制,可用于不同机器之间的进程间通信。
Linux 线程间通信几种主要通信手段简介:
(1)锁机制:包括互斥锁、条件变量、读写锁,互斥锁提供了以排他方式防止数据结构被并发修改的 方法,使用条件变量可以以原子的方式阻塞线程,直到某个特定条件为真为止。对条件的测试是在互斥锁 的保护下进行的,条件变量始终与互斥锁一起使用。读写锁运行多个线程同时读共享数据,而对写操作是 互斥的;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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!)答案:B11: 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:4答案:B15:对于顺序存储的线性数组,访问节点和增加节点删除节点的时间复杂度为: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:颜色无红色答案:A18:一个洗牌程序的功能是将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,其他类似。

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{3 int v;4 node *next;5};6/*7返回链表的长度8链表为空返回010size_t listLen(node * p)11{12 size_t num = 0;13 while (p!=NULL)14 {15 num++;16 p = p->next;17 }18 return num;19}20// 如果找到了则返回指针指向公共节点21// 如果不存在则返回空指针22node * findFirstCommenNode(node * pheada, node * pheadb)23{24 size_t lenA = listLen(pheada);25 size_t lenB = listLen(pheadb);2627 node * plistA = pheada;28 node * plistB = pheadb;29 //调整长度30 //plistA 指向较长的一个31 if (lenA < lenB)32 {33 plistB = pheada;34 plistA = pheadb;35 size_t t = lenA;36 lenA = lenB;37 lenB = t;38 }39 while(lenA > lenB)40 {41 plistA = plistA->next;42 --lenA;43 }44 //一样长了45 //寻找公共节点46 while (plistA!=NULL && plistA != plistB)47 {48 plistA = plistA->next;49 plistB = plistB->next;50 }51 return plistA;52}算法的空间复杂度O(1),时间复杂度O(m+n)。

28、当存储数据量超出单节点数据管理能力的时候,可以采用的办法有数据库sharding的解决方案,也就是按照一定的规律把数据分散存储在多个数据管理节点N中(节点编号为0,1,2,,,,N-1)。

假设存储的数据时a 请完成为数据a计算存储节点的程序。

相关文档
最新文档