zoukankan      html  css  js  c++  java
  • 来一篇新鲜的招聘笔试题(2014秋招版)

                                                                  腾讯2014校园招聘笔试试题

     欢迎以正常的心态来,浏览这里的共享的知识!,也欢迎吐槽!指点一二!

    1  已知一颗二叉树,如果先序遍历的节点顺序是:ADCEFGHB ,中序遍历是:CDFEGHAB ,则后续遍历的结果为:

          A. CFHGEBDA        B. CDFEGHBA        C.  FGHCDEBA      D. CFHGEDBA

    分析:

            考点,    树的遍历 ,  先序  ,中序  ,后序 。各种遍历..

              (1) . 前序遍历,也叫先根遍历,遍历的顺序是,根,左子树,右子树。         

              (2) . 中序遍历 , 也叫中根遍历,顺序是 左子树,根,右子树。

              (3) . 后序遍历,也叫后根遍历,遍历顺序,左子树,右子树,根。

         于是乎,不难得出....后序遍历:CFHGEDBA ,因而答案选择: D

       2.  下列哪两个数据结构,同时具有较高的查找和删除性能: ___________

            A.  有序数组 ,  B .  有序链表  , C  AVL树  ,  D.  Hash表

          分析: 下面是几种数据结构查找与删除的性能对照表:

        

     其实不用上诉资料,自己也应该清楚:

              有序数组 ,有序链表 ,遍历来查找和删除。  时间复杂度为O(n);

             平衡树: 采用二分的技术查找,以及Hash表,有特定的算法构成,位置都比较明显的定位

         因而答案很定为:  CD

        3 下列排序算法中,哪些时间复杂度不会超过nlogn?()

            A.快速排序     B.堆排序        C.归并排序      D.冒泡排序

        分析:

               冒泡的 复杂度为 O(n^2)

              快速排序: 平均是O(nlogn)  最坏为 O(n^2)

              归并排序: O(nlogn)

               堆排序:    O(nlogn)

               因而答案为:    BC

          

    4 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)

          A.8 3 2 5 1 6 4 7                          B.3 2 8 5 1 4 6 7 

          C.3 8 2 5 1 6 7 4               D.8 2 3 5 1 4 7 6

          分析:     涉及到最大堆和最小堆 ,以及二叉树的遍历

              对于最小堆,其实就是----------头小,根大

                 

       由这样一颗树:  不难得到后序序列:   83526741  因而答案为: A

       

    5 当n=5时,下列函数的返回值是:( )

    1. int foo(int n)  
    2. {  
    3.     if(n<2)return n;  
    4.     return foo(n-1)+foo(n-2);  

     A.5           B.7               C.8             D.10

             分析:  简单的递归:    

                很容易写出表达是:

                      

               答案选:    A

         6  S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?( )

              A.37.5%       B.32.5%          C.28.6%          D.26.1%

         分析:

                 S{  A , B } ,一个案件的发生,要么在A,要么在B, 一句概率论:

                   (1)   P(A)+P(B)=1;

                于是乎,答案为:   ( (3/8)*0.01% )/( (3/8)*0.01%  +(5/8)*0.015%) *100%  = 28.6%   答案为  C

          

           7  Unix系统中,哪些可以用于进程间的通信?(ABCD)

                A.Socket       B.共享内存       C.消息队列       D.信号量

                 socket 为线程部分是进程的一个单位,可以。

               然后看了下资料:

                  3种System V进程通信方式:信号量,消息队列和共享内存

          

         8 静态变量通常存储在进程哪个区?(C)

                   A.栈区        B.堆区           C.全局区         D.代码区

          

          静态变量的修饰关键字:static,又称静态全局变量。

            静态变量属于静态存储方式,但是属于静态存储方式的变量不一定就是静态变量。

           全局区在内存中所占的位置:

           

      9  查询性能(B) 

          A . 在Name字段上添加主键  

          B . 在Name字段上添加索引

         C. 在Age字段上添加主键

         D. 在Age字段上添加索引

         分析:  考查数据库,优化部分:

        

    索引:对数据库表中一列或多列的值进行排序(或构成特定的数据结构,如树或哈希表)的一种结构,使用索引可快速访问数据库表中的特定信息。

        优点:

    1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
    2. 可以大大加快数据的检索速度
    3. 可以加快表与表之间的连接
    4. 使用分组和排序子句进行检索时,同样可以显著减少查询中分组和排序的事件
    5. 在查询的过程中优化隐藏器,提高系统的性能

        缺点:

    1. 创建和维护所以你需要耗费时间
    2. 索引需要占物理空间,如果建立聚簇索引,需要的空间更大
    3. 表的数据更新时,索引也要动态的维护

        建立索引的规则:

    1. 表的主键、外键必须有索引;
    2. 数据量超过300的表应该有索引;
    3. 经常与其他表进行连接的表,在连接字段上应该建立索引;
    4. 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
    5. 索引应该建在选择性高的字段上;
    6. 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
    7. 复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
      •    正确选择复合索引中的主列字段,一般是选择性较好的字段;
      •    复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
      •    如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
      •    如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
      •    如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
    8. 频繁进行数据操作的表,不要建立太多的索引;
    9. 删除无用的索引,避免对执行计划造成负面影响;

    答案:B

        

    10  IP地址131.153.12.71是一个()类IP地址。

    A.A           B.B             C.C               D.D

    解析:

      IP地址分类

        A类网络的IP地址范围为   1.0.0.1-127.255.255.254;

        B类网络的IP地址范围为:128.1.0.1-191.255.255.254;

        C类网络的IP地址范围为:192.0.1.1-223.255.255.254。

       答案: B

          附上一张图:

                         

          

    12 下列程序的输出是:()

      #define add(a+b) a+b  

     int main()  

      {  

          printf(“%d ”,5*add(3+4));  

         return 0;  

    }   

       A.23           B.35            C.16              D.19

       分析:

       简单题:   对于这样一条语句这样做就好了     5*add(3+4)  =   5*3+4=19;  选:D

      

    13 浏览器访问某页面,HTTP协议返回状态码为403时表示:(B)

        A 找不到该页面     ---404

        B 禁止访问          ---403

       C 内部服务器访问    --500

       D 服务器繁忙        ----503

         转来的一张HTTP状态吗:

                                

     14   如果某系统15*4=112成立,则系统采用的是()进制。

         A.6            B.7             C.8               D.9

          由于这是一个选择题,那么题目就较为简单了,首先我们不难得到15*4 =60(十进制数)

         如果是6进制:  15*4= 112 ={(6+5)*4= 1*6^2+1*6+2 =44 }  对

         答案为:A

      15 某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的编码:(A)

          A  a(000)  b(001)  h(01)  i(10)  o(11)

          B  a(0000)  b(0001)  h(001)  o(01)  i(1)

          C  a(000)  b(001)  h(01)  i(10)  o(00)

          D  a(0000)  b(0001)  h(001)  o(000)  i(1)

       分析:  

          首先,考查huffman树--->  最优二叉树 ,写出了huffman树,我们不难得到huffman编码

    因此 , 

    16  TCP和IP分别对应了OSI中的哪几层?()

              A  Application layer           ----- 应用层

              B  Presentation layer        ------表示层

             C  Transport layer            ------传输层

             D  Network layer             -------网络层

        介于于   传输层和网络层

       答案:   CD

    17    一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?()

           A.EDCBA          B.DECBA          C.DCEAB       D.ABCDE

      分析:  简单的先进后出(栈)  ,这里就省去吧!   C

       18 同一进程下的线程可以共享以下?(BD)

           A. stack           B.data section        C.register set     D.file fd

       解析:  这道题,不知道怎么下手.....嗷嗷的哭去....

           线程共享的内容包括: 

    1. 进程代码段
    2. 进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、
    3. 进程打开的文件描述符、
    4. 信号的处理器、
    5. 进程的当前目录和
    6. 进程用户ID与进程组ID   

        线程独有的内容包括:

    1. 线程ID
    2. 寄存器组的值
    3. 线程的堆栈
    4. 错误返回码
    5. 线程的信号屏蔽码

    19 对于派生类的构造函数,在定义对象时构造函数的执行顺序为?()

          1:成员对象的构造函数

          2:基类的构造函数

          3:派生类本身的构造函数

            A.123             B.231               C.321           D.213

        分析:

              (C++)西加加的内容:

               ----》2 1 3  答案:  D

         别人家的解析:

        当派生类中不含对象成员时

    • 在创建派生类对象时,构造函数的执行顺序是:基类的构造函数→派生类的构造函数;
    • 在撤消派生类对象时,析构函数的执行顺序是:派生类的构造函数→基类的构造函数。

        当派生类中含有对象成员时

      • 在定义派生类对象时,构造函数的执行顺序:基类的构造函数→对象成员的构造函数→派生类的构造函数;
      • 在撤消派生类对象时,析构函数的执行顺序:派生类的构造函数→对象成员的构造函数→基类的构造函数。

       

    21 递归函数最终会结束,那么这个函数一定?()

      A 使用了局部变量

      B 有一个分支不调用自身

      C 使用了全局变量或者使用了一个或多个参数 

      D 没有循环调用

        依据多年的调试代码经验 ,答案:  B  

    22 编译过程中,语法分析器的任务是()

         A 分析单词是怎样构成的

        B 分析单词串是如何构成语言和说明的

        C 分析语句和说明是如何构成程序的

       D 分析程序的结构

     答案:  B

    /--------------------------------------------------------------------------------------------------------------------------/

    23 同步机制应该遵循哪些基本准则?(ABCD)

    A.空闲让进        B.忙则等待        C.有限等待        D.让权等待

    解析:  不知道怎么做,就看看别人家的解释吧!

        同步机制应该遵循的基本准则

    
    
    • 空闲让进:当无进程处于临界区时,表明临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,以有效利用临界资源
    • 忙则等待:当已有进程处于临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问
    • 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态
    • 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态
     24、
  • 相关阅读:
    nodejs文本文件的读写
    nodejs目录与文件遍历
    问题建模
    Using JavaScript with WKWebView in iOS 8
    git 合并提交
    iOS中类簇的使用--__NSPlaceholderArray __NSPlaceholderDictionary
    QQ音乐Android客户端Web页面通用性能优化实践
    HDFS+ClickHouse+Spark:从0到1实现一款轻量级大数据分析系统
    图计算黑科技:打开中文词嵌入训练实践新模式
    腾讯“神盾-联邦计算”平台带你翻越数据合作的重重大山
  • 原文地址:https://www.cnblogs.com/gongxijun/p/4221259.html
Copyright © 2011-2022 走看看