最近互联网笔试较频繁,也跟着师兄一起做了一些公司的笔试题,先将题记录下来吧,答案慢慢补。希望对自己明年找工作有帮助!首先上腾讯的笔试题,腾讯是我的dream offer啊啊啊啊啊啊啊!
一、不定项选择题
共30题,共60分,请认真阅读每道题目,并按题目要求进行作答
1. 下面关于DNS说法正确的是()
A、DNS的作用是域名和IP地址的相互映射
B、DNS协议运行在UDP协议之上
C、DNS协议端口号为53
D、DNS的默认缓存时间为1小时
解析:
A. DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
BC.DNS协议运行在UDP协议之上,使用端口号53。
D. 浏览器:chrome对每个域名会默认缓存60s,IE将DNS缓存30min,Firefox对DNS缓存功能,但是默认缓存时间只有1分钟,safari约为10s。
windows DNS缓存的默认值是MaxCacheTTL,它的默认值是86400s,也就是一天。
浏览器DNS缓存的时间跟ttl值无关,每种浏览器都使用一个固定值。
答案:ABC
2. 文件系统管理的最小磁盘空间单位是()
A、扇区
B、页面
C、簇
D、文件
解析:
从应用程序包括用户界面的角度来看,存取信息的最小单位是Byte(字节);
从磁盘的物理结构来看存取信息的最小单位是扇区,一个扇区是512字节;
从操作系统对硬盘的存取管理来看,存取信息的最小单位是簇,簇是一个逻辑概念,一个簇可以是2、4、8、16、32或64个连续的扇区。一个簇只能被一个文件占用,哪怕是只有1个字节的文件,在磁盘上存储时也要占用一个簇,这个簇里剩下的扇区是无用的。所以,簇可以理解为磁盘存取信息的最小单位。
答案:D
4. 以下代码打印的结果是(假设运行在64位计算机上):
struct st_t
{
int status;
short *pdata;
char errstr[32];
};
st_t st[16];
char *p=(char *)( str[2].errstr + 32 );
printf("%d", (p-(char *)(str)));
A、32
B、120
C、114
D、144
正确答案:D
注意敲到编译器运行的时候加上main函数,struct st_t st[16]定义的时候要加上struct
5. 假设就绪队列中有10个线程,系统将时间片设置为200ms,CPU进行线程切换要花费10ms,则系统开销所占的比例约为:
A、0.01
B、0.05
C、0.1
D、0.2
6.
int main(void)
{
char *p[] = {"TENCENT","CAMPUS","RECRUITING"};
char **pp[] = { p+2, p+1, p };
char ***ppp = pp;
printf("%s", **++ppp);
printf("%s", *++*++ppp);
return 0;
}
A、CAMPUS RECRUITING
B、RECRUITING CAMPUS
C、CAMPUS CAMPUS
D、RECRUITING RECRUITING
正确选项:C
7. IP地址为140.123.0.0的地址是B类地址,若要切割为10个子网,而且都要连接上Internet,请问子网掩码应设为()
A、255.0.0.0
B、255.255.0.0
C、255.255.128.0
D、255.255.240.0
8. 设有2条路由21.1.193.0/24和21.1.194.0/24,如果进行路由汇聚,汇聚这两条路由的地址是()
A、21.1.200.0/22
B、21.1.192.0/23
C、21.1.192.0/21
D、21.1.224.0/20
9. 以下哪些属于线性结构?
A、队列
B、栈
C、线性表
D、树
E、图
10. 二叉树的节点的对称序列是ABCDEFG,后序序列是BDCAFGE,则该二叉树的前序序列是:
A、EGFACDB
B、EACBDGF
C、EAGCFBD
D、EGACDFB
11. 在Linux上,对于多进程,子进程继承了父进程的下列哪些?
A、进程地址空间
B、共享内存
C、信号掩码
D、已打开的文件描述符
E、以上都不是
12. 在c++语言中,一下说法正确的是:
A、多态是通过虚表实现的
B、构造函数可以声明为虚函数
C、析构函数不可以声明为虚函数
D、抽象类中至少包含一个纯虚函数
13.
class Base
{
public:
virtual ~Base() { std::out << "Base Destructor" << std::endl; }
}
class Derived : public Base
{
public:
~Derived() { std::out << "Derived Destructor " << std::endl; }
}
Base* p=new Derived();
delete p;
在delete p时,控制台会输出什么内容
A、Base Destructor
B、Derived Destructor
C、Base Destructor
Derived Destructor
D、Derived Destructor
Base Destructor
15. 以下关于栈的说法错误的是:
A、在栈空的情况下,一定不能作出栈操作,否则产生溢出
B、栈一定是顺序存储的线性结构
C、空栈是所有元素都为0的栈
D、一个栈的输入序列为:A, B, C, D。可以得到输出序列:C, A, B, D
16. 下列说法错误的是?
A、struct声明的类型是值类型
B、值类型是在堆上分配的
C、值类型不会被垃圾回收
D、值类型不需要指针来引用
E、引用类型在堆上分配
F、值类型在栈上分配
17.
var foo = "Hello";
(function(){
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);
其中alert两次输出结果为?
A、hello world报错
B、hello world hello world
C、hello world hello
18. 针对二分查找算法,假设一个有序数组有136个元素,那么要查找到第10个元素,需要比较的元素为:
A、68,34,17,9,13,11,10
B、68,34,17,8,12,10
C、69,35,18,10
D、68,34,18,9,13,11,10
19. 64位机上,一个结构体有三个成员,分别是char、int、short类型,三个成员位于结构体中不同位置时整个结构体的大小可能是下面哪些值?
A、12
B、7
C、8
D、16
20. 以下代码的运行情况:?
int f(int a, int b, int c)
{
return 0;
}
int main()
{
return f(printf("a"), printf("b"), printf("c"));
}
A、编译不过
B、运行错误
C、abc
D、cba
21. 那种数据结构用于执行递归调用:
A、数组
B、链表
C、堆栈
D、二叉树
22. 若磁头的当前位置在第100磁道,现在有一磁盘读写请求序列如下:23,376,205,132,19,61,190,398,29,4,18,40,若采用最短寻道时间优先算法,则平均寻道长度是多少?
A、133
B、58.3
C、57.7
D、70.9
23. 1. 下列程序数据结构是多少(大A的ascii码是65)?
#include<stdio.h>
enum etest{
eparam1,
eparam2,
eparam3 = 10,
eparam4,
eparam5 = 'a',
eparam6
}epr;
int main()
{
printf("%d,%d", eparam4, eparam6);
return 0;
}
A、3,98
B、11,34
C、11,98
D、3,34
24. 寝室有6个同学打dota,分为对立的两方,一方是天灾军团,一方是近*团。现请你设置赛程以及每场的对阵(每方最少1人,最多5人),请问至少地进行多少场比赛,才能使得赛程结束后每位同学都和其他同学做过对手?
A、2
B、3
C、4
D、5
25. 具有3个节点的二叉树有几种形态?
A、3
B、4
C、5
D、6
26. 请选择下列程序的输出结果():
#include<stdio.h>
int main()
{
const int N=10;
const int M=2;
int* a=new int[N];
for(int i=0;i<N;++i)
a[i]=(0==i%2)?(i+2):(i+0);
int (*b)[N/M] = (int (*)[N/M])a;
for(int i=0; i<M; ++i)
for(int j=0; j<N/M; ++j)
printf("%d", b[i][j]);
return 0;
}
A、21436587109
B、224466881010
C、03254769811
D、21436687101
28. 从一幅标准扑克牌中抽牌,抽到黑色牌就继续抽,直至抽到红色牌,则停止,按照概率算,平均下来每次能抽到多少张牌?(也就是三国杀中甄姬的洛神技能,得到牌数的期望值)
A、1
B、1.2
C、0.8
D、0.9
29. C语言,设有宏定义:
#define A 4+5
#define B A*A
则表达式B*B的值为:
A、81
B、69
C、6561
D、33
30. 假设有如下这样一个类:
class X
{
public:
void xoo() {}
};
请问sizeof(X)的值为多少?
A、0
B、1
C、2
D、4
E、8
二、问答题
请认真阅读每道题目,并按题目要求进行作答
1. 小明想自己做一个简单的网上商店,请帮他设计一个最简单的数据库系统,需要具备管理商品、管理客户及订单等功能。
2. 给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。如,输入为10,程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
答题前请选择使用的编程语言,否则将会被判定为错误答案。自动补全关键字的快捷键是Ctrl+I,撤销快捷键是Ctrl+Z.
3. geohash编码:geohash常用于将二维的经纬度转换为字符串,分为两步:第一步是经纬度的二进制编码,第二步是base32转码。
此题考察纬度的二进制编码:算法对纬度[-90, 90]通过二分法进行无限逼近(取决于所需精度,本题精度为6)。注意,本题进行二分法逼近过程中只采用向下取整来进行二分,针对二分中间值属于右区间。算法举例如下:
针对纬度为80进行二进制编码过程:
1)区间[-90, 90]进行二分为[-90, 0),[0,90],成为左右区间,可以确定80为右区间,标记为1;
2)针对上一步的右区间[0,90]进行二分为[0, 45), [45,90],可以确定80是右区间,标记为1;
3)针对[45,90]进行二分为[45,67)[67,90],可以确定80为右区间,标记为1;
4)针对[67,90]进行二分为[67,78),[78,90],可以确定80为右区间,标记为1;
5)针对[78,90]进行二分为[78,84),[84,90],可以确定80为左区间,标记为0;
6)针对[[78,84]进行二分为[78,81),[81,84],可以确定80为左区间,标记为0;
已达精度要求,编码为111100。
样本输入:80
样本输出:111100
答题前请选择使用的编程语言,否则将会被判定为错误答案。自动补全关键字的快捷键是Ctrl+I,撤销快捷键是Ctrl+Z.
4. 腾讯大厦有39层,你手里有两颗一模一样的玻璃珠。当你拿着玻璃珠在某一层往下扔的时候,一定会有两个结果,玻璃珠碎了或者没碎。大厦有个临界楼层,低于它的楼层,往下扔玻璃珠,玻璃珠不会碎,等于或高于它的楼层,扔下玻璃珠,玻璃珠一定会碎,玻璃珠碎了就不能再扔。现在让你设计一种方式,使得在该方式下,最坏的情况扔的次数比其他任何方式最坏的次数都少,也就是设计一种最有效的方式。
请给出正确答案,给出算法代码有加分。
网上有类似的题,http://www.cnblogs.com/houkai/p/3973046.html