阿里巴巴2017年度实习生笔试题(含答案解析).docxVIP

阿里巴巴2017年度实习生笔试题(含答案解析).docx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主■-i r+Flir Ilin査=亀 鼻i云上3E严I干,. 赏片8】汁?寸:臣我匹1的占鼻览 加鹉申可JEE rl 1価曲匸盃陀 可以们?ii T0C1T IMff Fb逹.阳巴範哥卩企%丁同的■小」血敬 京盘杜.“=现内皿妒也朝醐焜丄血1 族妒丄.丄耐內各⑧1D1-:,-.劭 欣使內2骂氏苗吶丄tl ifleLS^M 答案:D 内联函数: Tip :只有当函数只有 10行甚至更少时才将其定义为内联函数 ? 定义:当函数被声明为内联函数之后 ,编译器会将其内联展开,而不是按通常的函数调用机 制进行调用. 优点:当函数体比较小的时候,内联该函数可以令目标代码更加高效 .对于存取函数以及其 它函数体比较短,性能关键的函数,鼓励使用内联. 缺点:滥用内联将导致程序变慢.内联可能使目标代码量或增或减 ,这取决于内联函数的大 小.内联非常短小的存取函数通常会减少代码大小 ,但内联一个相当大的函数将戏剧性的增 加代码大小.现代处理器由于更好的利用了指令缓存 ,小巧的代码往往执行更快。 结论:一个较为合理的经验准则是 ,不要内联超过 10行的函数.谨慎对待析构函数,析构 函数往往比其表面看起来要更长,因为有隐含的成员和基类析构函数被调用 ! 另一个实用的经验准则:内联那些包含循环或 switch 语句的函数常常是得不偿失 (除非 这点很重要;比如虚函数和递在大多数情况下,这些循环或switch 这点很重要;比如虚函数和递 注意:有些函数即使声明为内联的也不一定会被编译器内联 归函数就不会被正常内联?通常,递归函数不应该声明成内联函数 ?(递归调用堆栈的展开并 不像循环那么简单,比如递归层数在编译时可能是未知的 ,大多数编译器都不支持内联递归 函数).虚函数内联的主要原因则是想把它的函数体放在类定义内 ,为了图个方便,抑或是 当作文档描述其行为,比如精短的存取函数? -inl.h 文件: Tip :复杂的内联函数的定义,应放在后缀名为 -inl.h的头文件中. 内联函数的定义必须放在头文件中 ,编译器才能在调用点内联展开定义 ?然而,实现代码理 论上应该放在.cc文件中,我们不希望.h文件中有太多实现代码,除非在可读性和性能 上有明显优势? 如果内联函数的定义比较短小 ,逻辑比较简单,实现代码放在.h文件里没有任何问题?比 如,存取函数的实现理所当然都应该放在类定义内 ?出于编写者和调用者的方便,较复杂的 内联函数也可以放到.h文件中,如果你觉得这样会使头文件显得笨重,也可以把它萃取到 单独的-inl.h中.这样把实现和类定义分离开来 ,当需要时包含对应的 -inl.h即可。 A项错误,因为使用inline关键字的函数只是用户希望它成为内联函数,但编译器有权忽 略这个请求,比如:若此函数体太大,则不会把它作为内联函数展开的。 B项错误,头文件中不仅要包含 in li ne函数的声明,而且必须包含定义,且在定义时必须 加上inline 。【关键字inline必须与函数定义体放在一起才能使函数成为内联,仅 将inline放在函数声明前面不起任何作用】 C项错误,in li ne函数可以定义在源文件中,但多个源文件中的同名 in li ne函数的实现必 须相同。一般把inline函数的定义放在头文件中更加合适。 D项正确,类内的成员函数,默认都是 in li ne的。【定义在类声明之中的成员函数将自动 地成为内联函数】 EF项无意思,不管是 class声明中定义的inline函数,还是class实现中定义的inline函 数,不存在优先不优先的问题,因为 class的成员函数都是inline的,加了关键 字inline也没什么特殊的 苛咐站伽瓠在昔自国优条坪下冲下海穷TB醒超的是0 iMirll - iMirll - 答案:D插入排序 改良的冒泡最优也是n 数组排序算法 車均 Merqcsor IiiinnrHeapsortBubble Sortln;prtion SnrtSfltilion boilShell SortBucket SortRddix Sort0(n log(n))0(n log(nj)O(n Io9(n))O(nA2)0(n log(nj)0(n log(n))O(n log(n)}O(n login)〕0(nh2)0(nA2)0(22)0(n log(n))O(n l og (nJ)522)0(22)O(log(n)}O(n Merqcsor I iiinnr Heapsort Bubble Sort ln;prtion Snrt Sfltilion boil Shell Sort Bucket Sort Rddix Sort 0(n log(n)) 0(n log(nj) O(n Io9(n)) O(nA2) 0(n

文档评论(0)

cooldemon0601 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档