2017年腾讯校招笔试题(研发岗)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2017年腾讯校招笔试题(研发岗)
一、不定项选择题
共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