【面试经历】2017年11月11日

今天一共参加两次面试,上午一次下午一次。面试的岗位是嵌入式开发工程师。下面记录一下面试经历,分析自己的不足之处,为后续的工作指明方向。

  面试一

【时间】2017-11-11 9:00-11:00

【地点】西乡老兵大厦  hengkong科技

【面试过程】

1、笔试

九点到达公司后,前台妹子打印一份试题C语言,要求一个小时内完成。主要包括有宏,指针,数组,字符串操作,位的操作,函数的基本操作循环等,基础的电路题目,寄存器操作,C编译原理,逻辑思维,内存的一些概念。由于最近工作的确没有去看这些基础的知识,导致花了一个钟,还有5个左右的电路题目没有做。虽然感觉没有下文了,但是还是坚持做了。

2、技术面试

技术面试官面试时说题目做的不合格,然后说基础不好。问了几个工作的问题如工作具体是做什么的,这个奈何接入网设备特别庞大,也没有很好的切入口,导致他听我说了半天没听明白。接着又问了培训做的项目,我也含糊其辞,没有回答的特别顺畅(由于当时培训基本零基础入门,基本没有实际的项目,每天都是敲代码)。后面问了几个问题,如堆和栈的区别,数组的缺点,有没有使用过链表,ROM、RAM、SDRAM、NONDFLASH等几个的含义及区别。最终对我的评价就是基础知识不好。后面又来了一句不建议去中软和软通这些外包公司,我也没说啥了!我说了句谢谢就撤离案发现场了。

【面试总结】

1、自己太过于盲目,简历前一天才打印,没有做充分的准备

2、简历的内容自己不熟悉,导致回答问题是思维混乱,无法讲诉清楚

3、基础知识太差,基本的问题回答不到,这个下面需要认真准备

4、面试注重的偏基础,主要因为项目介绍过于笼统,需要给出实际的案例,项目经历需再优化

 

  面试二

【时间】2017-11-11 14:30-15:10

【地点】石岩创维数字大厦  guanglianzhitong科技

【面试过程】

1、技术面试

没有进行笔试,前台妹子拿了一张信息表填完成之后,又让她打了一份简历(中午回宿舍给漏宿舍了,尴尬)。等了大概十分钟,技术面试官聊了一下。主要是目前的工作内容,以及工作外包的模式,然后就项目经验问了一下。有讲了一下我们做的产品是在路由上层的,他听懂了。然后介绍了他们公司是做无线和有线路由器,正在扩展业务做智能家居终端的。我问了一下是怎么开发的,他说将芯片厂家提供的demo进行实际场景修改,以及对开源的一些项目修改,优化和适配。开发使用的环境是Windows加虚拟机安装的Linux环境,设备上运行的就是Linux系统。

2、HR面试

HR简单介绍了一下公司的政策,对简历上的一些项目进行了了解以及每家公司离职的原因,还有个人最近的发展规划,我说主要是做技术这一块。讲了一下公积金的事情,后面可能会有技术总监面试。

【面试总结】

1、技术面试氛围较轻松,对于项目介绍个人还是不够熟练,应该了熟于心,调理清晰

2、自己的定位不是很明确,导致有些问题答非所问,这点需要仔细思考一下如何改进

 

  附录

【面试题目汇总】

笔试题目:

1、用变量a给出下面的定义?

 (a)一个有5个指针的数组,该指针指向一个整形数;    ANSWER:  int *a[5];

 (b)一个指向有5个整形数数组的指针;         ANSWER:  int (*a)[5];

 (c)一个指向函数的指针,该函数有一个整形参数并返回一个整型数;   Answer:     int (*a)(int);

 (d)一个有5个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整形数;   Answer:  int (*a[5])(int);

2、数组和链表的区别?

 Answer:  数组:数据顺序存储,固定大小;   链表:数据可以随机存储,大小可动态改变;

3、中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C 支持中断。具代表事实是,产生了一个新的关键字__interrupt 。下面的代码就使用了__interrupt 关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。

1 __interrupt double compute_area (double radius)
2 {
3     double area = PI * radius * radius;
4     printf(" Area = %f", area);
5     return area;
6 }

 

Answer:  (1)ISR不能返回一个值;(2)ISR不能传递参数;(3)在许多编译器中,浮点一般时不可重入的,ISR应该是短而有效率的,在ISR中做运算是不明智的; (4)printf() 经常有重入和性能上的问题。

面试题目:

1、堆和栈的区别?

    Answer:      堆(Heap):①队列先进先出  ②堆的空间是程序员手段分配和释放的  ③堆很大的存储空间4G  ④使用malloc和new分配内存都在堆上。

                       栈(Stack):①栈先进后出  ②栈的空间有操作系统自动分配和释放的  ③栈空间有限4~12M  ④程序在变异时对函数和变量分配内存都在栈上。

2、数组和链表的优缺点

    数组分配在一块连续的数据空间上,故在分配空间时必须确定大小;链表时一块不连续的动态空间,通过指针连接,故长度可变。

  优点 缺点
数组

1.可以利用地址偏移来访问,效率高

2.可以使用折半法查找元素,效率高

1.空间连续,存储效率低

2.插入和删除元素效率比较低且麻烦

链表

1.插入和删除元素不需要移动其余元素,效率高

不要求连续空间,空间利用效率高

1.不提高随机访问元素的机制

2.查找元素和搜索元素的效率低

 

 

 

 

 

 

 

 

 

3、ROM、RAM、SDRAM、NAND Flash、NOR Flash、EPROM、E2PROM区别和联系

posted @ 2017-11-11 20:24  FeCodeTech  阅读(157)  评论(0编辑  收藏  举报