Q:英文自我介绍A:balabalaQ:C++11如何实现多态?多态的几种类型,虚基类是什么概念?A:虚函数实现多态。Q:C语言中malloc函数A:这块主要说了malloc的底层实现什么的,回答的不完全Q:glibc的内存管理实现A:没答上来Q:C++常用容器?A:vector,stack,queueQ: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怎么办?总结:对自己的简历得很熟悉,同时掌握最基础的数据结构与算法,面试时候得听清楚面试官的问题,思考好了在回答,有几个问题没思考好就回答,说的很混乱,好在最后算是过了。这些问题对应的答案之后总结一下发出来。