嵌入式软件工程师笔试题总结

某公司笔试真题
多项选择题
(1) 设有如下的宏定义,则执行语句后的输出是()
#define f(x) (x4)
Printf(“%d\n”,2
f(5+3));

参考答案:34
解析:在编译器计算f(5+3)时会这样计算5+3*4=17,将X用5+3替换
(2) 以下关于进程和线程的描述正确的有()
A. 进程切换比线程切换的开销更小
B. 每个线程拥有自己的堆栈和局部变量
C. 进程是程序执行的最小单位
D. 进程有独有的地址空间,而线程没有

参考答案:B C D
可以把线程理解为进程的子集 ,所以A是错误的
每个线程拥有自己的堆栈和局部变量
线程是程序执行的最小单位
进程有独立的地址空间,而线程没有
链接:[https://www.nowcoder.com/questionTerminal/686a6b91356042cab35d7429b4e86547?source=relative]
来源:牛客网
3)关于进程和线程描述正确的是()
A.线程不拥有系统资源,但可以访问隶属于进程的资源
B.在创建或销毁进程时,系统开销明显大于创建或销毁线程时开销
C.进程是调度和拥有资源的基本单位
D.不仅进程可以并发执行,同一个进程的多个线程之间也可以并发执行

参考答案:ABD
解析:
1.线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
2.不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
3.进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于
进程的资源.
4.在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销
明显大于创建或撤消线程时的开销。
*(3) 有函数fun()定义如下,在main函数调用fun函数执行过程中,使用了哪些函数参数传递方式?
Int fun(int a[],s

你可能感兴趣的:(嵌入式软件工程师笔试题总结)