嵌入式笔试刷题(第49天)
*1. 在16位系统中,int a[]={10,20,30}, p=&a; 执行 p++ 后,错误说法是( )
✅ 答案:A(p向高地址移了一个字节)
📌 解析:
- 在16位系统中,
int
占 2 字节; p
是int *
,执行p++
会让指针向后移动 一个 int 的大小(2 字节);- 正确说法是:向高地址移动了两个字节(选项C),与
a+1
等价(选项D); - ❌ A 说的是“一个字节”,不正确。
2. b=p[5],结果是( )
定义:
int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], b; b = p[5];
✅ 答案:D(9)
📌 解析:
p = &a[3]
,即从a[3] = 4
开始;p[5] = *(p + 5) = a[3+5] = a[8] = 9
*3. char s="abcde"; s+=2; printf("%d", s); 输出为( )
✅ 答案:C(字符 'c' 的地址)
📌 解析:
s += 2
,现在s
指向字符串"cde"
;%d
打印的是s
的地址(不是内容);- 编译器可能警告,输出为地址(整数),不是字符本身;
- ✅ 正确理解应是:字符 'c' 的地址
4. pthread 相关说法正确的是(多选)
✅ 答案:A、D
📌 解析:
- A ✅
pthread_create
用于创建线程; - B ❌
usleep(50*1000)
不保证严格 50ms,系统调度有误差; - C ❌ 多线程访问未加锁变量会有数据竞争,但不会编译失败;
- D ✅ 自旋锁(
pthread_spi
)适合多线程保护共享变量
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。