饿了么还有预面试
点赞 3

相关推荐

10-30 18:32
同济大学 C++
- 面试常见题目:1. 求最大公约数:gcd(a,b) = gcd(b,r)  因为 a = b * q + r(余数)=> gcd(a,b) = gcd(b, a % b) = ... gcd(x,0) = x              solution:  int gcd(int a, int b){return gcd(a, a%b);2. a找到一个整数中,从右往左第一个1所在的位置: 求lsb?方法一:有一个指针0x1 每次判断 (n & lsb) ==0 如果是0的话,进入循环然后 lsb <<= 1; 直到(n & lsb) !=0 方法二: 的 return n & (-n);3. 不用中间变量把 a和b换掉。两种思路: a = a+ b; b = a -b; a = a - b; a = a^ b; b = a ^b; a =a ^b;- 语句:1. 三目运算符号  k = i > j ?  i : j;2. 指令语句:if else, switch case break; while true; do while; for; break; continue;- 数组:1. 一维数组:数组的内存空间:一片连续的内存空间,并提前分配好大小相等的小空间[一维内存空间图片]2. 为什么大多数语言都是从零开始?因为这个 i代表的是内存空间的偏移量:i_add = base_add + i * sizeof(elen)3. 常见:数组的效率 > 链表的效率内存:链表内存消耗(离散) > 数组(连续)cpu: 数组可以利用空间局部性4. c语言不检查数组是否越界。无论是否越界他都会执行。- 二维数组:1. 本质是:一维数组,在每个内存子空间下面再竖向添加一个子空间[二维数组内存图片]2. 数组的初始化:推荐 int matrix[2][3] = {0};3. 常量数组:不能修改数组的元素。- 好处:防止篡改,安全性高;有助于编译器优化程序。 应用场景:存储不会发生改变的数据(静态数据)- 例子:扑克牌发牌
查看13道真题和解析
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务