腾讯笔试资源

2012

http://wenku.baidu.com/link?url=3MImdLaHCnzZ8ZFHA856WYzK4CgcBUxKZvHIJbGpmYmqbaYAHq-14oQIozM-AxaZqngK0iKpr7hXlaWgKYWkCVRWFIGJGx-xXEAanJrV5KW

2011

http://blog.csdn.net/zhangyuehuan/article/details/22221071

http://blog.csdn.net/hackbuteer1/article/details/6878287

2014

http://www.marksaas.com/2014/04/2014%E8%85%BE%E8%AE%AF%E6%A0%A1%E5%9B%AD%E6%8B%9B%E8%81%98%E5%AE%9E%E4%B9%A0%E6%8A%80%E6%9C%AF%E7%B1%BB%E7%AC%94%E8%AF%95%E9%A2%98%E7%9B%AE.html

数据存储在磁盘上的排列方式会影响I/O服务的总时间

假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录R!个逻辑记录。逻辑记录R1,R2,﹍﹍ ,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个记录的最长时间为___。若对信息存储进行优化分布后,处理10个记录的最少时间为_______

首先从磁盘的转速:20ms/圈,我们可以知道:读取一条记录需要2ms。值得注意的一点是:处理一条记录的前提,是将其读出来。所以处理第一条记录时,要先将其读取出来,再进行处理,所以处理R1所需时间为2ms+4ms,当R1处理完时,磁头已经转到了R4的位置,此时要将其调整到R2的位置,需要经过R5,R6,R7,R8,R9,R10,R1,这样要耗16ms的时间,再加上读取R2需要2ms以及处理数据的4ms,R2的总处理时间应为22ms。所以2+4+(16+2+4)*9=204ms。而优化后的排列顺序应为:R1,R8,R5,R2,R9,R6,R3,R10,R7,R4,这样的排列顺序刚好是处理完R1,磁头就到了R2的位置,直接读取R2,处理R2,处理完R2,磁头又到了R3的位置,依此类推,每条记录的读取及处理时间为:2ms+4ms=6ms,所以总时间为:(2+4)*10=60ms。

随着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 /8   B:      172.16.0.0~172.31.255.255 /12   C:   192.168.0.0~192.168.255.255 /16

已知一个线性表(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

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


A


0


1


2


3


4


5


6


记录


63


48


38


25


74


52


查找次数


1


3


1


1


2


4

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(外观)

74应该放在下标为4的位置,由于25已经放在这个地方,所以74往后移动,放在了下标为5的位置上了。

由于是等概率查找,所以结果为:1/6*(1+3+1+1+2+4)= 2.0

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

  1. void Func(char str_arg[100])
  2. {
  3. printf("%d\n",sizeof(str_arg));
  4. }
  5. int main(void)
  6. {
  7. char str[]="Hello";
  8. printf("%d\n",sizeof(str));
  9. printf("%d\n",strlen(str));
  10. char *p = str;
  11. printf("%d\n",sizeof(p));
  12. Func(str);
  13. }

输出结果为: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、下面程序的输出结果为多少?

  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\n",m);
  6. printf("%d\n",n);
  7. }
  8. int main(void)
  9. {
  10. char str[]="Hello";
  11. Func(str);
  12. }

输出结果为:      4         5

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

13、typedef char *String_t; 和 #define String_d char * 这两句在使用上有什么区别?
答:typedef char *String_t 定义了一个新的类型别名,有类型检查。

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

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的数的个数。

18、OFFSETOF(s, m)的宏定义,s是结构类型,m是s的成员,求m在s中的偏移量。

#define OFFSETOF(s,m) ((int)&(((s*)0)->m))

19 在if里面请写入语句,使得打印出  Hello  World。

int main(void)
{
 if()    
 {
  printf("Hello ");
 }
 else
 {
  printf("World");
 }
 return 0;
}

//应该填入!printf("Hello "),会先打印出Hello,然后进行if()判断,!printf()取反就是0,所以不成立只能运行else,接着打印出World。

后缀数组

给定一个字符串,求出其最长的重复子串。
思路:使用后缀数组,对一个字符串生成相应的后缀数组后,然后再排序,排完序依次检测相邻的两个字符串的开头公共部分。
这样的时间复杂度为:

生成后缀数组 O(N)
排序 O(NlogN*N) 最后面的 N 是因为字符串比较也是 O(N)
依次检测相邻的两个字符串 O(N * N)
总的时间复杂度是 O(N^2*logN),

时间: 2024-10-06 01:28:04

腾讯笔试资源的相关文章

2015/4/8腾讯笔试

今天腾讯笔试,自我感觉良好,但是做完之后想到诸多问题....目前把记得的题目记录一下以便之后复习和思考. 首先是一道选择题:一个有五个节点的二叉树有多少种可能性?当时并没有提升到理论高度,只是单纯的分情况讨论,结果把自己给弄混了,随便选了一个,现在来整理一下: 一个有N个节点的二叉树有多少种可能..这个问题确切地说是一个数学问题,跟数据结构联系并不是很大,数学推导占据了很大成分. 首先考虑n=1的情况.显然只有根节点f(1) = 1; n = 2时,有一个根节点,还有n-1 = 1个节点可以作为

2020腾讯笔试--Ice Cave

链接:http://codeforces.com/contest/540/problem/C You play a computer game. Your character stands on some level of a multilevel ice cave. In order to move on forward, you need to descend one level lower and the only way to do this is to fall through the

2015腾讯笔试大题

今天做完腾讯的在线笔试,感觉自己弱爆了,选择题部分考得比较基础,但是考的面比较广,数据结构,计算机网络,算法常识,概率题,C,C++,都有.大题如下: 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code).请编写一个函数,使用递归方法生成N位的格雷码,并且保证这个函数的健壮性. 2. 有下图的题解,请用C/C++代码来列出满足下图0-100内的所有答案. 3. 如图所示,系统中有三个进程Producer,Transmitter和Consumer.

今天腾讯笔试

第二次参加腾讯的笔试,依旧是网页重构.上次挑战失败,不知道这次战绩如何~保佑保佑. 凭借记忆,回忆了下考点.这回比较侧重考网站性能优化方面的知识,不仅选择中考察,在大题中也考察了.一些基本的CSS知识点,例如这个你真的熟悉吗?    [注]第一个50px指的是width,第二个50px指的是height 要会新增知识:HTML5  CSS3 做一个网页重构,要会一些JS. ======================== 分割线  笔试总结 ===========================

腾讯笔试_天猫魔盒(转载)

笔试:天猫魔盒下单逻辑及数据瓶颈问题 源地址:http://m.blog.csdn.net/blog/undoner/38958779 天猫双十一有个积分换墨盒的活动,总共有50万台天猫魔盒(box),每个用户(user)可以用99个天猫积分(point)兑换一台魔盒,且每人限换一台. 请设计一套java接口并实现下单(order)逻辑. 0参考(但不局限于)下面的下单逻辑: 1.创建订单 2.扣减用户积分 3.扣减魔盒库存 4.下单成功 同时请回答: 1.数据库表结构如何设计,有哪些表,分别有

腾讯笔试-1

1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控于一身的技术运维又包括很多种,有DBA运维.网站运维.虚拟化运维.监控运维.游戏运维等等 2)游戏运维又有分工,分为开发运维.应用运维(业务运维)和系统运维开发运维:是给应用运维开发运维工具和运维平台的应用运维:是给业务上线.维护和做故障排除的,用开发运维开发出来的工具给业务上线.维护.做故障排查系统运维

算法编程题积累(4)——腾讯笔试"有趣的数字“问题

本题基本思路:先对原序列进行排序,再根据不同情况采用不同算法. 首先差最大的对数最好求:用最小的数的个数 × 最大的数的个数即可. 接着求差最小的对数: 1.当序列中无重复关键字时:可知最小差必然产生在相邻元素中,遍历一遍用map保存最小差的对数即可. 2.当序列中有重复关键字时:首先确定最小差为0,故而对相同序列的个数依次用排列组合的知识求对数即可. AC代码如下: 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 vector<

腾讯笔试2

一座矿山,可以将矿山抽象地看成一个字符串S 其中的每个矿山可以看成一个字符,其中当一些矿山遵循一种特殊的元素排列时(用字符串P表示),它就能构成一块能源石. 同时,相邻的两块能源石能够融合成一块更大的能源石,融合时它们前缀和后缀相同的部分可能会重叠在一起. 比如:标准的能源石排列为aba,那么两块标准能源石的融合结果就可能为{abaaba,ababa,aba} 一块能源石的能量等于它长度的平方. 现在小Q希望你告诉他最多可以获得多少能量 xyabababcba ab 代码 1 import ja

腾讯笔试3

小Q喜欢吃甜食,有一天他拿到了一个巧克力条,这个巧克力条由许多排在一行的巧克力球组成,有些球上有坚果,有些球上没有坚果. 小Q想把这个巧克力条掰成很多块(每块包含至少一个巧克力球),每块的大小可以不一样,但是每块上有且只有一个坚果. 小Q想知道有多少种方式在某两个相邻的巧克力球直径掰开但是另一种方式没有,那么这两种方式就是不同的. 如果巧克力只包含一个坚果,那么显然只有一种方式,即不掰. 输入: 第一行数字N(1<=N<=100),表示巧克力球的个数: 第二行N个整数,每两个整数之间一个空格隔