zoukankan      html  css  js  c++  java
  • 腾讯2012.9.23校园招聘笔试题

    一、选择题

    1、数据库表设计最合理的是(A)

    A、学生{id,name,age}  学科{id,name}  分数{学生id,学科id,分数}

    分析:数据库里面 一般是 学生,学科,分数 分开放。

    2、在数据库系统中,产生不一致的根本原因是(D)

    A.数据存储量太大    B.没有严格保护数据    C.未对数据进行完整性控制    D.数据冗余

    3、15L和27L两个杯子可以精确地装(C)L水?

    A.  53    B.  25    C. 33    D. 52

    分析:15和27 升水 可以装出 3升水,故:27 + 3 +3 因此33合理。。

    4、考虑左递归文法 S->Aa|b、 A ->Ac | Sd |e,消除左递归后应该为(A)

    e为空集
    消除左递归,即消除 有A->A*的情况
    消除做递归的一般形式为
    U = Ux1 | U x2 |y1|y2
    U = y1U' |y2 U'
    U' = x1U'|x2U'|e
    A = Ac|Aad|bd|e
    A =bdA'|A'
    A'= cA'|adA'|e

    5、下列排序算法中,初始数据集合对排序性能无影响的是()

    A.插入排序    B.堆排序    C.冒泡排序    D.快速排序

    6、二分查找在一个有序序列中的时间复杂度为(O(logn)

    7、路由器工作在网络模型中的哪一层(网络层)?

    分析:主要作用就是选路和转发,当然网络层

    8、select foo,count(foo) from pokes where foo>10 group by foo having count(*)>5 order by foo

    SQL Select语句完整的执行顺序:

    1、from子句组装来自不同数据源的数据;
    2、where子句基于指定的条件对记录行进行筛选;
    3、group by子句将数据划分为多个分组;
    4、使用聚集函数进行计算;
    5、使用having子句筛选分组;
    6、计算所有的表达式;
    7、使用order by对结果集进行排序。

    因此 合理的答案应该为 from --where-- group by-- having --select-- order by

    只有select选出了相应的表 才能对其排序,删除之类的操作

    9、深搜如下图,遍历顺序为()

    这道题目 我咋看不出来 那个解呢。
    如果深度的话 A B C D E F H I G
    广度的话 A B C D E F G H I

    10、UNIX系统中,目录结构采用(二级目录结构

    11、请问下面的程序一共输出多少个“-”?

    #include <stdio.h>
    #include <sys/types.h>
    #include <unistd.h>  
    int main(void)
    {
       int i;
       for(i=0; i<2; i++)
      {
           fork(); //复制父进程,调用一次,返回两次
           printf("-"); //缓冲区数据
       }
       return 0;
    }

    答案:8

    分析:

    如果你对fork()的机制比较熟悉的话,这个题并不难,输出应该是6个“-”,但是,实际上这个程序会很tricky地输出8个“-”。

    要讲清这个题,我们首先需要知道fork()系统调用的特性,

    • fork()系统调用是Unix下以自身进程创建子进程的系统调用,一次调用,两次返回,如果返回是0,则是子进程,如果返回值>0,则是父进程(返回值是子进程的pid),这是众为周知的。
    • 还有一个很重要的东西是,在fork()的调用处,整个父进程空间会原模原样地复制到子进程中,包括指令,变量值,程序调用栈,环境变量,缓冲区,等等。

        所以,上面的那个程序为什么会输入8个“-”,这是因为printf(“-”);语句有buffer,所以,对于上述程序,printf(“-”);把“-”放到了缓存中,并没有真正的输出,在fork的时候,缓存被复制到了子进程空间,所以,就多了两个,就成了8个,而不是6个。

        另外,多说一下,我们知道,Unix下的设备有“块设备”和“字符设备”的概念,所谓块设备,就是以一块一块的数据存取的设备,字符设备是一次存取一个字符的设备。磁盘、内存都是块设备,字符设备如键盘和串口。块设备一般都有缓存,而字符设备一般都没有缓存

    对于上面的问题,我们如果修改一下上面的printf的那条语句为:

    printf("-
    ");

    或是

    printf("-");
    fflush(stdout);

    就没有问题了(就是6个“-”了),因为程序遇到“ ”,或是EOF,或是缓中区满,或是文件描述符关闭,或是主动flush,或是程序退出,就会把数据刷出缓冲区。需要注意的是,标准输出是行缓冲,所以遇到“n”的时候会刷出缓冲区,但对于磁盘这个块设备来说,“n”并不会引起缓冲区刷出的动作,那是全缓冲,你可以使用setvbuf来设置缓冲区大小,或是用fflush刷缓存。

    12、接上

    #include <stdio.h>
    #include <sys/types.h>
    #include <unistd.h>  
    int main(void)
    {
       int i;
       for(i=0; i<2; i++)
      {
           fork(); //复制父进程,调用一次,返回两次
           printf("-
    "); //缓冲区数据
       }
       return 0;
    }

    答案:6

    13、避免死锁的一个著名算法是(银行家算法

    14、你怎么理解分配延迟(dispatch lantency)的?

    分析:分配延迟 一般指进程切换时间 在进程调度哪里,只有A进程切换

    15、不是进程的基本状态的是(D)

    A.  阻塞态   B.执行态    C.就绪态   D.完成态

    16、任务 1: cpu 3.5分钟 io 14分钟
    任务 2 : 10分钟后 cpu 2 分钟 io 8分钟
    任务3 : 15分钟后 cpu 1.5分钟 io 6分钟

    查了资料 io 花费p 则多道程序 cpu占用率 为 1-p^n只有 多个都处于等待才不是cpu时间
    因此 分析过程如下
    0-10分钟 cpu时间 10*0.2 = 2
    10-15分钟 cpu利用率为 1-0.8^2 = 0.36 所以这 5分钟里面 cpu时间 为 0.36*5 =1.8
    15 -之后 cpu利用率 1-0.8^3 = 0.488
    0-10提供2分钟cpu时间
    10-15 提供1.8分钟cpu时间
    15 -18.7 提供1.8分钟cpu
    18.7-21.5提供 1分钟cpu
    21.5-23.5提供0.4分钟cpu时间

    故,总共花费23.5分钟

    17、在所有非抢占CPU调度算法中,系统平均响应时间最优的是(C)

    A.实时调度    B.段任务优先    C.时间片轮转    D.先来先服务

    18、什么是内存抖动(Thrashing)(A)?

    A.非常频繁的换页活动

    19、Belady's Anomaly出现在哪里()?

    A内存管理算法    B内存换页算法    C预防死锁算法    D磁盘调度算法

    分析:Belady异常(Belady Anomaly):有些情况下,页故障率(缺页率)可能会随着所分配的帧数的增加而增加。

    20、生产者消费者中不产生死锁的程序是(A)

    。。。。。。

    二、填空题

    21、将下图进行拓扑排序得:ABCFD

    分析:非常简单,把握一个原则。。目的节点一定不排在源节点前边

    22、补充完整二分查找:

    tail=mid-1;、head = mid;

    23、补充完整求连续子数组最大和

    nStart = max(nStart+A[i],0);
    nAll = max(nAll,nStart);

    24、给一二叉树,写出先序遍历顺序。。abdefghc

    25、最长递增子序列,得到其长度的最优化时间复杂度为(O(nlogn)),空间复杂度为(O(n)

    26、入栈出栈顺序问题,卡特兰数:n=5,那么。。。。C(2n,n)/(n+1)

    27、a+b*(c-d)/e-f的逆波兰式是:abcd-*e/+f-

    三、附加题

    1、海量数据处理。。获取T级别条字符串中的出现次数最多的前10个关键字

    2、设计一个IP统计系统(后台统计系统)

     

  • 相关阅读:
    HDU 1002 A + B Problem II
    leetcode 42.接雨水
    无向图 及其术语
    C++优先队列详解
    C++优先队列详解
    最短路
    最短路
    CF DP练习题
    CF DP练习题
    干货
  • 原文地址:https://www.cnblogs.com/sooner/p/3253925.html
Copyright © 2011-2022 走看看