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

*1. 在16位系统中,int a[]={10,20,30}, p=&a; 执行 p++ 后,错误说法是( )

答案:A(p向高地址移了一个字节)

📌 解析:

  • 在16位系统中,int2 字节
  • pint *,执行 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 内核、以及实用电路知识等内容。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务