腾讯校园招聘会笔试题2011.10.15

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

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

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

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

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

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

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

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

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

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

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

私有IP地址共有三个范围段:

 A:10.0.0.0~10.255.255.255/8B:172.16.0.0~172.31.255.255/12  C:192.168.0.0~192.168.255.255 /16

    5、下列关于一个类的静态成员的描述中,不正确的是(D) 静态函数由于没有this指针,所以无法访问非静态成员变量!

    A、该类的对象共享其静态成员变量的值

    B、静态成员变量可被该类的所有方法访问

    C、该类的静态方法只能访问该类的静态成员变量

    D、该类的静态数据成员变量的值不可修改

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

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

依次进行取模运算求出哈希地址:

74应该放在下标为4的位置,由于25已经放在这个地方,所以74往后移动,放在了下标为5的位置上了。由于是等概率查找,所以结果为:1/6*(1+3+1+1+2+4)= 2.0

http://blog.csdn.net/koself/article/details/7869453

http://blog.csdn.net/mycomputerxiaomei/article/details/7641221


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

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

http://blog.csdn.net/whatforever/article/details/6738538

一个中缀式到其他式子的转换方法~~
这里我给出一个中缀表达式~
a+b*c-(d+e)
第一步:按照运算符的优先级对所有的运算单位加括号~
        式子变成拉:((a+(b*c))-(d+e))
第二步:转换前缀与后缀表达式
        前缀:把运算符号移动到对应的括号前面
              则变成拉:-( +(a *(bc)) +(de))
              把括号去掉:-+a*bc+de  前缀式子出现
        后缀:把运算符号移动到对应的括号后面
              则变成拉:((a(bc)* )+ (de)+ )-
              把括号去掉:abc*+de+-  后缀式子出现
发现没有,前缀式,后缀式是不需要用括号来进行优先级的确定的。

如果你习惯拉他的运算方法。计算的时候也就是从两个操作数的前面
或者后面找运算符。而不是中间找,那么也就直接可以口算拉

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

 A、Singleton(单例)    B、Bridge(桥接)    C、 Composite(组合)    D、 Facade(外观)

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

输出结果为:6   5    4      4

对字符串进行sizeof操作的时候,会把字符串的结束符“\0”计算进去的,进行strlen操作求字符串的长度的时候,不计算\0的。

数组作为函数参数传递的时候,已经退化为指针了,Func函数的参数str_arg只是表示一个指针,那个100不起任何作用的。

    10、C++将父类的析构函数定义为虚函数,下列正确的是哪个?

    A、释放父类指针时能正确释放子类对象

    B、释放子类指针时能正确释放父类对象

    C、这样做是错误的

    D、以上全错

    C++的多态肯定是使用父类的指针指向子类的对象,所以肯定是释放子类的对象,如果不使用虚函数的话,父类的指针就只能够释放父类的对象。

    11、下列哪一个不属于关系数据库的特点?

 A、数据冗余度小B、数据独立性高C、数据共享性好D、多用户访问

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

输出结果为:      4        5

 strlen只是对传递给Func函数的那个字符串求长度,跟str_arg中的那个2是没有任何关系的,即使把2改为200也是不影响输出结果的。

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

答:typedefchar *String_t 定义了一个新的类型别名,有类型检查。而#define String_d char* 只是做了个简单的替换,无类型检查,前者在编译的时候处理,后者在预编译的时候处理。

同时定义多个变量的时候有区别,主要区别在于这种使用方式String_t  a,b;  String_d c,d;    a,b ,c都是char*类型,而d为char类型由于typedef还要做类型检查。。#define没有。。所以typedef比#define安全。。

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

 15、题目:已知rand7() 可以产生 1~7 的7个数(均匀概率),利用rand7()  产生rand10()   1~10(均匀概率)记住这道题重点是:均匀概率

16、给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。
17、对一个正整数作如下操作:如果是偶数则除以2,如果是奇数则加1,如此进行直到1时操作停止,求经过9次操作变为1的数有多少个?
第9次操作:结果1由2产生。1个被操作数8:结果2只能由4产生。1个被操作数7:结果4由8、3产生。2个6:结果8由16、7产生;结果3由6产生。共3个5:结果16由32、15产生;结果7由14产生;结果6由12、5产生。共5个…每次操作,偶数(2除外)都由该数减1和该数的2倍得来,奇数只由该数的2倍得来各次操作的操作对象个数为:1,1,2,3,5,8,13,21,34,…本题可以通过所给的变换规律,由易到难,确定操作可变为1的数组成斐波拉契数列,再根据所发现的规律求出经过9次操作变为1的数的个数。 

 

posted @ 2014-09-01 15:27  kira2will  阅读(219)  评论(0编辑  收藏  举报