《小米嵌入式软件工程师面试题集.docx》由会员分享,可在线阅读,更多相关《小米嵌入式软件工程师面试题集.docx(14页珍藏版)》请在优知文库上搜索。
1、小米嵌入式软件工程师面试题集选择题1、已经获得除CPU以外的所有所需资源的进程处于。状态:A就绪状态B阻塞状态C运行状态D活动状态A进程的五状态模型:运行态:该进程正在执行。就绪态:进程已经做好了准备,只要有机会就开始执行。阻塞态(等待态):进程在某些事情发生前不能执行,等待阻塞进程的事件完成。新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中,通常是进程控制块已经创建但是还没有加载到内存中的进程。退出态:操作系统从可执行进程组中释放出的进程,或由于自身或某种原因停止运行。2、某二叉树的中序遍历序列为32145,后序遍历序列为32145,则前序遍历序列为:A54123B32154C
2、32541D54321A二叉树的中序遍历序列为32145,后序遍历序列为32145,可知该树只有左子树结点,没有右子树结点,5为根结点。中序遍历序列与后序遍历序列相同,说明该树只有左子树没有右子树,因此该树有5层,从顶向下依次为54123O3、若已知一个栈的入栈顺序是l,2,3.,n,其输出序列为Pl,P2,P3,.Pn,若Pl是n,则Pi=()?AiBn-i+1C不确定Dn-iB栈的排列遵循先进后(即后进先出)出的原则因为Pl是n,是出栈的第一个数字,说明在n之前进栈的数字都没有出栈。所以这个顺序是确定的。还可以知道,最后出栈的一定是数字L也就是Pn。代入这个式子,是正确的。4、(多选题)下
3、面协议中属于应用层协议的是:AlCMP、ARPBFTP、TELNETCHTTPSNMPDSMTPPOP3BCD1、物理层:以太网、调制解调器、电力线通信(PLC)、SONET/SDH、G.709、光导纤维、同轴电缆、双绞线等。2、数据链路层:Wi-Fi(IEEE802.11)、WiMAX(IEEE802.16)、ATM、DTM令牌环、以太网、FDDIs帧中继、GPRS、EVDOsHSPA、HDLC、PPP、L2TP、PPTP、ISDNSTPCSMA/CD等。3、网络层协议:IPIPv4、IPV6、ICMP、ICMPV6IGMP、IS-IS、IPsec、ARP、RARP、RlP等。4、传输层协议
4、:TCP、UDP、TLS、DCCPSCTP、RSVP、OSPF等。5、应用层协议:DHCP、DNS、FTPGopher、HTTP、IMAP4、IRC、NNTP、XMPP、POP3、SIP、SMTP、SNMP、SSHTELNET、RPC、RTCP、RTP、RTSP、SDP、SOAP、GTP、STUN、NTP、SSDP、BGP等。5、下列程序段的时间复杂度是:returnn*fact(n-l);AO(log2n)BO(nlog2n)CO(n)DO(n*n)C当n=l时执行return1这一个语句,每次返回上一层都执行n*fact(n-l)这一个语句,共执行nT次。因此共执行基本语句n次,时间复杂度
5、为0(n)6、下列排序算法中最好情况和最坏情况的时间复杂度相同的是?A堆排序B快速排序C冒泡排序D归并排序AD堆排序在最好和最坏情况下的时间复杂度均为0(nlogn)快速排序最好和最坏情况下的时间复杂度分别为0(nlogn)和O(rf2)冒泡排序排序在最好和最坏情况下的时间复杂度均为O(n)O(r2)归并排序在最好和最坏情况下的时间复杂度均为O(rlogn)7、将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是?AnB2nCn-ID2n-1归并排序是将两个或两个以上的有序子表合并成一个新的有序表。在归并排序中,核心步骤是将相邻的两个有序序列归并为一个有序序列。题目中告诉我们,有两个各
6、有n个元素的有序序列,要将这两个序列归并成一个有序序列,其方法是依次从小到大取每个序列中的元素进行比较,将较小的放进一个新的序列中,直到取完一个有序序列中的所有元素。再把另一个序列中剩下的元素放进新序列的后面即可。最好的情况是一个有序序列中的最小元素大于另一个有序序列中的所有元素,这样只需要比较n次。8、将递归算法转换为非递归算法通常需要使用:A栈B队列C队列D广义表D9、在MySqI中,productnameregexpl-3XiaOmi的含义是:Aproductname匹配xiaomi重复1次或5次的字符串Bproductname匹配xiaomi字符串前一个字符为1或3的字符串Cprodu
7、ctname匹配xiaomi重复1到3次的字符串Dproductname匹配xiaomi字符串前一个字符为1到3的字符串D10、同个进程的不同线程以下不能被共享的是:A全局变量B堆C文件句柄D栈D线程共享的进程环境包括:进程代码段、进程的公有资源(如全局变量,利用这些共享的数据,线程很容易的实现相互之间的通信)、进程打开的文件描述符、消息队列、信号的处理器、进程的当前目录、进程用户ID、进程组ID线程独占资源:线程ID、寄存器组的值、用户栈、内核栈(在一个进程的线程共享堆区(heap)、错误返回码、线程的信号屏蔽码、线程的优先级专项选择题1、下列JaVa函数的执行结果是什么?booleanfo
8、o(charc)SyStem.OUt.returntrue;IPUbliCStatiCVOidmain(strinjinti=0;for(foo(B);foo(A)&(i2);foo(,C,)i+;foo(D);ABADCBDCBBBACDBACDcBadcadcaD运行时抛出异常C1.其实foo(B);就是初始化条件,只会执行一次,所以第一个打印的肯定是Bo2 .因为i=0;循环条件是i2(由此可知,循环i等于2的时候就会停止循环),所以02满足条件,接着会输出A。然后执行i+;i就变成1了,在输出D,在最后输出Co一次循环后的结果是:BADCo3 .第二次循环的开始是foo(B);是初始条
9、件,所以不会执行。直接从foo(A)开始,输出A,然后i为1,且小于2,此时循环体内再次执行i+;i的值为2了,再次输出D,最后输出C。第二次循环输出:ADCo4.然后循环再次执行for(foo(,B,);foo(,A,)&(i2);foo(,C,),直接输出A。i的值在第二轮循环后的值变成了2,22不成立,终止循环,输出A。故输出结果是:Badcadca02、下列有关软链接表述正确的是:A不可以对不存在的文件创建软链接B不能对目录创建软链接C和普通件没有什么不同,inode都指向同一个文件在硬量中的区块D保存了其代表的文件的绝对路径是另一种文件。在硬盘上有独立的区块,访问时替代自身路径CA:
10、错。后半句说的是硬链接。硬链接是共同拥有同一个inode,不过是每个链接名不同,暂时理解成不同的文件名却指向同一文件。一个文件每加一个硬链接linkcount加I0B:错。可以对目录创建软链接。如下图所示。root0server#mkdir-p-tmptestmydirroot0server-#IS-atmp八est.Hydirrootroottnptest三ydirdrwxr-xr-x3rootroot4096Feb2111:52tnp(root0server-#D:错。可以对不存在的文件创建软链接,如下图所示。TsofrlinkejnyfileIrwxrwxrwx1rootroot21Fe
11、b2112:22Irwxrwxrwx1rootroot2Feb2111:53rwxr-xr-x3rootroot4096Feb2111:52root0server -# In -s -tmptestmyfile root0server -# Il total 4root0server -# Il tmp八est total 4drwxr-xr-x 2 root root 496 Feb 21 11:52sotrlinke myfile - roottptestyfile Softlinkeydir - roottptestydir tPIiydir(root0server # echo ,kh
12、khtmptest/myfile rootserver -# IlIrwxrwxrwx1rootroot21Feb2112:22Irwxrwxrwx1rootroot2Feb2111:53drwxr-r-3rootroot496Feb2111:52total 4sofrlinke yfile - roottmptest/myfile SOftlinkjiydir - roottptestydir tP3、选项中哪一行代码可以替换addcodehere而不产生编译错误?IPUbIiCabstructClaSSMyCIaSsPUbliCinttestlnt=5;PUbliCVOidmethod()
13、ApublicabstractvoidanotherMethod()Btestlnt=testlnt*5Cpublicintmethod();DpublicabstractvoidanotherMethod(inta)DA:该项方法有abstract修饰,所以是抽象方法,由于抽象方法不能有方法体,所以A项错误B:类体中只能定义变量和方法,不能有其他语句,所以B项错误C:选项中的方法和类中的方法重复,所以会发生编译异常,所以C项错误4、有关JaVa静态初始化块说法不正确的是:A用户可以控制何时执行静态初始化块B无法直接词用静态初始化块C在创建第一个实例前,将自动调用静态初始化块来初始化D静态初始
14、化块没有访问修饰符和参数JAVA的初始化顺序:父类的静态成员初始化父类的静态代码块子类的静态成员初始化子类的静态代码块父类的代码块父类的构造方法子类的代码块子类的构造方法5、(多选题)以下分别对变量a给出定义,正确的有:A一个有10个指针的数组,该指针指向同一个整型数:int*a10;B一个指向10个整型数组的指针:int(*a)10;C一个指向函数的指针,该函数有一个整型数并返回一个整型数:int*a(int);D一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数:int(*a10)(int);ABDC改为:int(*a)(int)指针数组:首先是一个数组,数组里面的元素都是指针;(存储指针的数组)数组指针:首先是一个指针,指针指向一个一维数组;(指向数组的指针)函数指针:一定要理解,回调中经常使用函数指针;指针函数:就是一个普通函数,只是返回值是指针形式;6、(多