腾讯研发工程师笔试真题详解:实战题目及答案解析

需积分: 9 6 下载量 188 浏览量 更新于2024-09-10 1 收藏 314KB PDF 举报
腾讯2016年研发工程师笔试题包含了多个计算机科学和编程基础的考察点。以下是部分题目及其解析: 1. **组合数学问题**: - 题目:在《爸爸去哪儿》节目中,若3对父子站成一排且不能相邻,例如石头和郭涛不能挨着,计算共有多少种站法。 - 解析:这是一个经典的排列组合问题,涉及到不相邻元素的排列,可以使用插空法。首先让3个父亲站在固定位置,然后在剩下的空位中插入3个儿子,总共有4个空位可以选择,所以有4×3×2×1=24种站法,答案是C(240)。 2. **C语言指针和常量**: - 题目要求找出程序中的错误。 - 错误分析:(1) `const int *p1;` 定义了一个指向整型常量的指针,没有错误;(2) `int const *p2 = &i;` 也没有错误;(3) 将`p2`指向`j`是正确的;(4) `int *const p3 = &i;` 定义了一个指向常量的整型指针,但后续尝试修改`*p3`为20是错误的,因为常量指针不能修改指向的值;(5) 修改`*p2`为30同样错误;(6) 将`p3`重新指向`j`也是错误的,因为它被声明为常量指针。所以答案是C,包含3处错误。 3. **数组和指针运算**: - 题目:输出数组`a`中通过指针`p`减1得到的元素值。 - 解析:`p=(int*)&a+1`将`p`指向数组`a`的第二个元素,即`a[1]`,所以`*(p-1)`实际上是`a[0]`,答案是A(1)。 4. **线性代数基础**: - 题目:若矩阵`A`有两个不同的特征值`k1`和`k2`,对应的特征向量分别是`a`和`b`,则它们的关系是。 - 解析:由于`a`和`b`分别对应不同的特征值,它们是线性无关的,答案是B(线性无关)。 5. **C++继承和虚函数**: - 题目:描述了结构体`A`和`B`的继承关系以及`A`和`B`的成员函数。当创建`B`类型的指针并调用成员函数时,输出将是。 - 解析:因为`B`继承自`A`,并且覆盖了`foo()`方法,所以调用`p->foo()`会执行`B`的版本(输出“b_foo”),`bar()`仍然是虚函数,所以调用`p->bar()`会调用`A`中的基类版本(输出“bar”)。答案是A。 6. **Linux权限和文件操作**: - 题目:设置`file1`文件的权限和所有者。 - 解析:设置所有用户可读、写、执行权限的命令是`chmod 777 file1`,将所有者改为`test`的命令是`chown test:file1 file1`,但题目中只提供了第一个命令,完整的命令应该是`chmod 777 file1 && chown test:file1 file1`。 以上是部分题目和解析,完整的腾讯2016年研发工程师笔试题涵盖了许多计算机基础知识和实际编程技能的考察,旨在评估应聘者的逻辑思维、问题解决能力和对编程语言的理解。