嵌入式工程师笔试试卷及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式工程师笔试试卷及答案
在嵌入式系统领域,嵌入式工程师是一种非常重要的职业。他们需要掌握硬件和软件技能,以及在资源受限的环境下进行开发的技能。本试卷旨在测试嵌入式工程师的专业知识和技能。
第一部分:选择题
这一部分包括5个选择题,每个问题有4个选项,只有一个选项是正确的。这部分的目的是测试对嵌入式系统的基础知识的掌握。
下列哪个不是嵌入式系统的特点?
A. 硬件资源受限
B. 实时性要求高
C. 软件开发成本低
D. 系统可靠性要求高
答案:C
下列哪个不是嵌入式系统中常用的总线标准?
A. USB
B. I2C
C. RS232
D. HDMI
答案:D
下列哪个不是C语言的关键字?
A. switch
B. case
C. class
D. break
答案:C
下列哪个不是常用的编译器?
A. GCC
B. Keil
C. IAR
D. Visual Studio
答案:D
下列哪个不是常用的调试工具?
A. JTAG
B. GDB
C. SVN
D. Trace32
答案:C
第二部分:简答题
这一部分包括2个简答题,每个问题需要回答2-3个句子。这部分的目的是测试对嵌入式系统的基本原理和通信协议的理解。
什么是中断?中断的作用是什么?
答:中断是指在CPU运行程序的过程中,由于某些事件的发生,需要立即暂停当前程序的执行,转而去执行另一段代码的一种机制。中断的作用是提高CPU 的利用率,增强系统的实时性和可靠性,实现CPU与外设的异步通信。
请简述I2C总线的工作原理。
答:I2C总线是一种串行通信协议,通过两根线SCL和SDA实现设备间的通信。SCL线是时钟线,由主设备控制;SDA线是数据线,用于主设备和从设备之间的数据传输。在传输数据时,主设备先发送起始信号,然后发送从设备地址和读/写标志,接着发送数据或者请求数据,最后发送停止信号。从设备在接收到起始信号后,会根据地址来判断是否需要响应主设备的请求。
第三部分:编程题
这一部分包括2个编程题,需要在规定的环境下编写代码。这部分的目的是测试对嵌入式系统的编程能力。
请用C语言实现一个计算阶乘的函数。
unsigned int factorial(unsigned int n)
{
if(n == 0)
return 1;
else
return n * factorial(n-1);
}
请用C语言实现一个冒泡排序的函数,对数组int arr[10]进行升序排序。
void bubbleSort(int arr[], int n)
{
int i, j, temp;
for(i = 0; i < n-1; i++)
{
for(j = 0; j < n-i-1; j++)
{
if(arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main()
{
int arr[10] = {3, 5, 1, 6, 8, 2, 4, 7, 9, 0}; int i;
bubbleSort(arr, 10);
for(i = 0; i < 10; i++)
printf("%d ", arr[i]);
return 0;
}