• 2013人人网校园招聘笔试题


    一、选择题(每题5分,共计50分)
    1、对于全局函数 int f(void) ,与其完全等价的函数原型为()
    A、int &f();      B、int f(void) const;       C、const int f();      D、A、B、C都不是

    分析:对于int这种数据类型。函数返回的是个常量。与加了const限定的一样,同样不能作为左值。 二者是等价的。
    我是说int这种类型,如果用户自定义的类型,有时是可以修改,可以作为左值的,这时候就不等价了。。

    2、下列关于构造函数的描述中,错误的是()
    A、构造函数可以设置默认的参数
    B、构造函数在定义类对象时自动执行
    C、构造函数可以是内联函数
    D、构造函数不可以重载
    分析:函数重载是通过靠参数来实现的,构造函数是可以重载的,但析构函数没有参数,不能重载,所以析构函数只有一个版本。(析构函数可以为虚函数)
    3、考虑函数原型 void test(int a , int b = 7, char ch='*'),下面的函数调用中,属于不合法调用的是()
    A、test(5)      B、test(5,8)     C、test(6,'#')      D、test(0,0,'#')

    分析:注意顺序
    4、所谓LRU页面淘汰算法是指将驻留在内存中()页面淘汰
    A、时间最长的
    B、最久未使用的
    C、使用频度最少的
    D、出现脏数据的

    分析:Least Recently Used近期最少使用算法
    5、下列说法错误的是()
    A、构造函数可以有一个参数         B、构造函数可以有多个参数
    C、一个类只能有一个构造函数       D、一个类只能有一个析构函数
    6、系统在调用重载函数时,能作为确定哪个重载函数被调用的依据是()
    A、函数返回类型     B、参数个数    C、函数名称    D、参数名称

    分析:重载是方法的参数列表必须不相同,参数个数、参数类型、参数顺序,只要满足其一就行
    7、一个栈的入栈序列是A、B、C、D、E,则栈的不可能的输出序列是()
    A、EDCBA       B、DECBA     C、DCEAB     D、ABCDE

    分析:栈是后进先出
    8、有12个球,外形相同,其中一个小球的质量与其他11个不同,给一个天平,需要几次把这个小球找出来并且求出这个小球是比其他的轻还是重()
    A、3     B、5      C、7      D、9

    分析:首先 将十二个球编号为 1-12。
    第一次,先将1-4号放在左边,5-8号放在右边。
    称量结果有3种可能:1右重,2平衡,3左重。
    下面分别叙述每种可能下的第二步和第三步称量。
    ---------------------------------------------------
      1.如果右重 则坏球在1-8号当中。9-12全为好球
        第二次将2-4号拿掉,将6-8号从右边移到左边,把9-11号放在右边。就是说,把1,6,7,8放在左边,5,9,10,11放在右边。
          1.如果右重则坏球在没有被触动的1,5号。如果是1号,则它比标准球轻;如果是5号,则它比标准球重。
            第三次将1号放在左边,2号放在右边。
              1.如果右重则1号是坏球且比标准球轻;
              2.如果平衡则5号是坏球且比标准球重;
              3.这次不可能左重。
          2.如果平衡则坏球在被拿掉的2-4号,且比标准球轻。
            第三次将2号放在左边,3号放在右边。
              1.如果右重则2号是坏球且比标准球轻;
              2.如果平衡则4号是坏球且比标准球轻;
              3.如果左重则3号是坏球且比标准球轻。
          3.如果左重则坏球在拿到左边的6-8号,且比标准球重。
            第三次将6号放在左边,7号放在右边。
              1.如果右重则7号是坏球且比标准球重;
              2.如果平衡则8号是坏球且比标准球重;
              3.如果左重则6号是坏球且比标准球重。
    ---------------------------
      2.如果第一次的称量结果是 天平平衡,则1-8号全为好球,坏球在9-12号。
        第二次将1-3号放在左边,9-11号放在右边。
          1.如果右重则坏球在9-11号且坏球较重。
            第三次将9号放在左边,10号放在右边。
              1.如果右重则10号是坏球且比标准球重;
              2.如果平衡则11号是坏球且比标准球重;
              3.如果左重则9号是坏球且比标准球重。
          2.如果平衡则坏球为12号。
            第三次将1号放在左边,12号放在右边。
              1.如果右重则12号是坏球且比标准球重;
              2.这次不可能平衡;
              3.如果左重则12号是坏球且比标准球轻。
          3.如果左重则坏球在9-11号且坏球较轻。
            第三次将9号放在左边,10号放在右边。
              1.如果右重则9号是坏球且比标准球轻;
              2.如果平衡则11号是坏球且比标准球轻;
              3.如果左重则10号是坏球且比标准球轻。
    -----------------------------
      3.如果第一次称量的结果是 左重, 则坏球在1-8号。9-12号均好球。
        这种情况与 右重 的情形是对称的。剩下的步骤可以对称执行。不一一列出。

    二、问答题
    1、编码实现环状单向链表(尾指针直接指向头指针,中间没有空节点),去除连续的重复元素的操作。
    比如:1(头)->2->2->3->3->1->1(头) 去除以后的结果是1->2->3,注意头尾的1也要去掉一个。

    struct Tnode
    {
        Tnode *next;
        int value;
    };
    
    Tnode *unique(Tnode *head)
    {
    }

    2、静安市区建有一条从南到北的公路,沿着这条公路有10个加油站,加油站总部每天都要给每个加油站补给一车汽油,加油站总公司计划在这10个加油站中选出一个加油站作为总补给点,每天负责给其他加油站送一车汽油,请问挑选哪个加油站使得每天负责运送汽油的总里程数最小,请用代码实现,如果时间不够,请写出主要思路。

     

    3、阅读下面一段程序:
    (1)当输入的x和y分别为8和8时,写出该程序的结果,并写出你的演算过程。
    (2)该程序的执行效率很低,请写出你能想到的更高效f函数的实现方法。

    4、题目:由于诺基亚手机不止可以当作手机使用,还可以作为砖头防身,人人的员工小丁相测一测它从多高才能摔破。借助人人公司所在的静安中心大楼(共27层),小丁准备从1层开始一层一层的将诺基亚手机扔下去,直到摔破为止,显而易见,在最坏的情况下需要扔27次才能测出这个临界值(假定顶层的高度一定可以摔破这部诺基亚手机),小丁跟同事小李说了这个想法,小李说他这也有一部同型号的诺基亚手机,正好不用了给了小丁,现在小丁手中有两部诺基亚手机。
    (1)请你帮忙计算一下在最坏情况下,小丁最少需要扔几次才能测出这个临界值,并且给出具体策略?(PS,两部手机,第一步手机选择第k层扔下去,若是没有摔坏我们可以继续拿来往楼下摔,若是摔坏了,只有一部手机了,还得按照之前一部手机的策略)
    (2)现在我们发散一下,假设给你m部诺基亚手机,n层的高楼(假定顶层的高度一定可以摔碎),在最坏情况下至少需要扔多少次才能测出临界高度?程序实现,最好给出算法思想,假定输入若干组m和n,你的程序需要对每组m、n给出响应结果。(其中m属于[1,50],n属于[1,1000])

  • 相关阅读:
    130行C语言实现个用户态线程库(2)
    130行C语言实现个用户态线程库(1)
    用C语言模仿Python函数
    ES 2.4 bigdesk 安装失败解决方案.
    使用SqlBulkCopy, 插入整个DataTable中的所有数据到指定数据库中
    表A的数据减去表B ,最终得到表C
    关于把A表中的数据复制到B表中(整理)
    需求池整理
    app主流推广渠道
    流程图梳理
  • 原文地址:https://www.cnblogs.com/sooner/p/3278694.html
Copyright © 2020-2023  润新知