很长时间没有更新博客了!因为最近都做完了笔试,大多是进行的都是面试,所以也没有什么干货可以写上来,只能写写阶段性的东西!
这期间还是进行了三个笔试,一个是联想的,SHL,内容很多,涉及到英语理解,还有数学计算、逻辑推理、图形规律,做的人直恶心;第二个是斐讯的,这个投的岗位是C语言工程师,但是不知道为什么做的题目感觉像是嵌入式的,可能需要的方向是基于linux的C语言工程师吧,这都不是关键,关键的是两道编程题居然需要自己手动缩进,这真是操了蛋了;第三个是TPLink的,TPLink的题目好像都忘记了!记了!了!妈的,这就充分说明应该及时的更新到博客上面来,要不是后立即望!
把斐讯的编程题目写一写。
- 第一道是完成一个下面的函数
void* memset(void* dst,int c,unsigned int n)
。我的理解是这道是写一个函数,实现从dst位置开始,把n个内存单元初始化为值c。
其实,我已经忘了我当时自己写了怎么样的代码,但是今天在写博客的时候,脑袋里一直萦绕着一个问题,他给出了起始的地址,那么:C语言中怎么在给定起始地址的情况下去申请内存呢?想了半天,好像没有遇到过这样的问题!再仔细想想,这个内存是不是已经申请完了呀?在查询了网上的说明之后,发现好像的确是这样的。那么另一个问题又来了,这个返回地址需要我返回什么呢?
- 第二道题目是给你双链表节点的结构体,让你完成三个功能:1、查找第i个位置的值(忘了是不是这个);2、在第i个位置插入值为x的节点;3、删除第i个节点;4、查找值为x的节点(返回查找到的第一个找到的值还是位置?都没有说)
10月3日凌晨把部分的代码补上来,以后继续增加
#include<iostream>
using namespace std;
typedef struct biLink
{
int val;
struct biLink * prv;
struct biLink * next;
}bink;
void insert_new_node(bink* hd,int i,int val)
{
int j = 0;
bink* p = hd;
bink* front = NULL;
bink* rear = NULL;
if(p == NULL)
{
cout<<"Link is empty!Add in the after node"<<j<<endl;
bink* n = (bink*)malloc(sizeof(bink));
n->val = val;
n->next = rear;
n->prv = front;
}
else
{
if(i == 0)
{
rear = hd;
bink* n = (bink*)malloc(sizeof(bink));
n->val = val;
n->next = rear;
n->prv = front;
}
else if(i != 0)
{
p = hd;
for(j = 0;j<i-1;j++)
{
if(p->next == NULL)
{
cout<<"Length is not enough!Add in the after node"<<j+1<<endl;
break;
}
else
{
p = p->next;
}
}
front = p;
rear = p->next;
bink* n = (bink*)malloc(sizeof(bink));
front->next = n;/这一行也很关键啊
n->prv = front;
n->val = val;
n->next = rear;
}
}
}
int find_by_value(bink* hd,int val)
{
if(hd == NULL)
{
cout<<"No NODE to find!"<<endl;
return -1;
}
bink* p = hd;
int i = 0;
while(p->next != NULL)
{
i = i + 1;
if(p->val == val)
{
return i;
}
p = p->next;
}
if(p->val == val)
{
return i+1;
}
return 0;
}
void main(void)
{
typedef struct biLink blink;
blink* rear;
blink* front;
blink* hd = (blink*)malloc(sizeof(blink));
blink* p = hd;
p->prv = NULL;
p->val = 0;
p->next = NULL;
front = p;
for(int i = 0;i < 5;i++)
{
p->next = (blink*)malloc(sizeof(blink));
p = p->next;
p->prv = front;
front = p;
p->val = i+1;
p->next = NULL;
}
p = hd;
insert_new_node(hd,2,10);///好了!!!
while(p->next != NULL)
{
cout<<p->val<<endl;
p = p->next;//这一行啊!真实坑死爹了!
}
cout<<(find_by_value(hd,7))<<endl;///查找没有问题了!
system("pause");
}
最近的另外一个烦心事情就是失去了很多机会。华为的薪资与同学的差距很大,导致自己不想签;607因为地点在无锡,对象不想去,但是其实607将来能过得十分的好,发展也是机会多多;14所也是同华为一样的结果,在面试的时候表现的不好,收到面试官的评价不高,感觉会在之后机会受限,犹豫要不要签;航天二院那边,25所没信儿,207直接说明白了不要;一汽大众面试到最后等消息,是否能够通过没有消息,而且,现在一汽大众降薪的传言四起,并且专业不是很对口;后面的TPLink工作地点在深圳,斐讯感觉不好过去,联想难于登天,中国移动杭州研究院与苏州研究院太晚!
当然,最让我心烦的还是我的那位导师啊,有一万件事情,项目、课题与项目、发论文,找完工作的人在玩耍,没有找到工作的人却在做着项目,这不摆明了是在坑人吗!