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. 终面
没有进入,详细的询问项目相关