嵌入式软件面试总结&题

首先一些经验与教训,也算是给将要开始找工作的娃娃一点多余的提醒吧。

一定要重基础哦!这里的“基础”对比大学里面的“皮毛”知识,多的是一点深度和延伸。所以看似企业在招懂基础的人,其实是招一个对于专业知识理解有一定深度的人,而这样的人往往不只是基础好。趁校招还没开始的时候个自己充电,主要补充的知识是:

C语言(包括底层实现,如堆栈如何分配,数据的大小端方式,分析问题的时候也要考虑计算机位数的影响......)重点有 几个必考关键字(volatile,const,static,extern),位操作,结构体,指针,动态地址分配、预处理,宏定义......(ps:另外要注意嵌入式C语言的特性哦)

这里是一个前辈总结的经典题,可以参考:https://blog.csdn.net/mao_hui_fei/article/details/82710536

Linux操作系统(远不是课程上的通用操作系统的内容,具体可以去看专门教材)重点有 文件,Linux网络编程,多线程,Linux常用指令......(ps:关于这个部分,网上的面试题比较零碎,也有一些相对有点偏,注意自己总结,也可能是因为我没仔细找)

数据结构 重点是各种数据结构(物理结构要了解其原理和使用,逻辑结构要了解其实现、特点和使用),几种排序算法。

计算机网络(和前面Linux网络编程会有综合)重点为 TCP/IP协议(这里不会问很细致)TCP的三次握手、四次挥手......

⑤单片机 关于单片机的知识主要就是基础的C语言,在第一点中提到,另外就是自己项目涉及到的知识,公司的研究方向涉及的单片机知识(不是重点)。

ps:除了直白的知识点提问,题目往往会绕弯弯,知识点杂糅(C语言的题目中比较常出现),千万注意审题!(包括笔试)。

 

嵌入式的知识涉及比较广,一般毕业生很难做到广泛而深入(比如我),这时候“积累”就显得尤为重要了,要知道必会的知识点就那么些。积累的方式①搜集经典题目,彻底理解②搜集公司笔试、面试题,拓宽知识面,查漏补缺③一定要多去参加笔试面试,实践是检验真理的唯一标准。

重点说一说实战经验的重要性。相同类型的公司,相同的岗位,需求一般差别不大,所以问的题目也会有相似。如果第一次面试什么都答不上来,非常受挫,正常。总结好本次面试的题目,还可以进行一定的知识延伸。第二次面试不出意外就会有你总结的题,这时候你会回答的比上一次好一些......其实不用我来说,在开始了你的求职面试之后自然就会发现。

 

写的有点粗糙,0.51 有点困了zzz      好吧,其实还是因为我在试水,也没有认真准备,呜呜。

 

两次技术面试的提问,回忆整理了一部分。

1.结构体对齐原则

例题:

struct node{
    char c1;
    short int s;
    char c2;
    int n;
    char *p;
    char c3;
}

问:sizeof(struct node) = ?

(ps:结构体的对齐原则是怎样的?)

 

2.指针变量占多少字节?在32和64位机中不同的原因是什么?

 

3.指针存放在堆区还是栈区

 

4.宏定义的作用

 

5.动态内存分配

例题1:

char * func(char *p)
{
    free(p);
    p = NULL;

    return p;
}

char *p1 = malloc(s1);
char *p2 = func(p1);

    ①这段代码执行后p1,p2的值分别是什么?”

    ②在后面添加“p1[0] = 10;”是否合法?

 

例题2:

char *p1 = malloc(s1);

char *p2 = realloc(p1,s2);

 ①这两个语句有什么区别?

 

6.指针&数据存储

int n = 0x1234;
short int *p = &n;
 

    ①  *p = ?

 

7.文件描述符

 ①有效的文件描述符最小取值是多少?

 

8.Linux网络编程

 ①Linux网络编程select的返回时机?

 

9.关键字

 ①介绍static,extern,volatile

 

10.(简历中有提到C语言和Java)题目:C语言和Java有什么不同?

 

不给答案,哈。注意举一反三哟! 加油哇!一切顺利!

 

你可能感兴趣的:(面试题,嵌入式,嵌入式)