2020腾讯实习笔试真题
2020腾讯实习笔试题
1. 关于二叉树,下面说法准确的是
A. 对于N个节点的二叉树,其高度为nlog2n;
B. 一个具有1025个节点的二叉树,其高度范围在11~1025之间
C. 二叉树的先序遍历是EFHIGJK,中序遍历为HFIEJKG,该二叉树的右子树的根为G
D. 二叉树中至少有一个节点的度为2
这个题目我的思路是BC,
A二叉树不一定是满二叉树等,高度应该是范围。
D选项其中如果只有一个树根的二叉树应该是反例。
2. 假设函数f1的时间复杂度O(n),那么f1*f1的时间复杂度为
A. O(n)
B. O(n*n)
C. O(n*log(n))
D. 以上都不对
这个题目我的思路是A,讨论后答案应该是D,因为f1的返回值不确定,如果是个数组当然复杂度就不同了。
3. 对下列四种排序方法,在排序中关键字比较次数与记录初始化顺序无关的是
A. 直接排序
B. 二分法插入
C. 快速排序
D. 归并排序
这个答案据说是BD,我的答案是D,因为一时反应不过来什么是二分法插入。
能够百度一下二分法插入,据说是考研的原题。
4. 已知一段文本有1382个字符,使用了1382个字节存储,这段文本全部是由a、b、c、d、e字符组成,a 354次,b 483次,c 227
次,d 96次,e 222次,对这5个字符使用哈夫曼编码。
则以下说法准确的是?
A. 使用哈夫曼编码后,使用编码值来存储这段文本将花费最少的存储空间、
B. 使用哈夫曼编码后,a b c d e 这5个字符对应的编码值是确定的
C. 使用哈夫曼编码后,a b c d e 这5个字符对应的编码值能够有多套,但每个字符的编码位数是确定的
D. b这个字符的编码位数最短,d这个字符的哈夫曼编码位数应该最长
5. 判断单链表有没有环的算法中,至少需要几个指针
A. 1
B. 2
C. 3
D. 4
之前遇到过的一个算法题目,利用快慢的两个人在环形的跑道上跑必定会再次相遇的原理。
6. 在编译过程中,产生Parse tree的过程是
A. 语法分析
B. 语义分析阶段
C. 词法分析
D. 目标代码生成阶段
编译原理的基本知识。
7. 阅读下面代码,程序会打印出来的值是
#include
Void f(char **p){
*p += 2;
Void main {
Char *a = { 123 , abc , 456 },**p;
p = a;
f(p);
printf( %s\r\n ,**p);
A. 123
B. abc
C. 456
D. 3
指针的应用,a是二维数组的首位指针,首先取值之后变成第一行的首指针,+2移动至3的位置,输出为3。
8. Char p1 = Tencent , void p2 = malloc((10)在32位机器上sizeof(p1)和sizeof(p2)对应的值是
A. 8:
B. 4:1
C. 8:4
D. 4:4
数组的长度和指针的长度,数组只有在传参的时候才会退化为指针。
sizeof的时候针对指针实行计算。
9. 现在有以下两个函数,调用test的结果是
Char* getMem(void) { Char * p = hello world ;
P[5] = 0x0;
Return p;
Voidtest(void) { Char *s = 0x0;
s = getMem;
Printf(s);
A. hello
B. 无输出
C. Hello0world
D. 不确定
局部变量在函数返回的时候会删除掉,指向内容就不确定了。
答案应该是D。