您的位置:首页 > 职场人生

华为面试经历 by eric

2013-08-15 10:10 239 查看


1. 机试


共有三题

a、加密

要求

输入一个字符串;

字符串的前半部分-1,如b,将会变为a;当为a时,输出z;

字符串的后半部分+1,如b,将会变为c;当为z时,输出a;

字符串的长度若为奇数,中间的那个字符不做变化;

标注:很简单的题目,唯一注意的就是效率问题;

b、比较

要求

输入:

41234 3456 12345 654 12386

123

输出:

12345 12386 41234

将输入第一行中的数字和第二行的数字进行比对,找出包含第二行中的数据,然后排序输出;

标注

在做题时,对scanf的用法不熟悉,导致上文中特定形式的输入出现问题,从而后面两题都出现了很大的问题;

c、约瑟夫环的单链表实现

要求

编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方 向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部 出列为止。设计一个程序来求出出列顺序,以单循环链表方式实现。

M,n都小于10;

实现

#include <stdio.h>
#include <stdlib.h>

typedef struct node{
int num;
int key;
struct node *next;
}LNode;

void Joseph(int, int, int*);
LNode *CreateList(int);

void main()
{
int m, n, a[10];
//m是报数范围,n是人数,a[10]存储每个人所拥有的密码

scanf("%d %d", &n, &m);
Joseph(n, m, a);
}

void Joseph(int n, int m, int *a)
{
LNode *head = NULL;
LNode *p = NULL;
LNode *temp = NULL;
LNode *last = NULL;

int i;
int count = 1;

head = CreateList(n);
p = head;

while(p != p->next){
for(i=1; i<m; i++){
last = p;
p = p->next;
}

printf("%5d", p->num);
m = p->key;
temp = p;
last->next = p->next;
p = p->next;
free(temp);
}

printf("%5d\n", p->num);
free(p);
}

//单循环链表的创建
LNode *CreateList(int n)
{
LNode *p, *r, *list = NULL;
int value;
int i = 1;

while(i<=n){
scanf("%d", &value);
p = (LNode *)malloc(sizeof(LNode));
p->num = i++;
p->key = value;
p->next = NULL;

if(!list)
list = p;
else
r->next = p;
r = p;
}

r->next = list;

return list;
}


2. 技术面试

自我评价

表现的不是很好,很多自己理解的东西但是不能很好的和面试官说清楚。

需要针对理解的东西,进行表达训练。

不要全说实话,放大自己的优点,尽量不要说自己的缺点。

在面试之前,要详细思考如何对项目进行讲解,使面试官能够了解。

尽量淡化本科经历,强调研究生经历。

简历需要修改;

问题

每一个项目的大致介绍

如何避免指针使用所带来的危险(野指针)

在定义指针的时候,对其进行初始化,如初始化为NULL
正确的释放,并且释放后,并将指针设置为NULL,以免后面再次使用。会使人认为其是合法指针
为一个指针再次分配内存之前,要判断该指针是否为空,防止出现内存泄露

任务的状态变化



几种主要状态:

TASK_RUNNING
TASK_INTERRUPTIBLE 因为阻塞造成的睡眠
TASK_UNINTERRUTIBLE
TASK_STOPED 信号sigstop进入,sigconc退出
TASK_ZOMBIE

描述死锁



如何避免死锁

按固定的顺序获取
防止发生饥饿

双向循环链表和单向循环链表相比,好处在哪里;

3. 性格测试

具体内容

乐观;
完成工作;
细心;
领导力;
相信别人,信赖别人;
乐于帮助别人
是否容易紧张;
外向或内向;

注意两点

前后一致;

选择岗位需要的,而不是根据你是什么样的进行选择;

可以通过APESK来做一下测试,了解一下自己

4. 终面

没有进入,详细的询问项目相关
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: