岗位:嵌入式软件工程师
题型:单选(2' * 10)、多选(3' * 5)、填空(4' * 4)、简答(6' * 3)、编程( * 2 = 31')
时间:B卷20180708 19:30 --- 21:00(90分钟)
A卷20180706
p.s.:总体上来说,不难。但有些细节上的小知识点还是无法把控,扎实度还不够。
1、单选(十题20分)
1-1 考察DDR特性
1-2 sizeof union和struct
1-3 sizeof __attribute__(packed)
1-4 sizeof二维数组
1-5 函数指针数组 int (*int a[10])(int)
1-6 const char *p与char * const p;
1-7 字符串常量与字符串数组的指针值()
1-8 读取cache时如何保持一致性(fetch? writebak?load? read?)
1-9 C库函数assert()在debug模式及release模式
1-10 中断context保存在哪里(堆?栈?数据内存?ROM?)
2、多选(五题15分)
2-1 考察sizeof及offsetof
2-2
2-3
2-4 哪几项是实时系统(VxWorks、freeRTos)
2-5 保护关键区域(关中断?关抢占?锁?)
3、填空(四题16分)
3-1 考察sizeof
3-2 考察memset(uint32_t 数组,memset int, printf %d)
3-3 考察unsigned int相减
3-4 进程间通信方式
管道(无名管道、命名管道);信号;信号量;消息队列;共享内存;套接字。
4、简答(三题18分)
4-1 考察for( ; ; )括号内函数的调用次数;
4-2 读取文件时,mmap比fread快。为什么
4-3 实时系统、非实时系统的优缺点,及如何选用
5、编程(两题31分)
5-1 删除链表尾部的N个节点(节点的成员中有 *next, *pre指针)
5-2 链表反转