2022年奇虎360技术岗(程序员)面试题(应聘求职面试准备资料)_第1页
2022年奇虎360技术岗(程序员)面试题(应聘求职面试准备资料)_第2页
2022年奇虎360技术岗(程序员)面试题(应聘求职面试准备资料)_第3页
2022年奇虎360技术岗(程序员)面试题(应聘求职面试准备资料)_第4页
2022年奇虎360技术岗(程序员)面试题(应聘求职面试准备资料)_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2022年奇虎360技术岗(程序员)面试题第1题:ClassA;ClassB;voidF(){Aa;Bb;)在函数F中,本地变量a和b的构造函数(constructor)和析构函数(destructor)的调用挨次是:Ab构造a构造a析构b析构Ba构造a析构b构造b析构Cb构造a构造b析构a析构Da构造b构造b析构a析构按变量声明挨次构造对象,然后入栈按相反挨次出栈,析构对象。第2题:假定指针变量p定义为"int*p=newint(lOO);",要释放p所指向的动态内存,应使用语句()Adeletep;Bdelete*p;Cdeletep;Ddelete[]p;A第3题:选择填空:#includevoidtest(void*data){unsignedintvalue=(此处应填入)printf("%u”,value);)usingnamespacestd;intmain(){unsignedintvalue=10;test(value);return0;)A*dataB(unsignedint)(*data)C(unsigned*)dataD*((unsignedint*)data)D解释:spanclass="kwd"style="color:rgb(0,0,136);"voidspanclass="pln"style="color:rgb(0,0,0);"留意,参数类型是void,所以先要进行指针转换:(unsignedint*)然后再取值。第4题:在C++,下列哪一个可以做为对象继承之间的转换Astatic_castBdynamic_castCconst_castDreinterpret_castBdynamic_cast动态转换第5题:假如进栈序列为el,e2,e3,e4,则不行能的出栈序列是()Ae2,e4,e3,elBe4,e3,e2,elCel,e2,e3,e4De3,el,e4,e2D假如e3第一个出栈,拿下一个应当是e4或者e2,但绝不行能是el第6题:若某二叉树的前序遍历访问挨次是abdgcefh,中序遍历访问挨次是dgbaechf,则其后序遍历的结点访问挨次是()AgdbehfcaBhcdeabfCfdcehgbaDgdbehcfaA依据前序和中序序列画出二叉树的结构,写出其后序序列即可。第7题:用二分法查找长度为10的、排好序的线性表,查找不胜利时,最多需要比较多少次?A3B4C5D6B81016,而Iogl6=4第8题:以下程序是用辗转相除法来计算两个非负数之间的最大公约数:longlonggcd(longlongx,longlongy){if(y==0)returnx;elsereturngcd(y,x%y);)我们假设x,y中最大的那个数的长度为n,xy,基本运算时间简单度为0(1),那么该程序的时间简单度为()A0(1)BO(logy)CO(n)DO(x)求最大公约数的最常用的算法是欧几里得算法,也称为辗转相除法.问题定义为求i和j的最大公约数gcd(i,j),其中i和j是整数,不妨设ij.算法可以递归的表示:.假如j能整除i,那么gcd(i,j)=j;.j不能整除i,令r=i%j,那么gcd(i,j)=gcd(j,r).使用C语言实现:intgcd(inti,intj){intr=i%j;returnr==0?j:gcd(j,r);)正确性分析:算法的步骤1,明显成立(最大公约数定义).关键是要证明步骤2.设d是i和j的最大公约数,那么i=md,j=nd,m和n互质(否则d不是最大公约数).由r=i%j可以得到i=kj+r,k=?m/n?,kNl(我们前面假设过ij).把i=md,j=nd代入得到md=knd+r那么r=(m-kn)dm-kn和m也是互质的.所以得到d是j和r的最大公约数.时间简单度分析:逆着看该算法,最终的余数是0,倒数其次次余数是d,倒数第三次是kd,kl...由于组成了一个数列,{0,d,kd,nkd+d,...}数列的n项加上n+1项,比n+2项要小,所以比斐波纳契数列增长的要快.我们已知斐波纳契数列增长速度是指数,那么待分析的数列也是指数增长.设欧几里得算法需要k次,那么j=O(2Ak),则k=O(lgj).所以欧几里得算法求最大公约数的时间简单度是对数量级的,速度特别快.第9题:一棵有124个叶节点的完全二叉树,最多有()个节点。A247B248C249D250Bn0=n2+1,于是度为2的结点个数123个完全二叉树中度为1结点个数最多1个因此该完全二叉树中结点最多有123+1+124=248个第10题:链表不具备的特点是()A可随机访问任何一个元素B插入、删除操作不需要移动元素C无需事先估量存储空间大小D所需存储空间与线性表长度成正比A不同于寻秩访问的数组,链表无法实现随机访问任何一个元素0(1),访问时需要遍历链表直到访问到该元素。第11题:下列排序算法中,在待排序数据有序的状况下,花费时间最多的是()A快速排序B希尔排序C冒泡排序D堆排序A待排序数据有序就是快排的最差状况,此时的时间简单度是0(n2)第12题:有1000个无序的整数,盼望使用最快的方式找出前50个最大的,最佳的选择是()A冒泡排序B基数排序C堆排序D快速排序c找出若干个数中最大/最小的前K个数,用堆排序是最好的找最大数,用小根堆找最小数,用大根堆第13题:下面哪个不是用来解决哈希表冲突的开放地址法?A线性探测法B线性补偿探测法C拉链探测法D随机探测法C拉链探测法,开放定址法区分为线性探查法、线性补偿探测法、随机探测等。第14题:下列数最大的是()。括号内为数字,括号外为进制。A(10010101)2B(227)8C(96)16D(143)10B第15题:在CPU和内存之间增加cache的作用是()A提高内存稳定性B解决内存速度低于CPU的性能问题C增加内存容量D增加内存容量且加快存取速度B这是存储器分层部分的内容,可以参考《深化理解计算机系统》第16题:假设整数0x12345678存放在内存地址0x0开头的连续四个字节中(即地址0x0到0x3).那么在以LittleEndian字节序存储的memory中,地址0x3的地方存放的字节是:A0x12B0x34C0x56D0x78ALittle-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。c)网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。假如是Little-Endian:0x0-0x3内存分别存放的是:0x78、0x56、0x34、0x12;假如是Big-Endian:0x0-0x3内存分别存放的是:0xl2、0x34、0x56、0x78;第17题:将规律代码:if(x%2){returnx-1;}else{returnx;}用表达式:returnx-2;替代,以下说法中不正确的是()A计算机的补码表示使得两段代码等价B用其次段代码执行起来会更快一些C这段代码只适用于x为正数的状况D第一段代码更适合阅读C第18题:代码生成阶段的主要任务是()A把高级语言翻译成汇编语言B把高级语言翻译成机器语言C把中间代码变换成依靠详细机器的目标代码D把汇编语言翻译成机器语言C编译程序的工作过程一般划分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。所以选C。第19题:后缀式ab+cd+/可用表达式()来表示Aa+b/c+dB(a+b)/c+dCa+b/(c+d)D(a+b)/(c+d)D后缀表达式不包含括号,运算符放在两个运算对象的后面,全部的计算按运算符消失的挨次,严格从左向右进行,不再考虑运算符的优先规章。最终一个操作是而且前面是一个+操作,后面没有操作,可知/操作最终进行,由此可得,另外两个操作数是a+b和c+d,因此表达式为D(a+b)/(c+d)第20题:以下关于函数调用的说法哪个是正确的?A传值后对形参的修改会转变实参的值B传地址后实参和形参指向不同的对象C传引用后形参和实参是不同的对象D以上都不对D解释:传地址和传引用,形参,实参指向同一对象,修改形参会影响实参传值则相反,修改形参不会影响实参第21题:一个合法的360账户名称要求如下:是一个合法的邮箱地址,如kefu@360.cn;邮箱前缀的长度为[4,16]个字符;邮箱前缀必需以字母开头,字母或数字结尾;邮箱前缀可以包括字母、数字、下划线。请问如下正则表达式中,哪一个能正确校验用户名的合法性:A\w[0-9a-zA-Z_]{3,15}\@\w+.([-.]\w+)*B[a-zA-Z]\w{3,15}@\w+.\w*C[a-zA-Z]\w{2,14}[0-9a-zA-Z]\@\w+([-.]\w+)*D[a-zA-Z]\w{2,14}[0-9a-zA-Z]@\wC邮箱前缀必需以字母开头,字母或数字结尾这句话排解A邮箱中确定有,D中没有排解D邮箱前缀可以包括字母、数字、下划线,B中没有数字,排解B所以答案是C第22题:词法分析器用于识别()A句子B句型C单词D生产式思路:参见维基百科:/zh/%E8%AF%8D%E6%B3%95%E5%88%86%E6%9E%90词法分析器是将源文件识别为单词,对单词进行分类第23题:在下列说法中,哪个是错误的()A若进程A和进程B在临界段上互斥,那么当进程A处于该临界段时,它不能被进程B中断B虚拟存储管理中采纳对换(swapping)策略后,用户进程可使用的存储空间好像增加了C虚拟存储管理中的抖动(thrashing)现象是指页面置换(pager即lacement)时用于换页的时间远多于执行程序的时间D进程可以由程序、数据和进程掌握块(PCB)描述c选项中:是恳求分页虚拟存储管理。当需要执行否条的指令或使用某个数据而发觉他们不再内存中时候,会产生缺页特别。系统从磁盘中把此指令或数据所在的页面装入。缺页特别是由硬件所产生的一种特别终端信号,其中当中断率较高时,整个系统的页面调度特别频繁造成大部分时间都花费在来回调度上,而不是执行任务,这种现象叫做"抖动"。一一《操作系统》第24题:操作系统采纳分页式存储管理(PAGING)方法,要求()A每个进程拥有一张页表,且进程的页表驻留在内存中B每个进程拥有一张页表,但只要执行进程的页表驻留在内存中,其他进程的页表不必驻留在内存中C全部进程共享一张页表,以节省有限的内存空间,但页表必需驻留在内存中D全部进程共享一张页表,只有页表中当前使用的页面必需驻留在内存中,以最大限度地节省有限的内存空间B在内核中全部进程都是用一个页名目表,每个进程都有自己的页第25题:计算机操作系统消失死锁的缘由是什么?A资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数B有多个封锁的进程同时存在C一个进程进入死循环D若干进程因竞争资源而无休止的等待着其他进程释放已占有的资源D死锁的缘由在于进程在等待其它进程占有的某些资源,而自身的资源又被其它进程等待着,造成了死循环。第26题:进程间通讯的方式中哪种的访问速度最快?A管道B消息队列C共享内存D套接字C常见进程间通信方式的比较:管道:速度慢,容量有限消息队列:容量受到系统限制,且要留意第一次读的时候,要考虑上一次没有读完数据的问题。信号量:不能传递简单消息,只能用来同步共享内存区:能够很简单掌握容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要留意读写的问题,相当于线程中的线程平安,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间原来就已经共享了一块内存的。第27题:TCP的关闭过程,说法正确的是()A处于TIME_WAH"状态的连接等待2MSL后真正关闭连接B对一个established状态的TCP连接,在调用shutdown函数之前调用close接口,可以让主动调用的一方进入半关闭状态C主动发送FIN消息的连接端,收到对方回应ack之前不能发只能收,在收到对方回复ack之后不能发也不能收,进入QOSING状态D在已经胜利建立连接的TCP连接上,任何状况下都不允许丢失数据。ATIME_WAIT状态下发送的ACK丢失,服务器端的LAST_ACK时刻设定的重传定时器超时,发送重传的FIN,很不幸,这个FIN也丢失,主动关闭方在TIME_WAIT状态等待2MSL没收到任何报文段,进入CLOSED状态,当此时被动关闭方并没有收到最终的ACKo所以即使要主动关闭方在TIME_WAIT状态下停留2MSL,也不肯定表示四次握手关闭就肯定正常完成第28题;linux中调用write发送网络数据返回n(nO)表示()A对端已收到n个字节B本地已发送n个字节C系统网络buff收到n个字节D系统调用失败已发送,但不保证对方收到write函数的返回值的含义原来就是这样第29题:HTTP应答中的500错误是:A服务器内部出错B文件未找到C客户端网络不通D没有访问权限A403:禁止访问;404:找不到该页面;503:服务器繁忙;500:内部服务器访问出错。第30题:下列关于Android数字签名描述错误的是:A全部的应用程序都必需有数字证书,Android系统不会安装一个没有数字证书的应用程序BAndroid程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证C假如要正式发布一个Android程序,可以使用集成开发工具生成的调试证书来发布。D数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。假如程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。C必需要使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。第31题:二、填空题小支欲用积分兑换安仔娃娃。兑换的规章是10积分可以兑一个安仔并返还5积分。小支有200积分,最多可以兑到个安仔?(假设可以借积分)40借我200积分换成40个按仔,返回的200积分还给你第32题:五对夫妇甲,乙,丙,丁,戊进行家庭聚会每一个人都可能和其他人握手,但夫妇之间肯定不握手.聚会结束时,甲先生问其他人:各握了几次手?得到的答案是:0,123,4,5,6,7,8.试问:甲太太握了 次手?4甲太太握了4次手。首先,可以断言握了8次手的人和握了。次手的人是一家人。由于一个人握了0次手,说明他(她)没有和其他任何人握手,而握了8次手的人握了别家的全部人的手,假如握了8次手的这个人和握了0次手的这个人不是一家人,握了8次手的这个人就必定握过握了0次手的人,那么,握了0次手的人就被握了8次手的人握了1次,这就冲突了。其次,可以断言握了1次手的人和握了7次手的人是一家人。由于现在大家都至少握过一次手了(和握过8次手的那个人握的),所以握过7次手的人必需和除了第一家和自己家的全部人握手,而握过1次手的人已经不能再和任何人握手了,因此,他们只能是一家人。同理,握了2次手的人和握了6次手的人是一家人,握了3次手的人和握了5次手的人是一家人,握了4次手的是最终一家人。现在来看,假如甲太太握了0次手,那么甲先生必定要握8次手,而且没有其他人可以握8次手,但是,甲先生是提问的人,因此,他没有握8次手,因此,甲太太也就不行能握0次手。同理,甲太太也不行能握了1,2,3,5,6,7,8次手。甲太太只可能握了4次手。第33题:赛马,有25匹马,每次只能5匹马进行竞赛,竞赛只能得到5匹马之间的快慢程度,而不是速度,请问,最少要比次,才能获得最快的前3匹马?725匹马,速度都不同,但每匹马的速度都是定值。现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。问最少赛几场可以找出25匹马中速度最快的前3名?每匹马都至少要有一次参赛的机会,所以25匹马分成5组,一开头的这5场竞赛是免不了的。接下来要找冠**也很简单,每一组的冠**在一起赛一场就行了(第6场)。最终就是要找第2和第3名。我们根据第6场竞赛中得到的名次依次把它们在前5场竞赛中所在的组命名为A、B、C、D、Eo即:A组的冠**是第6场的第1名,B组的冠**是第6场的第2名每一组的5匹马根据他们已经赛出的成果从快到慢编号:A组:1,2,3,4,5B组:1,2,3,4,5c组:1,2,3,4,5D组:1,2,3,4,5E组:1,2,3,4,5从现在所得到的信息,我们可以知道哪些马已经被排解在3名以外。只要已经能确定有3匹或3匹以上的马比这匹马快,那么它就已经被淘汰了。可以看到,只有上表中粗体的那5匹马是有可能为2、3名的。即:A组的2、3名;B组的1、2名,C组的第1名。取这5匹马进行第7场竞赛

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论