联想嵌入式软件面经

Q:英文自我介绍

A:balabala

Q:C++11如何实现多态?多态的几种类型,虚基类是什么概念?

A:虚函数实现多态。

Q:C语言中malloc函数

A:这块主要说了malloc的底层实现什么的,回答的不完全

Q:glibc的内存管理实现

A:没答上来

Q:C++常用容器?

A:vector,stack,queue

Q:vector有哪些增加的方式?

A:push_back() emplace_back() 就说了这两个

Q:vector增加元素是值拷贝还是指针拷贝?

A:值拷贝

Q:看代码1

//问最后的输出结果,*(p + 4) - *(p + 0)我第一次说16,最后说4,感觉就是16啊,为啥子?
#include <stdio.h>
int a[] = {1, 3, 5, 7, 9};
int *p[] = {a, a + 1, a + 2, a + 3, a + 4};

int main()
{
    printf("%d %d %d\n", a[4], *(a + 2), *p[1]);                                  // 9 5 3
    printf("%d %d %d\n", **(p + 1) + a[2], *(p + 4) - *(p + 0), *(a + 3) % a[4]); // 8 4 7
    printf("%d %d \n", *(p + 4), *(p + 0)); //4206640 4206624 不懂为啥减完成4了?
    return 0;
}

Q:看代码2

#include <iostream>
using namespace std;
class A
{
public:
    A() { cout << "A::A()called.\n"; }
    virtual ~A() { cout << "A:~A()called.\n"; }
};

class B : public A
{
public:
    B(int i)
    {
        cout << "B::B()called.\n";
        buf = new char[i];
    }
    virtual ~B()
    {
        delete[] buf;
        cout << "B:~B()called.\n";
    }

private:
    char *buf;
};

void fun(A *a)
{
    delete a;
}

int main()
{
    A *a = new B(15);
    fun(a);
    return 0;
}
//程序输出:
A::A()called.
B::B()called.
B:~B()called.
A:~A()called.

Q:python中列表和元组的区别

Q:介绍tensorflow框架(项目中有提到)

A:说了计算图,比如操作和数据流等等

Q:做题

Q1://数据结构来实现链表
struct ListNode
{
    int val;
    ListNode *next;
    ListNode(int x): val(x),next(NULL){}	//构造函数
};
Q2://找到链表的倒数第N个节点
//快慢指针
//这里注意head节点不能为NULL(使用虚拟头结点)
//要对n加一个限制条件,n的值必须在链表个数范围内

Q3://判断链表是否有环
//快慢指针

Q4://删除链表的倒数第N个节点


Q5://数据结构实现二叉树
struct TreeNode
{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x): val(x),left(NULL),right(NULL){}	//构造函数
};

Q6://二叉树的深度遍历
//前序,中序,后序
//面试直接写的宽度遍历。

Q:开始英文聊天,关于学校啥的,闲聊

Q:看程序的问题

void newMemory(char *p)
{
    p = (char *)malloc(100);
}

void func(void)
{
    char *str = NULL;
    newMemory(str);
    strcpy(str, "Memory test");//字符串复制函数
    printf(str);
}

Q:IIC通信协议中的ACK和NACK表示什么?

Q:SPI有几根线

Q:UART一般有几个信号

A:RX,TX。

Q:TCP的关闭连接过程

A:四次挥手,以及四次挥手的过程

Q:vim里替换一段字符串是怎么做的?

A:没打上来,说了自己经常用的几个vim命令

Q:linux中替换某个文件中的字符串

A:没打上来。。。

Q:linux查找某个字符串

Q:git问题:merge时候出现conflict怎么办?

总结:对自己的简历得很熟悉,同时掌握最基础的数据结构与算法,面试时候得听清楚面试官的问题,思考好了在回答,有几个问题没思考好就回答,说的很混乱,好在最后算是过了。这些问题对应的答案之后总结一下发出来。

#联想信息集散地##联想暑期##面经联想#

本专栏主要是记录24届秋招过程中我的笔试以及面试过程,一方面是为了给自己作为一个记录总结学习,作为面试复盘的一个记录 ,另外一方面作为一个分享,让大家能够少走弯路,针对性复习。 后面会持续更新!!!有需要的可以持续跟进

全部评论
恭喜大佬通过啊,大佬优秀
1 回复 分享
发布于 2023-05-30 09:36 山西
strcpy那个代码什么问题啊
1 回复 分享
发布于 2023-06-15 00:27 重庆
大佬入职以后能内推吗
点赞 回复 分享
发布于 2023-05-30 09:54 江苏
*(p + 4) - *(p + 0) 为啥是4呢?
点赞 回复 分享
发布于 2023-07-09 20:43 美国
可能指针减法需要将结果除以变量类型的大小,16/4 = 4?
点赞 回复 分享
发布于 2023-07-17 02:52 江苏
等会,英文?你海外高校的?
点赞 回复 分享
发布于 2023-09-23 20:24 北京
这么多。。一共面了多长时间
点赞 回复 分享
发布于 10-24 22:31 北京

相关推荐

21 144 评论
分享
牛客网
牛客企业服务