当前位置:   article > 正文

字节跳动测试工程师面试总结2019.7.17_将m元钱,随机放入n个红包中

将m元钱,随机放入n个红包中

字节跳动测试工程师面试总结2019.7.17

面试形式

视频面试,时长30分钟

内容

(1)自我介绍
(2)项目说明介绍
(3)操作系统原理(死锁/线程和进程)
(4)数据库
PS:(3)(4)根本没有接触过,所以当面试官问到时,就直接pass了

(5)介绍一下C++的引用和指针区别

  1. 引⽤只能在定义时初始化⼀次,之后不能改变指向其它变量(从⼀⽽终);指
    针变量的值可变。引用可以认为是一种特殊的指针。
  2. 引⽤必须指向有效的变量,指针可以为空。
  3. sizeof指针对象和引⽤对象的意义不⼀样。 sizeof引⽤得到的是所指向的变量的
    ⼤⼩,⽽sizeof指针是对象地址的⼤⼩。
  4. 指针和引⽤⾃增(++)⾃减(–)意义不⼀样。
  5. 相对⽽⾔,引⽤⽐指针更安全。
  6. 回答还可包括:常引用/引用作为函数参数时/引用作为返回参数时等内容。

(6)C++是类型安全的吗?
总结:

  1. 类型安全是指同一段内存在不同的地方,会被强制要求使用相同的办法来解释(内存中的数据是用类型来解释的)。
  2. 类型安全很大程度上可以等价于内存安全,类型安全的代码不会试图访问自己没被授权的内存区域。
  3. Java语言是类型安全的,除非强制类型转换。
  4. C++不是类型安全的,因为同一段内存可以用不同的数据类型来解释,比如1用int来解释就是1,用boolean来解释就是true

(7)C++的存储方式有几种
内存的三种分配方式:

  1. 从静态存储区分配:此时的内存在程序编译的时候已经分配好,并且在程序的整个运行期间都存在。全局变量,static变量等在此存储。
  2. 在栈区分配:相关代码执行时创建,执行结束时被自动释放。局部变量在此存储。栈内存分配运算内置于处理器的指令集中,效率高,但容量有限。
  3. 在堆区分配:动态分配内存。用new/malloc时开辟,delete/free时释放。生存期由用户指定,灵活。但有内存泄露等问题。

(8)编程题:将m元钱,随机放入n个红包中

#include <iostream>
#include <vector>
#include <ctime>
int main()
{
    double dm;
    int in;
    vector<double> vdres;
    cin>>dm>>in;
    for(int i =0; i < in-1; i++)
    { 
        double dtmp = rand()%10;
        double dtmp1 = (double)dtmp/10*dm;
        res.push_back(dtmp1);
        dm -= dtmp1;
    }
    res.push_back(dm);
    for(int i = 0; i < in ; i++)
    cout<<vdres[o]<<endl;
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

该算法的问题在于先抢的人有大的概率会拿到较多的钱

(9)简答题:如果给你250ml的农夫山泉,你该如何对它进行测试

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码吟游诗人2/article/detail/62419
推荐阅读
相关标签
  

闽ICP备14008679号