嵌入式笔试刷题(第12天)

6. 用变量 a 给出下面的定义:

  1. 一个整型数:
  2. 一个指向整型数的指针:
  3. 一个指向指针的指针,它指向的指针是指向一个整型数:
  4. 一个有 10 个整型数的数组:
  5. 一个指向函数的指针,它指向的函数参数是字符串,返回类型为整型:

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;
}

#嵌入式测试,嵌入式开发##满分简历要如何准备?##面试经验谈#
全部评论

相关推荐

05-27 14:57
西北大学 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务