笔试2:禾赛科技

静态局部变量概念。

继承体系中派生类构造函数的调用,虚函数机制。

数组名取地址的意义以及指针常量和常量指针的概念。

指针常量指的是指针指向的内容不可变;常量指针指的是指针本身不可变。

解释:(int)(pf[8])(double *);

自定义string类,并实现构造函数、赋值运算符函数(要求能够输入任意二进制字符,即非法字符串和‘\0’)

class MyString
{
public:
    MyString();
    MyString(const char *s);    //构造函数
    MyString(const char *s, int l);
    MyString& operator = (const MyString &st);    //赋值运算符
    friend ostream&operator<<(ostream &os,const MyString&st){os<<st.str;return os;}
private:
    char *str;    //字符串
    int len;       //字符串长度
}
MyString::MyString(const char *s)
{
    len = strlen(str);
    str = new char[len+1];
    strcpy(str,s);
}

MyString::MyString(const char *s, int l)
{
    len = l;
    str = new char[len + 1];
    for (int i = 0; i < l + 1; ++i)
    {
        str[i] = s[i];
    }
}

MyString& MyString::operator=(const MyString & st)
{
    if(this==&st)
        return *this;
    delete []str;    //清空内存
    len = st.len;
    str = new char[len+1];
    strcpy(str,st.str);
    return *this;
}

关于\0的讨论:
从const char*创建string时,指针指向的数组必须以空字符结尾,拷贝操作遇到空字符时停止。如果传递给构造函数一个计数值,数组就不必以空字符结尾。
标准string的构造函数string::basic_string(const char *_Ptr,size_t _Count);可以实现如下操作:

char *s = "abcde\0fg";
string str(s,9);
cout<<str<<endl;    //输出:abcde  fg

然而上面重载构造函数,虽然能够将"abcde\0fg"传递给str成员,但是重载的<<又不能像标准string一样直接输出。

vector容器自定义排序算法,相关结构体如下:

struct Student{
string name;
string class;
bool male;
double score;
};
extern vector<Student>vecStudent;    //所有学生信息

要求相同班级同学在一起;每个班中女在前男在后,按照分数降序排序,如果分数相同则按照姓名首字母字典序排列。完成排序后打印前n个同学的姓名和分数。

小端电脑,将一个浮点数按照大端模式放在buffer中发送出去,实现转换函数。

unsigned char buffer[4]={0};
void convert(float a,unsigned char buffer[]);

约瑟夫环问题。

唔,剑指offer用std::list的方式在牛客里面超时了。

int ysf(int n, int m)
{
    if (n < 0 || m < 1)
        return 0;
    list<int>st;
    for (int i = 1; i <= n; ++i)
        st.emplace_back(i);
    auto iter = st.begin();
    while (st.size() > 1)
    {
        for (int i = 1; i < m; i++)
        {
            iter++;
            if (iter == st.end())
                iter = st.begin();
        }
        iter = st.erase(iter);
        if (iter == st.end())
            iter = st.begin();
    }

    return st.back();;
}

安静的自己构造的循环单链表:

int ysf(int n, int m) {
        ListNode *p=new ListNode(1);
        ListNode *q=p;
        for(int i=2;i<=n;++i)
        {
            ListNode *r = new ListNode(i);
            q->next=r;
            q=r;
        }
        q->next=p;    //此时,构成环形链表
        while(p->next!=p)
        {
            for(int i=1;i<m;++i)
            {
                q=p;            //单链表,需要记录前一个结点
                p=p->next;
            }
            q->next=p->next;    //删除结点
            p=q->next;
        }
        return p->val;
    }
全部评论
老哥这是你后期回忆出来的吗,这不是都答上来了么.....
点赞 回复 分享
发布于 2021-04-27 01:53
老哥 这是算法岗的题吗
点赞 回复 分享
发布于 2023-03-20 17:00 北京
请问问答题是文字简答吗
点赞 回复 分享
发布于 2023-12-22 14:52 上海

相关推荐

EEbond:给北邮✌️跪了
点赞 评论 收藏
分享
双飞二本嵌入式求拷打我是在&nbsp;BOSS&nbsp;上投递的简历,好多都没人回复,这是开场白和简历求大神帮忙看看。您好!我是2025届应届生,最快可在一周内上岗,能够实习六个月以上,并接受加班。以下是我的核心优势和相关经验:1.&nbsp;嵌入式开发能力:&nbsp;&nbsp;&nbsp;熟练掌握STM32系列单片机及其外设(如GPIO、定时器、ADC、DAC、I2C、SPI、UART等),能够独立完成硬件驱动开发和调试。&nbsp;&nbsp;熟悉FreeRTOS实时操作系统,具备多任务调度和资源管理经验。&nbsp;&nbsp;熟悉LVGL图形库开发,能够实现嵌入式设备的图形界面设计。2.&nbsp;硬件设计能力:&nbsp;&nbsp;&nbsp;具备PCB设计经验,曾为2023年工创赛物流搬运赛道设计小车主板,带领团队获得国家级银奖。&nbsp;&nbsp;&nbsp;熟悉硬件原理图分析,能够快速理解并调试硬件电路。3.&nbsp;机器人开发与竞赛经验:&nbsp;&nbsp;&nbsp;在全国大学生智能车竞赛、ROS机器人竞赛中多次获得国家级奖项,具备丰富的机器人开发经验。&nbsp;&nbsp;&nbsp;熟悉Linux环境,对ROS和ROS&nbsp;2有一定了解,能够进行机器人系统的开发与调试。4.&nbsp;编程能力:&nbsp;&nbsp;&nbsp;熟悉C/C++,熟悉Python,能够高效完成嵌入式开发和算法实现。&nbsp;&nbsp;&nbsp;具备良好的代码规范和文档编写能力。5.&nbsp;团队协作与领导能力:&nbsp;&nbsp;&nbsp;在多个项目中担任核心开发或团队负责人,具备良好的沟通能力和团队协作精神。&nbsp;&nbsp;&nbsp;在工创赛中带领团队完成项目规划、任务分配和技术攻关,展现了较强的领导力。我对嵌入式开发、机器人技术和智能硬件充满热情,期待加入贵公司,与团队共同成长,为公司创造价值!如果有合适的岗位,欢迎随时联系我,期待进一步沟通!
沉淀一会:嵌入式就是狗屎
点赞 评论 收藏
分享
评论
2
11
分享

创作者周榜

更多
牛客网
牛客企业服务