腾讯2016研发工程师笔试题目解析

版权申诉
0 下载量 5 浏览量 更新于2024-09-09 收藏 484KB PDF 举报
"这份资料是腾讯2016年研发工程师笔试题的一部分,包含了编程题目和相关解答,主要考察编程基础、指针操作、数组与内存管理、面向对象编程以及操作系统权限设置等知识。" 1. 父子站法问题:这是一个组合数学问题,涉及到排列组合中的不相邻问题。可以使用插空法解决,首先将三对父子之外的两个人看作障碍物排好,然后在这些障碍物之间和两端插入三对父子,使得每对父子都不相邻。总共有5个位置可以插入,所以插空法公式为 C(5,3) * 3! = 120 种站法。正确答案是120。 2. C++程序错误分析: - (1) 和 (2) 没有错误,定义了常量指针和指向常量的指针。 - (3) 错误,尝试将一个指向常量的指针赋值为一个普通变量的地址,违反了常量指针的规则。 - (4) 没有错误,定义了一个指向常量的指针并初始化为指向i的地址。 - (5) 错误,试图通过常量指针修改常量,这是不允许的。 - (6) 错误,尝试通过指向常量的指针修改变量j的值。 - (7) 错误,尝试将一个指向常量的指针赋值为另一个变量的地址,违反了指针常量的规则。 正确答案是1, 3, 5, 6。 3. C语言代码段输出问题: 这段代码涉及到了数组和指针的概念。数组a的地址是一个指针,&a+1会跳过整个数组,所以p-1实际上指向的是数组a的最后一个元素的下一个位置,这在内存中是未定义的区域。因此,这段代码将产生错误,无法正常输出。 4. 特征值和特征向量问题: 如果k1和k2是矩阵A的不同特征值,那么对应的特征向量a和b必定线性无关,因为如果它们线性相关,那么根据线性代数的定义,一个特征值的所有特征向量应该构成一个线性空间,而这里有两个不同的特征值,意味着特征向量不可能是线性相关的。 5. C++继承与多态问题: 结构体A有一个虚函数bar(),结构体B继承自A并重写了foo()和bar()。创建B类型的对象p,并用A类型的指针指向它,调用foo()时,由于没有 virtual 关键字,调用的是基类的foo(),输出 "foo";调用bar()时,由于bar()是虚函数,会调用派生类的bar(),输出 "b_bar"。因此,输出为 "foo b_bar"。 6. Linux文件权限设置: 使用 `chmod` 命令可以改变文件的权限,要使所有用户对file1具有读、写、执行权限,应使用 `chmod 777 file1`。而要将file1的所有者改为test,拥有组改为user,使用 `chown test:user file1`。 这份笔试题涵盖了数组、指针、常量指针、面向对象编程、组合数学、线性代数、文件权限等多个IT领域的基础知识。通过解答这些问题,考生可以检验自己的编程技能和理论理解。