禾赛科技笔试复盘

楼主投的是C++岗位,今天做了笔试题,感觉没有发挥好,这里复盘一遍,加深印象,不让错误再犯。

总共是5道题,3个问答题,2道编程题

1. 给你如下一段代码,请分析执行之后的结果:
void foo(int &b){
    static int a = 3;
    b += a++;
}
int main(){
    int a = 4;
    int &b = a;
    b = a+1;
    foo(a);
    cout << a << " " << b << endl;
    b++;
    foo(b);
    cout << a << " " << b << endl;
    return 0;
}
正确答案
8, 8
13, 13
我第一次分析的时候,也是觉得foo函数的局部静态变量只会被创建一次,所以局部静态变量a第二次应该是4,没有坚持自己的分析,给了一个错误答案12

2. 阐述下面的代码意思:
int a[10]
int *a[10];
int * const a[10]
int (*a)[10]
int (*a)(int)
int* (*a[10])(int *)
1. 整型数组
2. 指针数组
3. 顶层const修饰的指针数组
4. 数组指针
5. 函数指针
6. 函数指针数组

3. 给你如下一段代码,请分析执行之后的结果:
class A{
public:
    A(){
        print();
    }
    virtual void print(){ cout << "A" << endl; }
};

class B : public A{
public:
    B(){
        print();
    }
    virtual void print(){ cout << "B" << endl; }
};
int main(){
    A a;
    B b;
    A *pa = &b;
    pa->print();
    return 0;
}
正确答案:
A A B B
我的答案 A A B。我晕,这种不合理的代码,根本就没有去模拟过好吧。《Effective C++》明确指明不要在构造函数和析构函数中调用虚函数。在实例化类B的对象b时,会调用两次print,第一次是基类的print,第二次是派生类的print

4. 小端地址转大端地址
我代码写错了,下来之后自己又改了一遍,贴正确的代码:
对了,题目要求返回值是int32,也就是有符号的32位整型,这是不对的吧,这库的函数格式都是无符号的32位整型。我的代码是使用的无符号的32位整型
uint32_t func(string &ipaddr){
    uint32_t t = 0;
    uint32_t ans = 0;
    int len = ipaddr.size();
    vector<uint32_t> v;
    for(int i = 0; i < len; ++i){
        if(ipaddr[i] != '.'){
            t *= 10;
            t += ipaddr[i]-'0';
        }
        else{
            t = t << (v.size() * 8);
            v.push_back(t);
            t = 0;
        }
    }
    t = t << (v.size() * 8);
    v.push_back(t);
    for(auto n : v) ans += n;
    return ans;
}
5. 最后一个题,设计一个电梯程序,实现以下功能:
- 不使用的时候回到一楼;
- 运行过程中打印每一层楼;
- 对外一个接口,选择电梯要去的楼层
class Elev{
public:
    Elev(int n):_n(n), _pos(1){}
    void setF(int n){
        run(n);
    }
private:
    int _n;
    int _pos;
    void run(int n){
        while(_pos != n){
            cout << _pos << endl;
            _pos < n ? _pos++ : _pos--;
        }
        cout << _pos << endl;
    }
};
由于时间关系,不使用时返回一楼的方法没有实现

写到最后,复盘之后才发现,自己的笔试做的挺菜的,5个题感觉都做的不理想,还得加油啊!





#禾赛科技#
全部评论
我一志愿C++结果发来的是二志愿C的卷子😑,两道简单编程
点赞 回复 分享
发布于 2022-07-12 16:15
笔试出结果没
点赞 回复 分享
发布于 2022-07-10 10:48
第三题程序跑出来确实是aab
点赞 回复 分享
发布于 2022-08-06 19:38
同学你好看看猪厂岗位吗?代友转发~网易雷火23届秋招开始啦~!填写内推邀请函简历优先筛选: https://xiaozhao.leihuo.netease.com/neitui/#/?introduceId=i0beol8d9gxc2q1a
1 回复 分享
发布于 2022-07-08 02:01
同问进面了吗
1 回复 分享
发布于 2022-07-15 12:49
楼主,第一个正确答案不对吧?我用跑了一下结果是7 5和7 10啊?
1 回复 分享
发布于 2022-08-06 19:29
谢谢复盘,一看你的,我题目都看错了😅😅
点赞 回复 分享
发布于 2022-07-08 13:34
大哥,进面试了吗
点赞 回复 分享
发布于 2022-07-15 12:22
官网不是写的直接面试吗,为啥还要笔试呢
点赞 回复 分享
发布于 2022-07-18 22:25
老哥,小端地址转大端地址是啥意思啊,能解释下不
点赞 回复 分享
发布于 2022-07-28 22:40
感谢老哥分享
点赞 回复 分享
发布于 2022-07-30 09:08
看看我看看我!上海禾赛科技有限公司校招内推码: CM2XTJF 投递链接: https://kwh0jtf778.jobs.feishu.cn/s/6FcjqyS
点赞 回复 分享
发布于 2022-09-07 23:41 上海

相关推荐

16 114 评论
分享
牛客网
牛客企业服务