嵌入式笔试刷题

1. static 有什么用途?至少说明两种

答案:

  1. 限制变量作用域:用于局部变量时,使变量具有静态存储周期,即只初始化一次,但作用域仍限于函数内部。
  2. 限制函数可见性:用于函数或全局变量时,使其只在当前文件内可见,防止外部文件访问。

2. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

答案:有区别:

  • 全局变量:存放在数据段(.data 或 .bss),在程序整个生命周期内存在。
  • 局部变量:存放在**栈(stack)**中,随着函数的调用创建,退出后销毁。

3. 头文件中的 #ifndef/#define/#endif 是干什么用的?

答案:用于防止头文件被重复包含(多次包含同一头文件会导致重复定义错误)。

4. sizeof 计算题(32位系统)

复制代码

1

2

3

charstr[] = "http://www.ibegroup.com/";

char*p = str;

intn = 10;

  • (1) sizeof(str) = 27(包括结尾的 '\0')
  • (2) sizeof(p) = 4(指针大小)
  • (3) sizeof(n) = 4
  • (4) sizeof(str) in void Foo(char str[100]) = 4(退化为指针)
  • (5) void *p = malloc(100); sizeof(p) = 4

5. 表达式:

复制代码

1

2

inti=10, j=10, k=3;

k *= i + j;

答案:k = 3 × (10 + 10) = 60

6. 程序输出分析

复制代码

1

2

3

4

5

6

7

8

9

voidget_memory(char**p, intnum){

*p = (char*)malloc(num);

}

voidmain(void){

char*str = NULL;

get_memory(&str, 100);

strcpy(str, "hello");

printf(str);

}

答案:输出 hello

说明

  • get_memory 正确地用指针的指针分配了内存;
  • strcpy 正确;
  • printf(str) 建议写为 printf("%s", str);

7. 程序输出分析

复制代码

1

2

3

4

5

6

7

8

9

char*get_memory(void){

charp[] = "hello world";

returnp;

}

voidmain(void){

char*str = NULL;

str = get_memory();

printf(str);

}

答案:运行时错误或不可预期的值

说明

  • 返回的是局部数组 p 的地址,在函数返回后释放;
  • 导致 str 指向非法内存,访问未定义

8. TCP 建立连接的过程(3 次握手)

答案:

  1. 客户端发送 SYN;
  2. 服务器响应 SYN+ACK;
  3. 客户端发送 ACK; 三次握手完成后,连接建立。

9. Linux 驱动大致分为哪几类?字符设备驱动由哪部分组成?

驱动类型:

  1. 字符设备驱动
  2. 块设备驱动
  3. 网络设备驱动

字符设备驱动组成:

  • file_operations 操作集
  • register_chrdev 进行注册
  • open/read/write/ioctl 等接口函数实现

10. 实现 strcat 函数

复制代码

1

2

3

4

5

6

7

8

9

10

11

char*strcat(char*strDest, constchar*strSrc) {

char*p = strDest;

while(*p != '\0') {

p++;

}

while(*strSrc != '\0') {

*p++ = *strSrc++;

}

*p = '\0';

returnstrDest;

}

说明:

  • 遍历到 strDest 末尾;
  • 将 strSrc 的字符逐一复制过去;
  • 添加末尾结束符。

更多内容全在下方专栏

全网最受欢迎的嵌入式笔试专栏

笔试专栏包含全部最新的笔试必考考点,非常适合在找工作面经薄弱的同学

3000+订阅还会涨价,提前订阅提前享受,持续更新中。

专栏链接:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

#面试问题记录##满分简历要如何准备?##嵌入式笔面经分享#
全部评论

相关推荐

 先说提前实习,已经是两个月前的事情了。下面说的一些信息不能包含隐私信息,所有一些点就会比较正式和笼统和XX,大概分为,一.你学校学的跟嵌入式跟公司用的有什么不一样。  二.生活上         一、001,工具链上,很多公司都会让公司配置的发的那种电脑禁止联网,因为有一些工具比如说keil,pads,matlab对这种盈利的如果有非法的那种数据传输到网上会起诉的,这种就即使是社区版的就没有用了。一般就是本地断网,资料在一个服务器上,上网的在另一个服务器上,通过内网连接不同服务器。好多说其他软件,比如说加密软件公司也 要买,所以想带资料出去,noway。     002,你在学校里做的基本就是application应用层的(楼主只是本科生,只知道做过这些),比如说小车,机甲大师,飞控,智能家居。具体到公司就有可能会负责其他东西的了。这时候就会要根据行业,公司,岗位具体而分的了。       说的有点空,我只拿我例子,比如说一个没用到过的芯片,他可能只有寄存器手册,但是公司跑的case是公司的老工程师写的,keil上可能没有任何注释或有一点关键的英文注释,这时候你就要返回参考手册查每个位怎么配寄存器,这个寄存器。这个时候就是说,你学stm32什么HAL  LL  标准库,区分的没有意义,他们只是库函数,了解一个然后触类旁通,深入还要寄存器编写。  当然最重要的是C语言基础,看了下CORETX-M3权威指南,一页一页读,感到了有点不同。         还有些,con寄存器,离date寄存器资料中好远,资料又没写关联,默认你会,配了半天,串口打印的数据就没动过……真没办法,又要厚着脸皮问老工程师问出来的,有时候老工程师也很烦,所以我自己也经常总结,和找资料,看有没有过去的例子,做不出才问     002_V2,既上。上次我拿XX卡做相关功能,XX的physical和cmd文档以及流程文档真的是全英文又陌生词汇,你要知道一部分资料在内网,我还没办法用翻译,楼主英语过了四级,六级没过,啃得挺吃力的,还要一边看一边用logic查波形,看懂了一部分。     二、嵌入式研发部很累,要认清这个现实,我是在用命赚钱,(wlb和小康以上的请自动略过这段话)我的工时见图1。实习,一周加了四天到4.5天,有时候周六也要去,算做大小周吧。这个还没算早上早到的和中间休息晚上休息的时间。其实,压力是很大的,我肯定是认同自己能力的,因为我自己是面了这么多也挑了好几个的。但是解决bug和debug能力肯定比不上那些老工程师,这个我只能用时间堆,写日志,周报,总结和列表一些重要的问题问mentor。加班后,离的近的就晚上9点,远的就十点。远的早上还要早起,加班后真的就如一条死狗一样躺在床上 ……20250524记----------------------------------------分割线-----------------------------------------------------------------------更新:        谈一些比较具体的事,比如说XX卡,他在2.0的时候,初始时CLK如果用PLL好像是20MHZ,然后在LOGIC采样,如果用100MHZ,采样率为20MBPS,那么采样时间为5秒,本来CLK应该是占空比0.5的矩形20M。我确定HOST 与SLAVE的通信已开始,配置好电压数据和厂商信息,但是为什么CLK有的占空比为0.3和0.6呢,所以我先复位,再开始单步调试,调试进入WORK状态了,初始的时钟跟WORK的时钟不一样,暂时没测出。后面是想这真的是杂波吗?然后被MT指导,是采样率不够,要先开始1G采样数,拿20M采样率,采样50S,等DEBUG运行再先确认初始成功,再复位,重新运行到断点查看波形。        谈总体上的事,假设是一个大的任务,你做的是一个很小项目的一部分,如果是一个很完善的产品或小产品,就有可能被丢给你完全自己解决。如果说这个任务被分配到这个部分的这个小组,LEADER会将工作分到10左右年工程师手上,再带5到10年和1到3年的,有时,他做的指标可能是市场部做的,也有可能是其他部门做的,你做好后指标对不对,需求搞没搞清楚又会跟其他部门对接,拿软件也好,发邮件也好,确实有时候信息就是沟通的不完全,需求不完全就是你上个指标完成了,突然他会让你加入新的指标,DDL在那突然加入新的指标,是真的做不了一点,我的建议起始就是再三确认需求假设有模糊的地方和工作留痕。        还应该记录并警告一下自己,真的就有时看了一上午和一下午代码,找问题,回去真的很累。可是你想要赚钱,公司不会原地等待你,技术没有进步就是会被替代,你要学习。此贴终结,可能试用期过后,假设过了还会有个帖子,没过就继续找工作去了。       
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务