《2023年阿里巴巴实习生笔试题含答案.pdf》由会员分享,可在线阅读,更多相关《2023年阿里巴巴实习生笔试题含答案.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Q 单选题关于C+的inline关键字以下说法正确的是0使用s l s e关键字的幽会被编淳器在调用处展开头文件中可以包含in lin e函飘的声明可以在同一个项目的不同源文件内定义函数名相同但实现不同的s15 cM定义在S a s s声明内的成员函数默认是工n lin e酬优先使用C lass声明内定义的s l i n 数优先使用C lass实现的内in lin e圉数的实现答案:D内联函数:T ip:只有当函数只有10行甚至更少时才将其定义为内联函数.定义:当函数被声明为内联函数之后,编译器会将其内联展开,而不是按通常的函数调用机制进行调用.优点:当函数体比较小的时候,内联该函数可以令目的
2、代码更加高效.对于存取函数以及其它函数体比较短,性能关键的函数,鼓励使用内联.缺陷:滥用内联揩导致程序变慢.内联也许使目的代码量或增或减,这取决于内联函数的大小.内联非常短小的存取函数通常会减少代码大小,但内联一个相称大的函数将戏剧性的增长代码大小.现代解决器由于更好的运用了指令缓存,小巧的代码往往执行更快。结论:一个较为合理的经验准则是,不要内联超过10行的函数.谨慎对待析构函数,析构函数往往比其表面看起来要更长,由于有隐含的成员和基类析构函数被调用!另一个实用的经验准则:内联那些包含循环或switch语句的函数经常是得不偿失(除非在大多数情况下,这些循环或switch语句从不被执行).注意
3、:有些函数即使声明为内联的也不一定会被编译器内联,这点很重要;比如虚国数和递归函数就不会被正常内联.通常,递归函数不应当声明成内联函数.(递归调用堆栈的展开并不像循环那么简朴,比如递归层数在编译时也许是未知的,大多数编译器都不支持内联递归函数).虚函数内联的重要因素则是想把它的函数体放在类定义内,为了图个方便,抑或是当作文档描述其行为,比如精短的存取函数.-inl.h 文献:T ip:复杂的内联函数的定义,应放在后缀名为-inl.h的头文献中.内联函数的定义必须放在头文献中,编译器才干在调用点内联展开定义.然而,实现代码理论上应当放在.cc文献中,我们不希望.h 文献中有太多实现代码,除非在可
4、读性和性能上有明显优势.假如内联国数的定义比较短小,逻辑比较简朴,实现代码放在.h 文献里没有任何问题.比如,存取函数的实现理所当然都应当放在类定义内.出于编写者和调用者的方便,较复杂的内联函数也可以放到.h 文献中,假如你觉得这样会使头文献显得笨重,也可以把它萃取到单独的-inl.h中.这样把实现和类定义分离开来,当需要时包含相应的-inl.h即可。A 项错误,由于使用inline关键字的函数只是用户希望它成为内联函数,但编译器有权忽略这个请求,比如:若此函数体太大,则不会把它作为内联函数展开的。B 项错误,头文献中不仅要包含inline函数的声明,并且必须包含定义,且在定义时必须加 inl
5、ine o【关键字inline必须与函数定义体放在一起才干使函数成为内联,仅将 inline放在函数声明前面不起任何作用】C 项错误,inline函数可以定义在源文献中,但多个源文献中的同名inline函数的实现必须相同。一般把inline函数的定义放在头文献中更加合适。D 项对的,类内的成员函数,默认都是inline的。【定义在类声明之中的成员函数将自动地成为内联函数】EF项无意思,不管是class声明中定义的inline函|数,还是class实现中定义的inline函数,不存在优先不优先的问题,由于class的成员函数都是inline的,加了关键字inline也没什么特殊的答案:D插入排序
6、改良的冒泡最优也是n数组排序算法算法时间复杂度空间复杂度最佳平均最差最差Quicksort0(n log(n)0(n log(n)O(nA2)O(log(n)Merqesort0(n log(n)0(n log(n)0(n log(n)0(n)Timsort0(n)0(n log(n)O(n log(n)0(n)Heapsort0(n log(n)0(n log(n)0(n log(n)0(1)Bubble Sort0(n)0(nA2)0(nA2)0(1)Insertion Sort0(n)0(nA2)0(nA2)0(1)Selection Sort0(nA2)0(nA2)0(nA2)0(1)
7、Shell Sort0(n)O(nlog(n)A2)O(nlog(n)A2)0(1)Bucket SortO(n+k)O(n+k)0(nA2)0(n)Radix SortO(nk)O(nk)O(nk)O(n+k)单选题甲乙两个一样大巡J 杯子各自分另爆者小于一半容积的水和酒精现将甲杯子里的一部分水倒入乙杯子之后将乙怀子的混合液倒入一屋到甲杯子此时甲杯子的液体恢复到最初的状态假定水和酒精混合之后的体积等于混合之前的体积之和.另以以下说法正确的是0您 甲杯子里的酒楮体积等于乙杯子里的水的体积甲杯子里的酒精的体积等于乙杯子里的酒精的体积甲杯子里的水的体积等于乙杯子里的酒精的体积甲杯子里的水的体积等于
8、乙杯子里的水的体积甲杯子里的液体高于乙杯子里的液位以上都不对去 宰.A(=cO 单选题nain()2 char-a-ork,at,alibaba);char*paa;pa+;printf(%s,*pa);7)下列程序的执行结果是()atatalibabaorkorkatalibaba编译错误运行溢出答案:AO 单 选 购一个黑盒子里有若干红球和黑球,随机取出一个球是红球的概率是p现在从黑盒子中拿出等量的红球和黑球后随矶取出一个球是红球的概率是q如果p4 n-J、P 内j g号T Y 飞一一 M-S-v|2_ v J2 化 T 6 1-单选题答案:D先序遍历中左右中序遍历左中右后序遍历左右中O
9、单选题在TCP/IP建立连接过程中客户端和服务器端的状毒转移说法错误的是。经历SYN_RECV状态经历SN_SEN漱 态经历 ES2ABLI SHEDf经历TIME_WAIT状态服务器在收到,yn包8寸将加入半连接队列服务器接受到客户如的ack包后将从半连接队列删除答案:DTCP建立连接时一方面客户端和服务器处在close状态。然后客户端发送SYN同步位,此时客户端处在SYN-SEND状态,服务器处在1ISTEN状态,当服务器收到SYN以后,向客户端发送同步位SYN和确认码ACK,然后服务器变为SYN-RCVD,客户端收到服务器发来的SYN和 ACK后,客户端的状态变成ESTABLISHED(
10、已建立连接),客户端再向服务器发送ACK确认码,服务器接受到以后也变成ESTABLISHED然后服务器客户端开始数据传输 单选题假设在n进制下方面的等式成立n值是()24012=28801918171615 以上都对答案:F假设为 n 进 值 则 2*(n八 2)+4*(n八 1)+0*l*n+2=2*(2 3)+8*(n八 2)+8*(n八 1)化简后居然为很等式,n 为任意值单螭下面关于系统调用的描述中错误的是o系统调用 日应用程序的请求偿系统内核执行系统调用中被调用的过程运行在 用户态”中利用系统调用能够得到操作系统提供的多种服务是操作系统提供给编程人员的接口系统调用给用户屏蔽了设备访问
11、的细节系统调用保护了一些只能在内核模式执行的操作指令答案:B用户空间与系统空间所在的内存区间不同样,同样,对于这两种区间,CPU 的运营状态也不同样。在用户空间中,CPU处在“用户态“;在系统空间中,CPU处在“系统态”。单选题关于linux的1,9复用按ClselectfiJepoH下列说法错误的是0s e le s调用时会进行线性遍历,e p o li采用回调函数机制,不需要线性遍历selecc的最大连接数为FD_SETSIZEs e le c t就适合于有大量并发连接,且活跃道接较多的场景ep。口较适用于有大量并发连接,但活跃连接不多的场景e p o ll缄 率 不 随F谢目增加而线性下
12、降 p o ll通过共享存储实现内核和用户的数据交互答案:Cselectselect能监控的描述符个数由内核中的FD_SETSIZE限制,仅 为 1024,这也是select最大的缺陷,由于现在的服务器并发量远远不止1024。即使能重新编译内核改变FD_SETSIZE的值,但这并不能提高select的性能。每次调用select都会线性扫描所有描述符的状态,在select结束后,用户也要线性扫描fd_set数组才知道哪些描述符准备就绪,等于说每次调用复杂度都是O(n)的,在并发量大的情况下,每次扫描都是相称耗时的,很有也许有未解决的连接等待超时。每次调用select都要在用户空间和内核空间里进行
13、内存复制fd描述符等信息。pollpoll使用pollfd结构来存储f d,突破了 select中描述符数目的限制。与 select的后两点类似,poll仍然需要将pollfd数组拷贝到内核空间,之后依次扫描fd的状态,整体复杂度仍然是O(n)的,在并发量大的情况下服务器性能会快速下降。epollepoll维护的描述符数目不受到限制,并且性能不会随着描述符数目的增长而下降。服务器的特点是经常维护着大量连接,但其中某一时刻读写的操作符数量却不多。epoll先通过epolLctl注册一个描述符到内核中,并一直维护着而不像poll每次操作都将所有要监控的描述符传递给内核;在描述符读写就绪时,通过回掉
14、函数将自己加入就绪队列中,之后epolLwait返回该就绪队列。也就是说,epoll基本不做无用的操作,时间复杂度仅与活跃的客户端数有关,而不会随着描述符数目的增长而下降。epoll在传递内核与用户空间的消息时使用了内存共享,而不是内存拷贝,这也使得epoll的效率比poll和 select更高。Q 单选题)答案:FQ 单选题答案:4单 选 国在100-99鳍900个目级中若将组成这个数的三个数字认为是三条线段的长度用垓是三条送段姐成一个零震三角形(包括等边)的共有(44591121142156 165答案:165在100-999这900个自然数中.若将组成这个数的三个数字认为是三条线段的长度
15、,那么是三条线段组成一个等腰三角形(涉及等边)的共有()个.#include using namespace std;int main()(int a=0;int b=0;int c=0;int time=0;for(inti=100;ic)|(b=c&(c+ba)|(c=a&(a+cb)time+;)cout time endl;return 0;单选题答案:关联数组L循环链表是另一种形式的链式存贮结构。特点是表中最后一个结点的指针域指向头结点,整个链表形成环。(1)单循环链表一一在单链表中,将终端结点的指针域N U L L改为指向表头结点或开始结点即可。(2)多重链的循环链表一一将表中结点
16、链在多个环上。2队 列(Q u e u e)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表;3.栈(stack)在计算机科学中是限定仅在栈顶进行插入或删除操作的线性表。4.“关联数组”是一种具有特殊索引方式的数组。不仅可以通过整数来索引它,还可以使用字符串或者其他类型的值(除了 N U L L)来索引它。关联数组和数组类似,由以名称作为键的字段和方法组成。它包含标量数据,可用索引值来单独选择这些数据,和数组不同的是,关联数组的索引值不是非负的整数而是任意的标量。这些标量称为K eys,可以在以后用于检索数组中的数值。关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片。每张卡
17、片上半部分是索引而下半部分是数值。5.链表(Linked list)是一种常见的基础数据结构,是一种线性表,是一种物理存储单元上非连续、非顺序的存储结构。双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。单选题下面的哪种排序尊法在算复杂度平均不是O(nlogn)的?快速排序桶排序合用非序二叉树排序树排序雄排序答案:B桶排序的平均时间复杂度为线性的O(N+C),其中C=N*(logN-logM)0假如相对于同样的N,类别排序方法时间复杂度空间复杂
18、度稳定性平均情况最好情况最坏情况辅助存储插入排序直接插入o(tf)O(n)。(冰)0(1)稳定Shell排序O(n1 3)O(n)O(n2)0(1)不稳定选择排序直接选择O(n2)0(小)。(吟0(1)不稳定堆摔序O(nlog2n)O(nlog2n)O(nlog2n)0(1)不稳定交换排序冒泡排序OCn2)0(n)0(吟0(1)稳定快速排序OCnlon)O(nlog2n)。(吟O(nlog2n)不稔定归并排序O(nlo&n)O(nlo&n)O(nlog2n)O(n)稳定基数排序。什 n)O(d(n+rd)。(义什 n)O(rd-*n)稳定桶数量M 越大,其效率越高,最佳的时间复杂度达成0(N)
19、。当然桶排序的空间复杂度为O(N+M),假如输入数据非常庞大,而桶的数量也非常多,则空间代价无疑是昂贵的。此外,桶排序是稳定的。单选题要创业团队的一N 艮大的办公室(障碍和遮挡可以忽略)里有一个WI FI 源.有1个工位由于距离WI FI 源太远而接收不到信号为了提高该工位的联网质重,次备在工位和W 旧信岩源之间安装一个无线AP(相当于中继的可以中转该工位上的计算机和WI FI 之间的信岩)只考虑从WI FI 发出的信号,如果A P 离WI FI 源太近,就起不到中继的作用如果AP离工位太远则可能连不上WI FI 因此AP有T最佳的安装位置那么关于A P 佳安装位直的说法正确的是。如果WI F
20、I 源功率越大,抖及AP 佳安装位置越靠近内:FI 源 如果血光源功率越大,那么AF最佳球装位置越靠近工位W1F工源功率和AP最佳安装团S 无关.A屋佳安装位置在工位和WI FI 信号源连2坡 外A蹑佳安装位置在工位和WI F工信号源连线中点以上说法者杯对Q 单选题有100个金市,分给10个人第一个金市等限率地分给10个人之一之后的每一个金币分岗给第K个人的慨率正比于这个人已经持有的金币数+1.在这样的分配机制下,关于每个人最终的金市个数的分布的说法 误的是0每个人得到的金币的个数的期望是相等的每个人的金币个数接近均匀分布第一个金币给哪个人,哪个人的最终金币个数的期望就会更大您 在中间的某个阶
21、段金币个数越多的人,未来获得金币的可能性越大答案:BO 单选题在自由交涣的情况下.只考虑偏好.小 张用自己的小刀涣了小王的像皮关于这个交换以下说法错误的是4、张觉得橡皮比小刀更好小王觉得小刀比橡皮更好 N长和小王总做播里没有发生变化川 长和小王的效用值增加了如果把小王换成小吴,那么这个交换可能就不会发生小刀和橡皮等值答案:F选项AB是对称的,所以肯定对的,由 AB可以看出题目的意图是,这次互换靠的是物品的相对价值相称(小张觉得橡皮比小刀更好,小王觉得小刀比橡皮更好),但明显最后一个选项等值指的是他们的绝对价值 单选题structintintcharint sizeof struct如下C程序在
22、64位处理器上运行后S*值是什么?242016141312答案:161 .struct的对齐原则,注意不同的编译器有不同的效果。2.不同的数据类型在32位和64位下所占字节的区别32位编译器:char:1个字节char*(即指针变量):4 个字节(32位的寻址空间是2八 32,即 32个 b it,也就是4 个字节。同理64位编译器)short int:2 个字节int:4个字节unsigned int:4 个字节float:4个字节double:8个字节long:4个字节long long:8 个字节unsigned long:4 个字节64位编译器:char:1个字节char*(即指针变量
23、):8 个字节short int:2 个字节int:4 个字节unsigned int:4 个字节float:4个字节double:8个字节long:8个字节long long:8 个字节unsigned long:8 个字节此处指针先占用8 字节。int占用4 字节,满足规定不用补齐,char占用一个字节,同时总的字节数必须满足8的倍数即16O 单选题#include#include vectorusing namespace std;int nain(void)(vectorarray;array.push_back(100);array.push_back(300);array.push
24、_back(300);array.push_back(300);array.push_back(300);array.push_back(500);vector:iterator itor;for(itor=array.begin();itor!=array.end();itor+)(if(*itor3300)(itor=arrdy.erase(itor);)for(itor=array.begin();itor!=array.end();itor+)(cout*itor;return 0;)下面这个代码输出的是0答案:100 300 300 500vector:erase():从指定容器删除
25、指定位置的元素或某段范围内的元素vector:erase()7j法有两种重载形式如下:iterator erase(iterator _ Where);iterator erase(iterator _First,iterator _Last);假如是删除指定位置的元素时:返回值是一个迭代器,指向删除元素下一个元素;假如是删除某范围内的元素时:返回值也表达一个迭代器,指向最后一个删除元素的下-?元素;本题中,当*itor=300成立时,删除第一个值为300的元素,同 时itor指向下一/?元素(即是第二个值为300的元素)在for(;itor+)执 行itor,itor指向第三个值为300的元
26、素,进入下一个循环进入循环满足*itor=300,反复上面的过程,执行完循环,itor执行值为500的元素。所有整个过程中,只删除了 2个 值 为300的元素。Q(单选题下面关计个类的静态成员描述中不正确的是()静态成员变量可被该类的所有方法访问该类的静态方法只能访问i友类摘态成员的数该类携态数据成员变量的值不可修改子类可以访问父类的静态成员静态成员无多杰特性答案:C可以修改类的静态成员属于整个类而不是某个对象,可以被类的所有方法访问,子类当然可以父类静态成员;静态方法属于整个类,在对象创建之前就已经分派空间,类的非静态成员要在对象创建后才有内存,所有静态方法只能访问静态成员,不能访问非静态成
27、员;静态成员可以被任一对象修改,修改后的值可以被所有对象共享Q 单选题给定的一个长度为N的字符串str苣找氏度为P(PN)的字符串在sir中的出现次数.下面的说法正确的是0不存在btM坏时间复杂度c(NP)好的簟去不存在比最坏时间复杂度c(N-2)好的篁法不存在比最坏时间复杂度。(P b)好的算法存在最坏时间复杂度为。(N+P)的算法存在最坏时间复杂度为。(logK+p)的算法以上都不对答案:DKMP算法:时间复杂度O(p+N)单选题某体校选择校服每会校 都包括短袖运动彩长袖运动衫厚外套运动长裤和运动短裤组成.每种运动服有个备选方案老师请了部分学生来 自己喜欢的校服结果发现任息3个学生都至少在
28、T*运动服上选择亘不相同那名老师最多遒清了(小学生参加挑选答案:8每套校服都涉及短袖运动衫,长袖运动衫,厚外套,运动长裤和运动短裤组成.“每种运动服”有个备选方案。说明校服一共有2人 5=32种选择方案。任 意 3个学生都至少在一种运动服上选择互不相同,假设有老师邀请了 n个学生参与挑选,说明 Cn2 32Cn 3,得出 n=8。Q 单选题有4副相同的牌每副牌有4张不同的牌先从这16张牌中随机选4张出来然后.在这4张牌中随机选择一张牌.然后把抽出的T K 放回3张中,再履巩选择一张牌与上次选出的牌一样的概率是0答案:c看第二次抽样即可,与第一次抽的是同一张牌的概率是1/4,不同张的概率是3/4,同一张的话肯定是同样,不同张的时候假如抽中同样的牌的概率是3/15,所以答案是1/4+3/4*3/15=2/5III排 名:前41%得 分:33.0你的技能图谱前端工程师试 卷:阿里巴巴2017实习生笔试题(-)*正确逆数:8/24Javascript得 分:33.0JqueryHTMUCSS用 时:00:69:20已打卡Linux-通过本次练习,你的以下技能评估结果发生了变化。0.0 11.11概率统计0.0 6.37编程基配0.0 439练习其他技能