腾讯技术类模拟笔试题

时间:2023-02-09 03:54:26 作者:Heaven 综合材料 收藏本文 下载本文

【导语】“Heaven”通过精心收集,向本站投稿了9篇腾讯技术类模拟笔试题,下面是小编给各位读者分享的腾讯技术类模拟笔试题,欢迎大家分享。

篇1:腾讯技术类模拟笔试题

选择题:

1. 36辆车,6条跑道,无计时器,最少几次比赛可以选出前三?(8次)

2. 22个vertex的`连通图,至少多少Arc?(21Arc)

3. 递归求解复杂度?(n)

int f(int n) {

if (n < 2) return n;

return n * n * f(n - 1);

}

4. 知道arr[4][4],arr[9][9],求arr[7][7]?(21C0)

5. int *p代表啥啊?(指针,数组,动态空间)

6. typedef int(FUNC1)(int in)(函数指针知识,11 * 10 = 110)

一堆看程序的题(C++知识)

腾讯大题:

1:Memory Warning(IOS知识)

2:xss漏洞防范(网络安全知识)

怎么样呢~昨天答题的小伙伴们有没有被虐哭呢,没有参加的夜看一看吧,感受一下被虐的感受吧

再次提醒下哦,不要忘记正式考试时间哦

篇2:腾讯软件开发类笔试题

腾讯软件开发类笔试题

一、不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)

01

已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)

A.CFHGEBDA

B.CDFEGHBA

C.FGHCDEBA

D.CFHGEDBA

02

下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)

A.有序数组

B.有序链表

C.AVL树

D.Hash表

03

下列排序算法中,哪些时间复杂度不会超过nlogn?(BC)

A.快速排序

B.堆排序

C.归并排序

D.冒泡排序

04

初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)

A.8 3 2 5 1 6 4 7

B.3 2 8 5 1 4 6 7

C.3 8 2 5 1 6 7 4

D.8 2 3 5 1 4 7 6

05

当n=5时,下列函数的返回值是:(A)

int foo(int n)

{

if(n<2)return n;

return foo(n-1)+foo(n-2);

}

A.5

B.7

C.8

D.10

06

S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C)

A.37.5%

B.32.5%

C.28.6%

D.26.1%

07

Unix系统中,哪些可以用于进程间的通信?(BCD)

A.Socket

B.共享内存

C.消息队列

D.信号量

08

静态变量通常存储在进程哪个区?(C)

A.栈区

B.堆区

C.全局区

D.代码区

09

查询性能(B)

A. 在Name字段上添加主键

B. 在Name字段上添加索引

C. 在Age字段上添加主键

D. 在Age字段上添加索引

10

IP地址131.153.12.71是一个(B)类IP地址,

A.A

B.B

C.C

D.D

11

下推自动识别机的语言是:(C)

A. 0型语言

B.1型语言

C.2型语言

D.3型语言

12

下列程序的输出是:(D)

#define add(a+b) a+b

int main

{

printf(“%d\\n”,5*add(3+4));

return 0;

}

A.23

B.35

C.16

D.19

13

浏览器访问某页面,HTTP协议返回状态码为403时表示:(B)

A 找不到该页面

B 禁止访问

C 内部服务器访问

D 服务器繁忙

14

如果某系统15*4=112成立,则系统采用的是(A)进制。

A.6

B.7

C.8

D.9

15

某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的'编码:(A)

A a(000) b(001) h(01) i(10) o(11)

B a(0000) b(0001) h(001) o(01) i(1)

C a(000) b(001) h(01) i(10) o(00)

D a(0000) b(0001) h(001) o(000) i(1)

16

TCP和IP分别对应了OSI中的哪几层?(CD)

A Application layer

B Presentation layer

C Transport layer

D Network layer

17

一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?(C)

A.EDCBA B.DECBA C.DCEAB D.ABCDE

18

同一进程下的线程可以共享以下?(BD)

A. stack

B.data section

C.register set

D.file fd

19

对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D)

1:成员对象的构造函数

2:基类的构造函数

3:派生类本身的构造函数

A.123

B.231

C.321

D.213

20

如何减少换页错误?(BC)

A 进程倾向于占用CPU

B 访问局部性(locality of reference)满足进程要求

C 进程倾向于占用I/O

D 使用基于最短剩余时间(shortest remaining time)的调度机制

21

递归函数最终会结束,那么这个函数一定?(B)

A 使用了局部变量

B 有一个分支不调用自身

C 使用了全局变量或者使用了一个或多个参数

D 没有循环调用

22

编译过程中,语法分析器的任务是(B)

A分析单词是怎样构成的

B 分析单词串是如何构成语言和说明的

C 分析语句和说明是如何构成程序的

D 分析程序的结构

23

同步机制应该遵循哪些基本准则?(ABCD)

A.空闲让进

B.忙则等待

C.有限等待

D.让权等待

24

进程进入等待状态有哪几种方式?(D)

A CPU调度给优先级更高的线程

B 阻塞的线程获得资源或者信号

C 在时间片轮转的情况下,如果时间片到了

D 获得spinlock未果

25

设计模式中,属于结构型模式的有哪些?(BC)

A 状态模式

B 装饰模式

C 代理模式

D 观察者模式

二、填空题(共4题10个空,每空2分,共20 分)

26

设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按二路归并方法对该序列进行一趟扫描后的结果为DQFXAPBNMYCW,

27

关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell的排序法,则一趟扫描的结果是QACSQDFXRHMY;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是FHCDQAMQRSYX。

28

二进制地址为011011110000,大小为(4)10和(16)10块的伙伴地址分别为:_________,_________。

29

设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左、右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。N2,NL,NR、N0都是全局量,且在调用count(t)之前都置为0。

typedef struct node

{

int data;

struct node *lchild,*rchild;

}node;

int N2,NL,NR,N0;

void count(node *t)

{

if (t->lchild!=NULL)

if (t->rchild!=NULL) N2++;

else NL++;

else if (t->rchild!=NULL) NR++;

else N0++;

if(t->lchild!=NULL) count(t->lchild);

if(t->rchild!=NULL) count(t->rchild);

}/* call form :if(t!=NULL) count(t);*/

30

请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。

31

A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效。

篇3:腾讯技术综合笔试题

腾讯技术综合笔试题

题型解析:

考试时间60分钟,整张试卷分四大部分,

第一部分数据分析,整个部分分为三个大题,每个大题5个小题,不难,图表计算。

第二部分逻辑推理,普通的行测题,一共有10道选择。难易程度跟公务员的差不多。

第三部分阅读理解,15道选择。也是行测类型的,读一段话,做选择。

前三个部分都是单选,一共40题。

第四部分论述题,最后论述2道大题。(这部分不算分数,对面试有好处)

论述题:

广州腾讯产品实习笔试

第一题是如果微信添加一个功能删除一个功能,你会怎么做?(可见腾讯论述题很注重腾讯产品的考察)

第二题是现在电子商务创业很流行,如果有以下电商创业,你会选哪一种:服装,虚拟产品,生活服务类。

第三道题,如果你是一个乳制品的公关经理,315曝光你们产品有问题,设计一个24小时公关方案,以挽回公司损失。(这个题目我在之前笔试看到过,是宝洁SKII事件,写新闻发言稿,所以大家可以注意一下公关知识)

第四道题,腾讯给你5000元公益资金帮扶特殊群体,设计一个校园公益项目方案。

2013-10-13北京站产品笔试

附加题一:是用互联网思维改造传统行业,写一个策划方案什么的,举了嘀嘀打车的例子。

附加题二是:题目背景是国务院批复了一个文件《前海深港现代服务业合作区总体发展XXX》,然后问你采取何种措施吸引优秀人才的加入,以便支撑入驻企业的`发展

题目

刚下班的小明接到了远在江西吉安的老爸的电话,他这个月刚学会用电脑,今天终于托人帮忙装了台新电脑,并办好了上网,他问小明现在用电脑和上网都能玩些啥,

假如你是小明,需要在最短的时间内满足老爸的需求,你会怎么做?(腾讯-2013)

题目分析

本题考查点:需求管理、产品设计。

本题旨在考查应聘者对于需求的理解与把握,以及在需求分析的基础上处理需求,服务用户的能力。同时,回答的时候要尽量落地,例如题目中指出“远在江西吉安”,所以你无法面对面指导老爸使用电脑,如果你仅仅只是用电话去告诉老爸如何使用电脑,这对于老爸而言是不好的体验。

2.回答策略

本题的解决思路如下:

构建爸爸(用户)的用户画像。

结合场景做需求分析。

产品设计(本题中专指装机策略)。

产品落地。

3.详细解答

(1)爸爸的用户画像

46岁中年男子。

正值壮年,辛勤工作,在专业领域是专家,但对于新兴科技却不甚了解。

商务人士,追求办公效率,会积累行业资讯,工作沟通主要通过邮件与电话。

闲时的消遣方式是看电影、看书、古玩及其他。偶尔会在网上购物。

需求分析及具体的装机策略以用户画像为依托。每位答题者可以列出自己心中不同的用户画像,言之有理即可。

(2)需求管理

1. 结合场景做需求分析

在明确了目标用户画像后,我们便可针对目标用户特点有的放矢,对目标用户进行需求挖掘。需求挖掘的方式有问卷、访谈、焦点小组等。

在本题中需求有四个来源:调研用户、竞品参考、数据分析和自己拍脑袋。

直接和爸爸谈:比较喜欢做什么?为什么?(很明显,爸爸可能会遗漏、忘记很多自己的需求)

多问几个中年人:其他中年人还有什么需求?有什么是爸爸忘了的?

查看网上资料:有没有相关的研究资料,比如“老年人上网产品大全”之类的。

自己拍脑袋:什么类型的产品,适合老人家呢?

篇4:笔试题技术类

笔试题(技术类)

1.人工智能与模式识别的研究已有多年,但似乎公认的观点认为它仍然非常困难,试对你所熟悉的任一方向(如指纹识别、人像识别、语音识别、字符识别、自然语言理解等)的发展状况进行描述。并设想如果你将从事该方向的研究,你打算如何着手,以建立有效的识别理论和方法;或者你认为现在的理论和方法有何缺陷,有什么办法来进行改进?(500字以内即可,不要太长)

2.简述下面任一主题的`主要理论框架或主要观点(500字以内即可,不要太长)

(1)David Marr的视觉计算理论框架

(2)格式塔(Gestalt)心理学派的主要观点

(3)Bayes决策理论

(4)人工神经网络中的BP网络、自组织网络和联想记忆网络的主要内容

(5)基因算法

(6)小波分析

(7)目前流行的有损静态图像压缩方法

3.设想你要设计一个算法,检测给定的图像中是否有矩形结构,

所要检测的矩形可能有多种形态,试提出你的算法框架。要求你的算法至少能检测出样本中的矩形,而拒绝其他的任意非矩形结构。矩形的大小、位置和方向未知,要求你的算法能确定这些参数。

如果你认为这个问题太难而不能解决,请说明理由。

篇5:腾讯校招之技术类研发笔试题

腾讯校招之技术类研发笔试题

一、不定项选择题(共25题,每题4分,共100分,多选、少选、错选均不得分)

1、如果MyClass为一个类,执行”MyClass a[5], *b[6]”语言会自动调用该类构造函数的次数是( )

A. 2 B.5 C. 4 D.9

2、下面程序的运行结果是( )

#include using namespace std; class Base { int x; public: Base(int b):x(b) {} virtual void display { cout<<< p=“”>} }; class Derived:public Base { int y; public: Derived(int d):Base(d),y(d) {} void display() { cout<<< p=“”>} }; int main() { Base b(2); Derived d(3); b.display(); d.display(); Base *p=&d; p->display(); system(“pause”); return 0; }<<

A. 2 2 3 B.3 2 2 C. 2 3 3 D.2 3 2

3、在C++语言中,下面描述中,正确的是 ( )

A. 一个基类的声明中有纯虚函数,该基类派生类一定不再是抽象类

B. 函数类型不能作为重载函数的调用的依据

C. 静态数据成员不是所有对象所公有的

D. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方

4、有如下程序:执行后的输出结果应该是 ( )

#include using namespace std; class Base { public: ~Base() { cout<<“BASE”; } ; }; class DERIVED:public BASE { public: ~DERIVED() { cout<<“DERIVED”; } ; }; int main() { DERIVED x; return 0; }

A. BASE B. DERIVED

C. BASEDERIVED D. DERIVEDBASE

5、典型的路由选择方式有两种,静态路由和动态路由,以下描述正确的是( )

A. 当动态路由与静态路由发证冲突时,以静态路由为准

B. 当动态路由与静态路由发证冲突时,以动态路由为准

C. 静态路由适用于网络规模大、网络拓扑复杂的网络

D. 动态路由适用于网络规模大、网络拓扑复杂的网络

6、下列哪些属于分布式文件系统?( )

A. HBase

B. Spark

C. MapReduce

D.KFS

E. Hive

7、下面程序的输出结果是( )

#include using namespace std; int i=0; int fun(int n) { static int a=2; a++; return a*n; } int main() { int k=5; { int i=2; k+=fun(i); } k+=fun(i); cout<

A. 13 B. 14 C.15 D. 16

8、在Java中,以下那些数据结构可以以长亮的时间复杂度0(1)添加元素( )

A. HashMap B.ArrayList C. TreeMap D. LinkedList

9、若一棵二叉树的前序遍历为a, e, b, d, c,后序遍历为b, c, d, e, a,则根节点的孩子节点为( )

A. 只有e B. 有e、b C. 有e、c D. 无法确定

10、一面墙,单独工作时,A花18小时砌好,B花24小时,C花30小时,现A, B, C的顺序轮流砌,每人工作1小时换班,完工时,B总共干了多少小时?( )

A. 8小时 B. 7小时44分 C.7小时 D. 6小时48分

11、32位机器上定义如下结构体:

struct xx { long long _x1; char _x2; int _x3; char _x4[2]; static int _x5; }; int xx::_x5;

请问sizeof(xx)的大小是( )

A.19 B.20 C.15 D. 24

12、储蓄盒中2分和5分的硬币的个数相等,2分和5分的钱数也相等,问:可能是多少元?( )

A.2.1元 B.2.4元 C.2.8元 D. 3.0元

13、入栈序列是:a1,a3,a5,a2,a6出栈序列是:a5,a4,a2,a0,a3,a1,则栈的容量最小是多少( )

A. 2 B.3 C. 4 D. 5

14、TCP报文首部信息中与关闭连接有关的是( )

A.URG B.ACK C. SYN D.FIN

15、int foo(int n) { if (n<=1) return 1; return n*foo(n-1); }

上面算法时间复杂度是( )

A. 0(log2n) B. 0(n) C.0(nlog2n) D. 0(n2)

16、turbo c环境下,下面程序运行的结果是( )

#include int main() { printf(“\\n”); int a[5]= {1,2,3,4,5}; int *p,**k; p=a; k=&p; printf(“%d”,*(p++)); printf(“%d”,**k); return 0; }

A.11 B.21 C.22 D. 12

17、现有一个包含m个节点的三叉树,即每个节点都有三个指向孩子结点的指针,请问:在这3m个指针中有( )个空指针,

A. 2m B. 2m-1 C. 2m+1 D.3m

18、在下面的描述中,哪些不属于数据库安全性的措施( )

A. 普通ZIP压缩存

B. 关联加密存储

C. 数据分段

D. 授权限制

E. 数据多机备份

19、以下哪些工具可以写实源机器与目标机器之间的路由数量,以及各路由之间的RTT( )

A. Traceroute B. Ping C. FTP D. Telnet

20、流量劫持是网络安全中常见的安全威胁,下列哪些情况可能会造成流量劫持?( )

A. MAC地址欺骗

B. DNS劫持

C. 伪造的DHCP服务器

D. 使用https协议

21、以下哪些可以工作于数据链路层?( )

A. tcpdump B. 集线器 C.交换机 D. 路由器

22、UDP报头中没有下面那些信息?( )

A.目的地址 B.窗口大小 C.序列号 D.检验和

23、以下方法那些可以让一个元素浮动起来( )

A.mutable B.absolute C.fixed D. static

24、在竞选条件(race condition)的情况下,两线程执行如下代码段,其中count为共享变量,线程1执行代码段A,线程2指向代码段B,那么变量count的'值可能为( )

int count =10;

代码段A: Thread_1() { //do something count++; }

代码段B: Thread_2() { //do something count--; }

A.9 B.10 C.11 D. 12

25、加入john看到摆钟的时间是17:32分,请问下这时,时针跟分针的最小夹角是多少度?( )

A.25度 B.26度 C.28度 D. 32度

二、附加题(共3题,每题20分,不计入总分)

1、请设计一个函数可以把10进制的正整数转换为4位定长的36进制字符串。

36进制的规则为:“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”;

举例说明:

1=“0001”

10=“000A”

20=“000K”

35=“000Z”

36=“0010”

100=“002S”

2000=“01JK”

2、在MMO游戏中,服务器采用Linux操作系统,网络通信与游戏逻辑处理进程一般是分离的。

例如:GameSvr进程处理游戏逻辑,TCPSvr进程处理网络通信。Linux操作系统提供了很多机制可以实现GameSvr和TCPSvr进程之间的数据通信。请您列出两种你认为最好的机制来,并为主(最好)次(次佳)描述他们实现的框架,优缺点对比和应用中的注意事项。

3、NSTimer会retain目标对象,可能会造成循环引用,请在NSTimer的基础上封装一个不retain目标对象的Timer,要求至少实现下面两个方法,并介绍设计思路。

@interface NSTimer : NSObject

+(NSTimer*)scheduledTimerWithTimeInterval : (NSTimerInterval)ti target: (id)aTarget

selector:(SEL)aSelector userInfo: (id)userinfo repeats: (BOOL)yesOrNo;

-(void)invalidate;

//other methods…

篇6:关于腾讯笔试题

部分IT公司笔试算法题

1、将一整数逆序后放入一数组中(要求递归实现)

void convert(int *result, int n) {

if(n>=10)

convert(result+1, n/10);

*result = n%10;

}

int main(int argc, char* argv[]) {

int n = 123456789, result[20] = { };

convert(result, n);

printf(“%d:”, n);

for (int i = 0; i < 9; i++)

printf(“%d”, result);

}

2、求高于平均分的学生学号及成绩(学号和成绩人工输入)

double find(int total, int n) {

int number, score, average;

scanf(“%d”, &number);

if(number != 0) {

scanf(“%d”, &score);

average = find(total+score, n+1);

if(score >= average)

printf(“%d:%d ”, number, score);

return average;

} else {

printf(“Average=%d ”, total/n);

return total/n;

}

}

int main(int argc, char* argv[]) {

find(0, 0);

}

3、递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)

int find(char *str, int n) {

if(n<=1) return 1;

else if(str[0]==str[n-1]) return find(str+1, n-2);

else return 0;

}

int main(int argc, char* argv[]) {

char *str = “abcdedcba”;

printf(“%s: %s ”, str, find(str, strlen(str)) ? “Yes” : “No”);

}

4、组合问题(从M个不同字符中任取N个字符的所有组合)

void find(char *source, char *result, int n) {

if(n==1) {

while(*source)

printf(“%s%c ”, result, *source++);

} else {

int i, j;

for(i=0; source != 0; i++);

for(j=0; result[j] != 0; j++);

for(; i>=n; i--) {

result[j] = *source++;

result[j+1] = ;

find(source, result, n-1);

}

}

}

int main(int argc, char* argv[]) {

int const n = 3;

char *source = “ABCDE”, result[n + 1] = { 0 };

if (n >0 && strlen(source) >0 && n< = strlen(source))

find(source, result, 3);

}

5、分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)

void prim(int m, int n) {

if(m>n) {

while(m%n != 0) n++;

m /= n;

prim(m, n);

printf(“%d*”, n);

}

}

int main(int argc, char* argv[]) {

int n = 435234;

printf(“%d=”, n);

prim(n, 2);

}

6、寻找迷宫的一条出路,o:通路; X:障碍。(大家经常谈到的一个小算法题)

#define MAX_SIZE 8

int H[4] = {0, 1, 0, -1};

int V[4] = { -1, 0, 1, 0 };

char Maze[MAX_SIZE][MAX_SIZE] = { { X, X, X, X, X, X, X, X }, {

o, o, o, o, o, X, X, X }, { X, o, X, X, o,

o, o, X }, { X, o, X, X, o, X, X, o }, { X,

o, X, X, X, X, X, X }, { X, o, X, X, o, o,

o, X }, { X, o, o, o, o, X, o, o }, { X, X,

X, X, X, X, X, X } };

void FindPath(int X, int Y) {

if (X == MAX_SIZE || Y == MAX_SIZE) {

for (int i = 0; i < MAX_SIZE; i++)

for (int j = 0; j < MAX_SIZE; j++)

printf(“%c%c”, Maze[j], j < MAX_SIZE - 1 ? : );

} else

for (int k = 0; k < 4; k++)

if (X >= 0 && Y >= 0 && Y < MAX_SIZE&& X < MAX_SIZE && o

== Maze[X][Y]) {

Maze[X][Y] = ;

FindPath(X + V[k], Y + H[k]);

Maze[X][Y] = o;

}

}

int main(int argc, char* argv[]) {

FindPath(1, 0);

}

7、随机分配座位,共50个学生,使学号相邻的同学座位不能相邻(早些时候用C

#写的,没有用C改写)。

static void Main(string[] args)

{

int Tmp = 0, Count = 50;

int[] Seats = new int[Count];

bool[] Students = new bool[Count];

System.Random RandStudent=new System.Random();

Students[Seats[0]=RandStudent.Next(0,Count)]=true;

for(int i = 1; i < Count; ) {

Tmp=(int)RandStudent.Next(0,Count);

if((!Students[Tmp])&&(Seats[i-1]-Tmp!=1) && (Seats[i-1] - Tmp) != -1) {

Seats[i++] = Tmp;

Students[Tmp] = true;

}

}

foreach(int Student in Seats)

System.Console.Write(Student + “ ”);

System.Console.Read();

}

8、求网格中的黑点分布。现有6*7的网格,在某些格子中有黑点,已知各行与各列中有黑点的点数之和,请在这张网格中画出黑点的位置。(这是一网友提出的题目,说是他笔试时遇到算法题)

#define ROWS 6

#define COLS 7

int iPointsR[ROWS] = {2, 0, 4, 3, 4, 0}; // 各行黑点数和的情况

int iPointsC[COLS] = { 4, 1, 2, 2, 1, 2, 1 }; // 各列黑点数和的情况

int iCount, iFound;

int iSumR[ROWS], iSumC[COLS], Grid[ROWS][COLS];

int Set(int iRowNo) {

if (iRowNo == ROWS) {

for (int iColNo = 0; iColNo < COLS && iSumC[iColNo] == iPointsC[iColNo]; iColNo++)

if (iColNo == COLS - 1) {

printf(“ No.%d: ”, ++iCount);

for (int i = 0; i < ROWS; i++)

for (int j = 0; j < COLS; j++)

printf(“%d%c”, Grid[j], (j + 1) % COLS ? : );

iFound = 1; // iFound = 1,有解

}

} else {

for (int iColNo = 0; iColNo < COLS; iColNo++) {

if (iPointsR[iRowNo] == 0) {

Set(iRowNo + 1);

} else if (Grid[iRowNo][iColNo] == 0) {

Grid[iRowNo][iColNo] = 1;

iSumR[iRowNo]++;

iSumC[iColNo]++;

if (iSumR[iRowNo] < iPointsR[iRowNo] && iSumC[iColNo]

<= iPointsC[iColNo])

Set(iRowNo);

else if (iSumR[iRowNo] == iPointsR[iRowNo] && iRowNo < ROWS)

Set(iRowNo + 1);

Grid[iRowNo][iColNo] = 0;

iSumR[iRowNo]--;

iSumC[iColNo]--;

}

}

}

return iFound; // 用于判断是否有解

}

int main(int argc, char* argv[]) {

if (!Set(0))

printf(“Failure!”);

}

9、有4种面值的邮票很多枚,这4种邮票面值分别1, 4, 12, 21,现从多张中最多任取5张进行组合,求取出这些邮票的最大连续组合值。(据说是华为校园招聘笔试题)

#define N 5

#define M 5

int k, Found, Flag[N];

int Stamp[M] = { 0, 1, 4, 12, 21 };

// 在剩余张数n中组合出面值和Value

int Combine(int n, int Value) {

if (n >= 0 && Value == 0) {

Found = 1;

int Sum = 0;

for (int i = 0; i < N && Flag != 0; i++) {

Sum += Stamp[Flag];

printf(“%d ”, Stamp[Flag]);

}

printf(“ Sum=%d ”, Sum);

} else

for (int i = 1; i < M && !Found && n >0; i++)

if (Value - Stamp >= 0) {

Flag[k++] = i;

Combine(n - 1, Value - Stamp);

Flag[--k] = 0;

}

return Found;

}

int main(int argc, char* argv[]) {

for (int i = 1; Combine(N, i); i++, Found = 0)

;

}

10、大整数数相乘的问题。(这是在一考研班上遇到的算法题)

void Multiple(char A[], char B[], char C[]) {

int TMP, In=0, LenA=-1, LenB=-1;

while(A[++LenA] != );

while(B[++LenB] != );

int Index, Start = LenA + LenB - 1;

for(int i=LenB-1; i>=0; i--) {

Index = Start--;

if(B != 0) {

for(int In=0, j=LenA-1; j>=0; j--) {

TMP = (C[Index]-0) + (A[j]-0) * (B - 0) + In;

C[Index--] = TMP % 10 + 0;

In = TMP / 10;

}

C[Index] = In + 0;

}

}

}

int main(int argc, char* argv[]) {

char A[] = “21839244444444448880088888889”;

char B[] = “38888888888899999999999999988”;

char C[sizeof(A) + sizeof(B) - 1];

for (int k = 0; k < sizeof(C); k++)

C[k] = 0;

C[sizeof(C) - 1] = ;

Multiple(A, B, C);

for (int i = 0; C != ; i++)

printf(“%c”, C);

}

11、求最大连续递增数字串(如“ads3sl456789DF3456ld345AA”中的“456789”)

int GetSubString(char *strSource, char *strResult) {

int iTmp=0, iHead=0, iMax=0;

for(int Index=0, iLen=0; strSource[Index]; Index++) {

if(strSource[Index] >= 0 && strSource[Index] <= 9 &&

strSource[Index-1]>0 && strSource[Index] == strSource[Index-1]+

[关于腾讯笔试题]

篇7:腾讯笔试题

腾讯笔试题

腾讯是国内数一数二的IT企业了,那么每年想要进入腾讯公司的应聘者也是络绎不绝。那么一个好的笔试答卷绝对是脱颖而出的亮点。现在就来看看腾讯笔试题都有哪些内容吧。

腾讯笔试题:const的含义及实现机制

const的含义及实现机制,比如:const int i,是怎么做到i只可读的?

const用来说明所定义的变量是只读的。

这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用。

腾讯笔试题:买200返100优惠券,实际上折扣是多少?

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

由于优惠券可以代替现金,所以可以使用200元优惠券买东西,然后还可以获得100元的优惠券。

假设开始时花了x元,那么可以买到 x + x/2 + x/4 + ...的东西。所以实际上折扣是50%.(当然,大部分时候很难一直兑换下去,所以50%是折扣的上限)

如果使用优惠券买东西不能获得新的优惠券,那么

总过花去了200元,可以买到200+100元的商品,所以实际折扣为 200/300 = 67%.

腾讯笔试题:tcp三次握手的过程,accept发生在三次握手哪个阶段?

accept发生在三次握手之后。

第一次握手:客户端发送syn包(syn=j)到服务器。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包(ask=k)。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)。

三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用accept函数获得此连接。

腾讯笔试题:用UDP协议通讯时怎样得知目标机是否获得了数据包

用UDP协议通讯时怎样得知目标机是否获得了数据包?

可以在每个数据包中插入一个唯一的ID,比如timestamp或者递增的int。

发送方在发送数据时将此ID和发送时间记录在本地。

接收方在收到数据后将ID再发给发送方作为回应。

发送方如果收到回应,则知道接收方已经收到相应的数据包;如果在指定时间内没有收到回应,则数据包可能丢失,需要重复上面的过程重新发送一次,直到确定对方收到。

腾讯笔试题:统计论坛在线人数分布

求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。

一天总共有 3600*24 = 86400秒。

定义一个长度为86400的整数数组int delta[86400],每个整数对应这一秒的人数变化值,可能为正也可能为负。开始时将数组元素都初始化为0。

然后依次读入每个用户的登录时间和退出时间,将与登录时间对应的整数值加1,将与退出时间对应的整数值减1。

这样处理一遍后数组中存储了每秒中的人数变化情况。

定义另外一个长度为86400的整数数组int online_num[86400],每个整数对应这一秒的论坛在线人数。

假设一天开始时论坛在线人数为0,则第1秒的人数online_num[0] = delta[0]。第n+1秒的`人数online_num[n] = online_num[n-1] + delta[n]。

这样我们就获得了一天中任意时间的在线人数。

腾讯笔试题:从10G个数中找到中数

在一个文件中有 10G 个整数,乱序排列,要求找出中位数,

内存限制为 2G。

不妨假设10G个整数是64bit的。

2G内存可以存放256M个64bit整数。

我们可以将64bit的整数空间平均分成256M个取值范围,用2G的内存对每个取值范围内出现整数个数进行统计。这样遍历一边10G整数后,我们便知道中数在那个范围内出现,以及这个范围内总共出现了多少个整数。

如果中数所在范围出现的整数比较少,我们就可以对这个范围内的整数进行排序,找到中数。如果这个范围内出现的整数比较多,我们还可以采用同样的方法将此范围再次分成多个更小的范围(256M=2^28,所以最多需要3次就可以将此范围缩小到1,也就找到了中数)。

腾讯笔试题:两个整数集合A和B,求其交集

两个整数集合A和B,求其交集。

1. 读取整数集合A中的整数,将读到的整数插入到map中,并将对应的值设为1。

2. 读取整数集合B中的整数,如果该整数在map中并且值为1,则将此数加入到交集当中,并将在map中的对应值改为2。

通过更改map中的值,避免了将同样的值输出两次。

腾讯笔试题:找出1到10w中没有出现的两个数字

有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数?

申请10w个bit的空间,每个bit代表一个数字是否出现过。

开始时将这10w个bit都初始化为0,表示所有数字都没有出现过。

然后依次读入已经打乱循序的数字,并将对应的bit设为1。

当处理完所有数字后,根据为0的bit得出没有出现的数字。

首先计算1到10w的和,平方和。

然后计算给定数字的和,平方和。

两次的到的数字相减,可以得到这两个数字的和,平方和。

所以我们有

x + y = n

x^2 + y^2 = m

解方程可以得到x和y的值。

腾讯笔试题:需要多少只小白鼠才能在24小时内找到毒药

有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?

最容易想到的就是用1000只小白鼠,每只喝一瓶。但显然这不是最好答案。

既然每只小白鼠喝一瓶不是最好答案,那就应该每只小白鼠喝多瓶。那每只应该喝多少瓶呢?

首先让我们换种问法,如果有x只小白鼠,那么24小时内可以从多少瓶水中找出那瓶有毒的?

由于每只小白鼠都只有死或者活这两种结果,所以x只小白鼠最大可以表示2^x种结果。如果让每种结果都对应到某瓶水有毒,那么也就可以从2^x瓶水中找到有毒的那瓶水。那如何来实现这种对应关系呢?

第一只小白鼠喝第1到2^(x-1)瓶,第二只小白鼠喝第1到第2^(x-2)和第2^(x-1)+1到第2^(x-1) + 2^(x-2)瓶....以此类推。

回到此题,总过1000瓶水,所以需要最少10只小白鼠。

腾讯笔试题:根据上排的数填写下排的数,并满足要求。

根据上排给出十个数,在其下排填出对应的十个数, 要求下排每个数都是上排对应位置的数在下排出现的次数。上排的数:0,1,2,3,4,5,6,7,8,9。

腾讯笔试题:判断数字是否出现在40亿个数中?

给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?

答案:unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。

篇8:腾讯笔试题参考

腾讯笔试题参考

腾讯笔试题(一)

腾讯的流程是一笔和四面,前三次面试都是技术面,hr面基本不刷人。笔试成绩决定面试顺序。技术面可能要写代码,做智力题目。

主要是c/c++、数据结构、操作系统等方面的基础知识。好像有sizeof、树等选择题。填空题是补充完整程序。附加题有写算法的'、编程的、数据库sql语句查询的。还有一张开放性问题。

1.请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句。

int const shift = sizeof(int)*8-1;

unsigned mask = (0x1<

if ( (a-b)&mask )

max_num = b;

else

max_num = a;

#define Max(a,b) ( a/b)?a:b

2.如何输出源文件的标题和目前执行行的行数

int line= __LINE__;

char *file = __FILE__;

cout<<“file name is ”<<(file)<<“,line is ”<

3.两个数相乘,小数点后位数没有限制,请写一个高精度算法与大数相乘原理一样,只是调整小数点位置,即有效小数个数

算法提示:

输入 string a, string b;计算string c=a*b; 返回 c;

1, 纪录小数点在a,b中的位置l1,l2,则需要小数点后移动位置数为l=length(a)+length(b)-l1-l2-2;

2, 去掉a,b中的小数点,

(a,b小数点后移,使a,b变为整数)

3, 计算c=a*b;

(要么用java的BigInterger搞, 要么自己用C++写高精度数乘法,超过百万位,用FFT,我就不细说,这都预先写过就别做了

)

4, 输出c

(注意在输出倒数第l个数时,输出一个小数点,

若是输出的数少于l个,就补0)

4.写一个病毒

while (1)

{

int *p = new int[10000000];

}

上面这个不对,没有传染性,寄生性……

5.不使用额外空间,将 A,B两链表的元素交叉归并将树序列化转存在数组或 链表中

struct st{

int i;

short s;

char c;

};

sizeof(struct st);

8

char * p1;

void * p2;

int p3;

char p4[10];

sizeof(p1...p4) =?

4,4,4,10

5.让你在100000000个浮点数中找出最大的10000个,要求时间复杂度优。

最小堆

二分查找

快速排序

双向链表的删除结点

6、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?

基础题有15道选择和2道读程序填空。选择题的确是很基础,主要考数据结构,还有一些体系结构、数据库的题目;读程序题跟我们平时考试的差不多,一道是两个升序链合并成一个升序链+递归,一道是四色着色方案附加题有几道没有看清楚。有一道是unix防僵死算法,最后一道是sql查询,还有几道忘了,其中一个是很长的程序题。

篇9:腾讯非技术类笔试题概要

笔试前最好看看以前的题!这次前两个大题就是第一批的原题!还有带计算机器,快速做题!

第一部分(15题,好像共45分)

1、看图计算 5题 仔细就行,网上也有很多图形题。

2、分析表格数据 5 题

3、智力计算题,5 题(跟公司的日常业务处理联系紧密)

记得一道大概是:

公司有100个员工,年终发奖品,按号码发:号码是2的倍数的领两份,3的倍数的领三份,既是2的倍数又是3的倍数的可以重复领取,问总共要准备多少份奖品?

第二部分 阅读理解题

语文题目,不难,但要快速阅读!

[腾讯非技术类笔试题概要]

腾讯软件开发类笔试题

行政类笔试题

融资类笔试题

中行税法类笔试题

笔试题

笔试题问答题

net笔试题

埃森哲相关笔试题

华为笔试题

博时基金笔试题

腾讯技术类模拟笔试题(集锦9篇)

欢迎下载DOC格式的腾讯技术类模拟笔试题,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档