嵌入式笔试刷题(第12天)
6. 用变量 a
给出下面的定义:
- 一个整型数:
- 一个指向整型数的指针:
- 一个指向指针的指针,它指向的指针是指向一个整型数:
- 一个有 10 个整型数的数组:
- 一个指向函数的指针,它指向的函数参数是字符串,返回类型为整型:
7. C++ 中,分配在栈和堆中的分别是什么数据?
答案:
- 栈(Stack):局部变量、函数参数
- 堆(Heap):动态分配的内存(通过
new
或malloc
)
8. 简述“内存对齐”问题:
答案:
内存对齐是指数据在内存中的地址必须是其类型大小的整数倍。其作用是提高 CPU 访问效率,避免跨字节或跨字节块访问导致的性能问题。内存对齐通过插入填充字节来实现。
9. 程序什么时候应该使用多线程,什么时候使用单线程?
答案:
- 使用多线程:存在耗时操作(如 I/O、网络)需要响应多个任务并行处理多核 CPU 下可提升性能
- 使用单线程:程序逻辑简单没有耗时阻塞操作对调试和同步要求高的场合
10. 编程题:传入一个 8 位无符号整数,生成其二进制反转字符串
示例:
输入:177(二进制为 10110001
)
输出:"10001101"
答案(C 实现):
char* reverseBits(unsigned char num) { static char result[9]; for (int i = 0; i < 8; i++) { result[i] = ((num >> i) & 1) ? '1' : '0'; } result[8] = '\0'; return result; }#嵌入式测试,嵌入式开发##满分简历要如何准备?##面试经验谈#