嵌入式笔试刷题

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

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

相关推荐

求offer的大角牛:项目也太简单了,你去b站上面找几个好点的项目包装一下简历吧,学校一般的话试着换个简历模板,写两页,把学校写在最后。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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