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

字节跳动测试工程师面试总结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;
}

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

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

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值