嵌入式笔试刷题(第6天)
6. 指出下面程序的错误
void prinf_base16(unsigned long num) { char *buf; unsigned long temp; int i = 0; while(num > 0) { temp = num % 16; num /= 16; if(temp > 9) buf[i++] = temp - 9 + 'A'; else buf[i++] = temp; } while(i) { putchar(buf[i]); i--; } }
✅ 错误分析:
buf
未分配内存,使用未初始化指针,会段错误;temp
是整数,但没有加'0'
转换为字符;buf[i]
输出应为buf[--i]
否则数组越界。
✅ 正确写法:
void prinf_base16(unsigned long num) { char buf[32]; unsigned long temp; int i = 0; while(num > 0) { temp = num % 16; num /= 16; if(temp > 9) buf[i++] = temp - 10 + 'A'; else buf[i++] = temp + '0'; } while(i) { putchar(buf[--i]); } }
7. 网络编程中并发服务器:多进程 vs 多线程 有什么区别?
✅ 答案:
内存空间 | 各进程独立 | 线程共享内存 |
创建/销毁开销 | 较大(
) | 较小(
) |
数据共享 | 需使用 IPC 机制 | 可直接共享全局变量 |
稳定性 | 单个子进程崩溃不影响其他 | 一个线程崩溃可能影响整个进程 |
编程难度 | 程序结构清晰、调试简单 | 编程复杂,注意线程安全 |
使用场景 | Apache(多进程) | Nginx、游戏服务器(多线程) |
8. 解释 IP 协议的定义及其作用,位于哪个层?TCP 和 UDP 呢?
✅ 答案:
- IP 协议所在层级:网络层作用:提供主机寻址与路由功能,标识设备之间的通信路径使用逻辑地址(IP 地址)
- TCP 协议所在层级:传输层特点:面向连接、可靠传输(顺序、重传、拥塞控制)应用场景:HTTP、FTP、SSH
- UDP 协议所在层级:传输层特点:无连接、不保证可靠传输,速度快应用场景:音视频、DNS、游戏
9. #include <file.h>
与 #include "file.h"
的区别?
✅ 答案:
- #include <file.h>:编译器从系统目录(如 /usr/include)查找头文件。
- #include "file.h":编译器先在当前目录查找,找不到再去系统目录查找。
10. 用预处理指令 #define
声明一个常数,用以表示 1 年中有多少秒(忽略闰年)
✅ 答案:
#define SECONDS_PER_YEAR (365 * 24 * 60 * 60) // 31536000
更多内容全在下方专栏
全网最受欢迎的嵌入式笔试专栏
笔试专栏包含全部最新的笔试必考考点,非常适合在找工作面经薄弱的同学
3000+订阅还会涨价,提前订阅提前享受,持续更新中。
专栏链接:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk
#满分简历要如何准备?##嵌入式笔面经分享##嵌入式测试,嵌入式开发#