zoukankan      html  css  js  c++  java
  • (转)腾讯2011.10.15校园招聘会笔试题

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

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

    答:B。堆排序,这题不是求稳定性,是求最好时间和和最坏时间一样的排序

    2、以下关于Cache的叙述中,正确的是()

    A、CPU中的Cache容量应大于CPU之外的Cache容量

    B、Cache的设计思想是在合理成本下提高命中率

    C、Cache的设计目标是容量尽可能与主存容量相等

    D、在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素

    答:B

    3、数据存储在磁盘上的排列方式会影响I/O服务的性能,一个圆环的磁道上有10个物理块,10个数据记录R1------R10存放在这个磁道上,记录的安排顺序如下表所示:

    物理块

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    逻辑记录

    R1

    R2

    R3

    R4

    R5

    R6

    R7

    R8

    R9

    R10

    假设磁盘的旋转速度为20ms/周,磁盘当前处在R1的开头处,若系统顺序扫描后将数据放入单缓冲区内,处理数据的时间为4ms(然后再读取下个记录),则处理这10个记录的最长时间为()

    A、180ms                           B、200ms                          C、204ms                             D、220ms

    [cpp] view plaincopy
     
    1. 答:C  
    2.  首先从磁盘的转速:20ms/圈,我们可以知道:读取一条记录需要2ms。值得注意的一点是:处理一条记录的前提,是将其读出来。所以处理第一条记录时,要先将其读取出来,再进行处理,所以处理R1所需时间为2ms+4ms,当R1处理完时,磁头已经转到了R4的位置,此时要将其调整到R2的位置,需要经过R4,R5,R6,R7,R8,R9,R10,R1,这样要耗16ms的时间,再加上读取R2需要2ms以及处理数据的4ms,R2的总处理时间应为22ms。所以2+4+(16+2+4)*9=204ms。  

    4、随着IP网络的发展,为了节省可分配的注册IP地址,有一些地址被拿出来用于私有IP地址,以下不属于私有IP地址范围的是()

    A、10.6.207.84                              B、172.23.30.28                     C、172.32.50.80               D、192.168.1.100

    [cpp] view plaincopy
     
    1. 答:C  
    2. 私有IP地址共有三个范围段:  
    3. A:     10.0.0.0~10.255.255.255 /8   B:      172.16.0.0~172.31.255.255 /12   C:   192.168.0.0~192.168.255.255 /16  

    5、下列关于一个类的静态成员的描述中,不正确的是()

    A、该类的对象共享其静态成员变量的值                              B、静态成员变量可被该类的所有方法访问                 

    C、该类的静态方法只能访问该类的静态成员变量                 D、该类的静态数据成员变量的值不可修改

    答:D

    6、已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key) = key%7计算散列地址,并散列存储在散列表A【0....6】中,若采用线性探测方法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为()

    A、1.5                  B、1.7                           C、2.0                       D、2.3

    答:C

     解析: 线性表(38,25,74,63,52,48)已构造好 散列函数h(key) = key%7计算散列地址 则为:

             38%7.......3                 寻址 1次 找到

             25%7.....4                   寻址 1次 找到

             74%7......4x->5            寻址 2次 找到

             63%7......9  寻址 1次 找到   寻址 1次 找到

             52%7......3x->4x->5x->6   寻址 4次 找到

             48%7.......3x->4x->5x->6x->7  寻址 5次 找到

          若等概率寻址成功,则查找的平均查找长度(ASL) = (1+1+2+1+4+5)/7=2.0

    7、表达式“X=A+B*(C--D)/E”的后缀表示形式可以为()

    A、XAB+CDE/-*=                     B、XA+BC-DE/*=                      C、XABCD-*E/+=                         D、XABCDE+*/=

    答:C。根据优先级将X=A+B*(C--D)/E写成二叉树的形式,后序顺利的结果就是后缀表示形式

    在A*B*C这样的运算中,两个运算符优先级相同,从左往右依次计算。

    8、()设计模式将抽象部分与它的实现部分相分离。

    A、Singleton(单例)                                      B、 Bridge(桥接)                     

    C、 Composite(组合)                                   D、 Facade(外观)

    [cpp] view plaincopy
     
    1. 答:B  
    2. Bridge的思想就是抽象与实现分离  
    3. Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。  
    4. 将对象组合成树形结构以表示“部分——整体”的层次结构。Composite使得用户对单个对象操作和组合对象的操作使用具有一致性。  
    5. Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。  

    9、下面程序的输出结果为多少?

    [cpp] view plaincopy
     
    1. void Func(char str_arg[100])    
    2. {    
    3.     printf("%d ",sizeof(str_arg));    
    4. }    
    5.     
    6. int main(void)    
    7. {    
    8.     char str[]="Hello";    
    9.     printf("%d ",sizeof(str));    
    10.     printf("%d ",strlen(str));    
    11.     char *p = str;    
    12.     printf("%d ",sizeof(p));    
    13.     Func(str);    
    14. }    
    [cpp] view plaincopy
     
    1. 答:输出结果为:6   5     4      4  
    2. 对字符串进行sizeof操作的时候,会把字符串的结束符“”计算进去的,进行strlen操作求字符串的长度的时候,不计算的。  
    3. 数组作为函数参数传递的时候,已经退化为指针了,Func函数的参数str_arg只是表示一个指针,那个100不起任何作用的。  

    10、C++将父类的析构函数定义为虚函数,下列正确的是哪个?
    A、释放父类指针时能正确释放子类对象
    B、释放子类指针时能正确释放父类对象
    C、这样做是错误的
    D、以上全错

    答:A

    11、下列哪一个不属于关系数据库的特点?
    A、数据冗余度小
    B、数据独立性高
    C、数据共享性好
    D、多用户访问

    答:D


    12、下面程序的输出结果为多少?

    [cpp] view plaincopy
     
    1. void Func(char str_arg[2])    
    2. {    
    3.     int m = sizeof(str_arg);     //指针的大小为4     
    4.     int n = strlen(str_arg);     //对数组求长度,str_arg后面的那个2没有任何意义,数组已经退化为指针了     
    5.     printf("%d ",m);    
    6.     printf("%d ",n);    
    7. }    
    8. int main(void)    
    9. {    
    10.     char str[]="Hello";    
    11.     Func(str);    
    12. }    
    [cpp] view plaincopy
     
    1. 答:输出结果为:      4         5  
    2. strlen只是对传递给Func函数的那个字符串求长度,跟str_arg中的那个2是没有任何关系的,即使把2改为200也是不影响输出结果的。。  


    13、typedef char *String_t; 和 #define String_d char * 这两句在使用上有什么区别?

    [cpp] view plaincopy
     
    1. 答:typedef char *String_t 定义了一个新的类型别名,有类型检查。而#define String_d char * 只是做了个简单的替换,无类型检查,前者在编译的时候处理,后者在预编译的时候处理。  
    2. 同时定义多个变量的时候有区别,主要区别在于这种使用方式String_t  a,b;  String_d  c,d;    a,b ,c都是char*类型,而d为char类型  
    3. 由于typedef还要做类型检查。。#define没有。。所以typedef比#define安全。。  

    14、到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少?

    答:折扣60%。花了200,买了300的东西


    15、题目:已知rand7() 可以产生 1~7 的7个数(均匀概率),利用rand7()  产生rand10()   1~10(均匀概率)
    答:可以通过rand7()方便地求rand5()和rand2(),rand5()和rand2()得到的不同的值相组合,能得到10种结果,分别代表1-10 

    16、给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。

    答:可以通过rand5()方便地求rand2()和rand4(),rand2()和rand4()得到的不同的值相组合,能得到8种结果,分别代表1-8,由此求得到rand8(),再得到rand7()

    17、对一个正整数作如下操作:如果是偶数则除以2,如果是奇数则加1,如此进行直到1时操作停止,求经过9次操作变为1的数有多少个?

    [cpp] view plaincopy
     
    1. 答:55  
    2. 把操作“如果是偶数则除以2”定义为a,把操作“如果是奇数则加1”定义为b,那么9次操作可以用9个字母的字符串组成,字符串与正整数一一对应。  
    3. 由9个字母a或b组成的字符串,其中最后一位不是b,且不能连续两个b,这样的字符串的个数就是所求的正整数的个数。  
    4. 这样就是一道组合数组题目。  


    18、给定一个字符串,求出其最长的重复子串

    [cpp] view plaincopy
     
      1. 思路:使用后缀数组,对一个字符串生成相应的后缀数组后,然后再排序,排完序依次检测相邻的两个字符串的开头公共部分。  
      2. 这样的时间复杂度为:  
      3.   
      4. 生成后缀数组 O(N)  
      5. 排序 O(NlogN*N) 最后面的 N 是因为字符串比较也是 O(N)  
      6. 依次检测相邻的两个字符串 O(N * N)  
      7. 总的时间复杂度是 O(N^2*logN)  
  • 相关阅读:
    Uva 11806 拉拉队 二进制+容斥原理 经典!
    CSU CHESS
    hdu 4049 Tourism Planning 状态压缩dp
    HDOJ 4661: Message Passing(找递推公式+逆元)
    HDU
    hdu4647(思路啊!)
    spoj 370. Ones and zeros(搜索+同余剪枝+链表存数(可能越界LL))
    URAL
    URAL
    hdu4614 (二分线段树)
  • 原文地址:https://www.cnblogs.com/whf-Staring/p/4792254.html
Copyright © 2011-2022 走看看