嵌入式笔试刷题(第60天)
11.【多选】若有定义:int a[3][4];
能够表示 a[1][1]
的是( )
选项:A. *(a[1] + 1)
B. *(&a[1][1])
C. (*(a+1))[1]
D. *(a + 5)
答案:A B C
解析:
- A:
a[1]
是指向第2行的首地址,加1为第2行的第2个元素 - B:
&a[1][1]
取地址再解引用等价于值 - C:
a+1
是第2行地址,(*(a+1))[1]
是第2行第2列 - D:
a + 5
超出了二维数组范围
12.【多选】int a; int *p = &a;
以下说法正确的是( )
选项:A. *(p++) == a++
B. &*p == &a
C. (*p)++ == a++
D. *&a == a
答案:B C D
解析:
- A:
p++
后 p 不再指向 a,错误 - B:
&*p
与&a
等价 - C:解引用后自增,与
a++
比较无误 - D:
*&a
等价于a
13.【多选】以下表达式中,哪些是正确的( )
选项:A. a += (a++)
B. a += (++a)
C. (a++) += a;
D. (++a) += (a++);
答案:A B D
解析:
- A 和 B:虽存在顺序问题但语法允许
- C:
a++
是右值,不能作为左值 - D:前置++结果为左值,合法表达式
14.【多选】下列关于进程和线程的叙述中,错误的是( )
选项:A. 一个进程只可拥有一个线程B. 一个线程只可拥有一个进程C. 一个进程可拥有若干个线程D. 一个线程可拥有若干个进程
答案:A B D
解析:
- C 正确
- A 错,进程可拥有多个线程
- B 错,线程属于进程,不能拥有进程
- D 错,线程是进程中的执行单元,不拥有进程
15.【多选】死锁的必要条件是( )
选项:A. 互斥B. 请求又保持C. 非剥夺D. 循环等待
答案:A B C D
解析:四个条件为死锁必要条件,称为“死锁产生的四个必要条件”。
16. 判断题
① 宏定义返回
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。