腾讯2017年校招笔试题目选讲
1.在vs编译环境下,以下代码的运行情况:
答案cba
该题考察函数的参数传递:
当用函数做实参时,编译器一般会根据参数传递顺序,先计算出函数的返回值,然后将返回值传递给原来的函数。
在x86架构(Linux或Unix系统)上,函数的参数是通过栈传递的。因此参数从右往左入栈顺序是:printf("c"),printf("b"),printf("a")。依次计算出结果:cba
在x86_64架构(Linux或Unix系统)上,函数的前6个参数是通过寄存器传递的,超出6个的部分(如第7个参数,第8个参数等等)通过栈传递。因此参数进寄存器顺序是:printf("a"),printf("b"),printf("c")。依次计算出结果:abc
2.具有3个节点的二叉树有几种形态? 答案5
n个结点的二叉树的形态:C(2*n,n)/n+1
5.下列程序数据结果是多少大 A 的 ascii 码是 65 )?
略偏,需要猜他的机制
c++ 枚举类型值从上向下会逐个递增
6.哪种数据结构用于执行递归调用() 比较简单的题目
7.在Linux上,对于多进程,子进程继承了父进程的下列哪些?
9.文件系统管理的最小磁盘空间单位是()
扇区是磁盘最小的物理存储单元,一般而言是每个扇区512B大小,但是操作通常不直接管理每一个扇区,而是通过将若干个扇区组成的一个更大的集合来去进行操作管理。
这个比扇区更大的集合,在Windows下叫做簇;在Linux下叫做块(block)。
11.以下关于栈的说法错误的是:
12.
共12次
注意,本身的层数也要算上
20.在C++语言中,以下说法正确的是()
经典多态的考察
C++标准规定类的大小不为0,空类的大小为1,当类不包含虚函数和非静态数据成员时,其对象大小也为1。
对有虚函数的类来说,必须为它的对象提供运行时类型信息(RTTI,Run-Time Type Information)和关于虚函数表的信息,常见的做法是在对象中放置一个指向虚函数表的指针,此外,为了支持RTTI,许多编译器都把该类型信息放在虚函数表中。但是,是否必须采用这种实现方法,C++标准没有规定,主流编译器均采用的一种方案。
虚函数、成员函数[包括静态与非静态]、和静态数据成员都是不占用对象的存储空间的
对象大小 = 虚函数指针 + 所有非静态数据成员大小 + 因对齐而多占的字节
24.针对二分查找算法,假设一个有序数组有 136 个元素,那么要查找到第 10 个元素, 需要比较的元素为()
1. 看选项最后,是10,题目给的是“查找第10个元素”,也就是说,就是从1开始的。。。。。1+(136-1)/2=68
2. 10<68, 下次从1~67中找:1+(67-1)/2=34;
3. 10<34, 下次从1~33中找:1+(33-1)/2=17;
4. 10<17, 下次从1~16中找:1+(16-1)/2=8;
5. 10>8, 下次从9~16中找:9+(16-9)/2=12;
6. 10<12, 下次从9~11中找:9+(11-9)/2=10;
7. 10==10 return
68--34--17--8--12--10
C语言,设有宏定义:
#define A 4+5
#define B A*A
则表达式B*B的值为
B*B=A*A*A*A=4+5*4+5*4+5*4+5*4+5=69