嵌入式软件笔试题

合集下载

嵌入式软件开发笔试题目

嵌入式软件开发笔试题目

嵌入式软件开发笔试题目
嵌入式软件开发笔试题目主要考察以下几个方面:
1.嵌入式系统基础:包括嵌入式系统的概念、特点、结构、组成、开发流程等。

2.嵌入式软件设计:包括嵌入式软件的设计方法、设计原则、设计规范等。

3.嵌入式软件开发语言:包括C、C++、Java等嵌入式软件开发语言的语法、关
键字、库函数等。

4.嵌入式软件开发工具:包括编译器、调试器、仿真器等嵌入式软件开发工具
的使用方法。

5.嵌入式软件开发常见问题:包括内存管理、中断处理、多任务处理等嵌入式
软件开发常见问题的解决方法。

以下是一些常见的嵌入式软件开发笔试题目:
嵌入式系统基础
1.什么是嵌入式系统?
2.嵌入式系统的特点是什么?
3.嵌入式系统的结构是什么?
4.嵌入式系统的组成是什么?
5.嵌入式系统的开发流程是什么?
嵌入式软件设计
1.嵌入式软件的设计方法有哪些?
2.嵌入式软件的设计原则有哪些?
3.嵌入式软件的设计规范有哪些?
嵌入式软件开发语言
1.C语言的关键字有哪些?
2.C++语言的关键字有哪些?
3.Java语言的关键字有哪些?
嵌入式软件开发工具
1.编译器的功能是什么?
2.调试器的功能是什么?
3.仿真器的功能是什么?
嵌入式软件开发常见问题
1.内存管理的策略有哪些?
2.中断处理的流程是什么?
3.多任务处理的策略有哪些?。

嵌入式笔试题及答案

嵌入式笔试题及答案

嵌入式笔试题及答案一、单选题(每题2分,共20分)1. 嵌入式系统通常指的是:A. 通用计算机系统B. 专用计算机系统C. 便携式计算机系统D. 网络计算机系统答案:B2. 下列哪个不是嵌入式系统的特点:A. 实时性B. 资源受限C. 可扩展性D. 专用性答案:C3. 在嵌入式系统中,通常使用哪种类型的处理器:A. 通用处理器B. 微处理器C. 数字信号处理器D. 图形处理器答案:B4. 嵌入式系统的开发流程不包括以下哪一项:A. 需求分析B. 系统设计C. 硬件选择D. 软件编程答案:C5. 以下哪个不是嵌入式操作系统的功能:A. 任务调度B. 内存管理C. 文件系统D. 网络通信答案:D6. 在嵌入式系统中,中断服务程序的作用是:A. 执行系统初始化B. 处理系统异常C. 响应外部事件D. 执行系统监控答案:C7. 以下哪个不是嵌入式系统的硬件组成部分:A. 微处理器B. 存储器C. 输入/输出设备D. 操作系统答案:D8. 嵌入式系统中的外设驱动程序的主要功能是:A. 控制外设的电源B. 实现系统与外设的通信C. 管理外设的内存D. 处理外设的错误答案:B9. 在嵌入式系统中,以下哪个不是常用的编程语言:A. C语言B. C++C. JavaD. Assembly答案:C10. 以下哪个不是嵌入式系统的开发工具:A. 编译器B. 调试器C. 仿真器D. 网络浏览器答案:D二、多选题(每题3分,共15分)11. 嵌入式系统的开发需要考虑以下哪些因素:A. 系统性能B. 成本控制C. 功耗管理D. 软件兼容性答案:A, B, C12. 嵌入式系统的软件包括以下哪些部分:A. 引导程序B. 操作系统C. 应用程序D. 驱动程序答案:A, B, C, D13. 嵌入式系统的硬件设计包括以下哪些内容:A. 微处理器选择B. 存储器设计C. 外设接口D. 电源管理答案:A, B, C, D14. 嵌入式系统的调试方法包括:A. 单元测试B. 集成测试C. 系统测试D. 性能测试答案:A, B, C, D15. 嵌入式系统的实时性要求包括:A. 确定性B. 可预测性C. 可重复性D. 可扩展性答案:A, B三、判断题(每题1分,共10分)16. 嵌入式系统总是需要操作系统的支持。

嵌入式笔试题

嵌入式笔试题

嵌入式笔试题在当今科技快速发展的背景下,嵌入式系统成为人们日常生活中不可或缺的一部分。

嵌入式系统广泛应用于智能手机、可穿戴设备、汽车电子、家用电器等各个领域。

为了提高嵌入式系统的工程能力,以下是一些嵌入式系统相关的笔试题目,帮助大家巩固相关知识。

一、单项选择题1. 软件开发中,以下那种语言属于编译型语言?A. PythonB. C++C. JavaScriptD. Ruby2. 嵌入式系统可以分为硬件和软件两部分。

以下哪一项属于嵌入式系统的软件部分?A. CPUB. RAMC. 操作系统D. 电源3. 在嵌入式系统中,以下哪一种通信协议被广泛应用于设备间的数据传输?A. HTTPB. FTPC. USBD. DNS4. 嵌入式系统中最常用的开发语言是什么?A. CB. PythonC. JavaD. Ruby5. 在嵌入式系统的开发过程中,以下哪个阶段主要涉及硬件设计?A. 需求分析B. 软件开发C. 硬件设计D. 测试与验证二、填空题1. 嵌入式系统是一种______________的计算机系统。

2. 嵌入式系统通常由______、__________和________组成。

3. 常用的嵌入式操作系统有____________、_________、__________等。

4. 在嵌入式系统中,CPU的作用是______________。

5. 嵌入式系统的节能设计可以通过_______________实现。

三、简答题1. 请简要解释什么是中断?2. 嵌入式系统中的RTOS是什么意思?简述其作用。

3. 请简要解释什么是嵌入式系统的实时性要求?4. 嵌入式系统的可靠性是指什么?如何提高嵌入式系统的可靠性?5. 嵌入式系统的性能指标有哪些?请列举并解释。

四、编程题请使用C语言编写一个简单的嵌入式系统应用程序,在LCD显示屏上循环显示数字1到9,每个数字显示1秒钟,然后重复该过程。

附加题:请将上述应用程序在实际的硬件平台上进行调试和运行。

(完整word版)嵌入式软件工程师笔试题

(完整word版)嵌入式软件工程师笔试题

笔试题1:设float a=2, b=4, c=3;,以下C语言表达式与代数式 (a+b)+c计算结果不一致的是A.(a+b)*c/2B.(1/2)*(a+b)*cC.(a+b)*c*1/2D.c/2*(a+b)参考答案:B,因为a,b,c三个变量都是浮点数,所以在B答案中其结果是0,因为在计算1/2是就是0,如果改成1/2.0就正确了。

2:为了向二进制文件尾部增加数据,打开文件的方式应采用A.″ab″B.″rb+″C.″wb″D.″wb+″参考答案:D3:下述程序执行后的输出结果是#includemain(){int x=’f';printf(“%c\n”,’a’+(x-‘a’+1));}A.gB.hC.iD.j参考答案:A4:C语言中,下列运算符优先级高的是A.!B.%C.>>D.= =参考答案:A5:数组定义为“ int a [ 4 ] ; ”,表达式 ( ) 是错误的。

A.*aB.a [ 0 ]C.aD.a++参考答案:D6:执行语句“ k=7>>1; ”后,变量 k 的当前值是A.15B.31C.3D.1参考答案:C7:定义函数时,缺省函数的类型声明,则函数类型取缺省类型A.voidB.charC.floatD.int参考答案:D8:若main()函数带参数,参数个数多是A.0B.1C.2D.3参考答案:C 只知道有定义形式main(int argc,char* argv[])) 9:若有宏定义:#define MOD(x,y) x%y则执行以下语句后的输出结果是int a=13,b=94;printf(″%d\n″,MOD(b,a+4));A.5B.7C.9D.11参考答案:B10:下列各个错误中,哪一个不属于编译错误A.改变 x 原值 3 为 5 ,写作“ x==5 ;”B.花括号不配对C.复合语句中的后一条语句后未加分号D.变量有引用、无定义11:下列程序段运行后, x 的值是( )a=1;b=2;x=0;if(!( — a))x — ;if(!b)x=7;else ++x;A.0B.3C.6D.7参考答案:A12:设#define N 3#define Y(n) ((N+1)*n)则表达式2*(N+Y(5+1))的值是A.42B.48C.54D.出错参考答案:B Y(5+1) 传递过去的应该是6,而不是简单的把5+1给替换掉13:若定义了char ch[]={″abc\0def″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是A.defB.dC.eD.0参考答案:C14:下列转义字符中错误的是A.′\000′B.′\14′C.′\x111′D.′\2′参考答案:C error C2022: ‘273’ : too big for character15:算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算16:设#define N 3#define Y(n) ((N+1)*n)则表达式2*(N+Y(5+1))的值是A.42B.48C.54D.出错参考答案:B17:表达式strcmp( “ 3.14 ”,“ 3.278 ” ) 的值是一个A.非零整数B.浮点数C.0D.字符参考答案: A18:设struct{ short a;char b;float c;}cs;则sizeof(cs)的值是A.4B.5C.6D.7参考答案: D 字节对齐的话应该是819:若变量已正确定义,表达式( j=3 , j++ )的值是A.3B.4C.5D.0参考答案:A20:C 语言中运算对象必须是整型的运算符是A.%B./C.!参考答案:A21:多态类中的虚函数表是Compile-Time,还是Run-Time时建立的?22:01 #include0203 void main()0405 { int c;0607 while ((c=getchar())!= ′\ n ′ )0809 switch(c - ′ 2 ′ )1011 { case 0:1213 case 1:putchar(c+4);break;1415 case 2:putchar(c+4);break;1617 case 3:putchar(c+3);break;1819 default:putchar(c+2);break;2021 }2223 printf( ″\ n ″ );2425 }运行时输入: 2473 ,输出结果:参考答案:6897 VC++6.0测试过23:写一语句实现x是否为2的若干次幂的判断。

嵌入式面试笔试题

嵌入式面试笔试题

1、在嵌入式系统中,以下哪个组件负责执行存储在内存中的指令?A. 微处理器(答案)B. 内存芯片C. 输入设备D. 输出设备2、嵌入式系统中,Bootloader的主要功能是什么?A. 加载并启动操作系统(答案)B. 提供用户界面C. 管理文件系统D. 执行应用程序3、以下哪种总线类型在嵌入式系统中常用于连接低速外设?A. PCIB. USB 3.0C. I2C(答案)D. HDMI4、在嵌入式Linux系统中,交叉编译的目的是什么?A. 在目标平台上直接编译代码B. 在一个平台上编译代码,以在另一个不同架构的平台上运行(答案)C. 提高编译速度D. 减少编译产生的二进制文件大小5、以下哪个协议常用于嵌入式设备之间的低功耗无线通信?A. Bluetooth LE(答案)B. EthernetC. HDMID. USB6、在嵌入式软件开发中,中断服务程序(ISR)的主要作用是?A. 处理外部事件或异常情况,快速响应并执行特定任务(答案)B. 管理内存分配C. 控制设备电源状态D. 实现多任务并发执行7、以下哪种存储器类型在嵌入式系统中通常用作高速缓存?A. SRAM(答案,静态随机访问存储器,常用于高速缓存)B. EEPROMC. SD卡D. 硬盘8、在嵌入式系统设计中,使用看门狗定时器的主要目的是?A. 防止程序跑飞或死循环,提高系统可靠性(答案)B. 实现精确定时功能C. 控制设备开关机D. 测量系统功耗9、以下哪个工具在嵌入式开发中常用于调试和分析程序?A. 逻辑分析仪(答案)B. 示波器C. 万用表D. 频谱分析仪10、在嵌入式Linux内核配置中,以下哪个选项通常用于裁剪内核功能,以减少内存占用和提高性能?A. make menuconfig(答案,用于配置内核选项,进行裁剪)B. make cleanC. make allD. make install。

嵌入式软件开发岗位招聘笔试题及解答(某大型国企)

嵌入式软件开发岗位招聘笔试题及解答(某大型国企)

招聘嵌入式软件开发岗位笔试题及解答(某大型国企)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、在C语言中,volatile关键字的主要作用是什么?A. 使变量成为全局变量B. 告诉编译器该变量可能会被外部因素改变,从而阻止优化C. 使变量成为常量D. 加快变量访问速度2、关于ARM架构处理器,以下哪个描述是正确的?A. ARM架构处理器仅支持32位指令集B. 所有的ARM处理器都支持Thumb-2技术C. ARM处理器采用的是RISC设计理念D. ARM处理器不能运行Linux操作系统3、嵌入式软件开发岗位笔试题及解答(某大型国企)一、单项选择题(每题2分,共20分)3、以下哪个不是嵌入式系统设计中常用的实时操作系统(RTOS)?A. VxWorksB. LinuxC. FreeRTOSD. Windows CE4、在嵌入式软件开发中,以下哪个概念不是用于描述硬件和软件之间接口的标准?A. 总线协议B. 寄存器映射C. 驱动程序D. API5、在ARM架构中,哪个寄存器通常被用作链接寄存器来保存子程序返回地址?A. R0B. R13 (SP)C. R14 (LR)D. R15 (PC)6、关于嵌入式系统的实时性,下列说法正确的是:A. 实时系统必须保证所有任务都能在指定的时间内完成B. 实时系统仅关注任务的平均响应时间C. 软实时系统对响应时间的要求比硬实时系统更加严格D. 实时系统中,任务的优先级可以根据任务的紧迫程度动态调整7、以下哪个协议不属于嵌入式系统中常用的网络通信协议?A. TCP/IPB. CAN(Controller Area Network)C. BluetoothD. SPI(Serial Peripheral Interface)8、在嵌入式软件开发中,以下哪个概念通常用来描述硬件和软件之间的接口?A. 驱动程序B. 硬件抽象层(HAL)C. 用户界面(UI)D. 操作系统内核9、在嵌入式系统开发过程中,以下哪种编程语言通常被认为最适合用于硬件抽象层(HAL)的开发?A. JavaB. C++C. CD. Python 10、以下关于ARM架构的描述,哪一项是正确的?A. ARM架构是一种RISC(精简指令集计算机)架构。

嵌入式软件开发岗位招聘笔试题及解答(某大型国企)2025年

嵌入式软件开发岗位招聘笔试题及解答(某大型国企)2025年

2025年招聘嵌入式软件开发岗位笔试题及解答(某大型国企)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、在嵌入式软件开发中,以下哪个不是常见的硬件接口?A. SPI接口B. USB接口C. UART接口D. I2C接口2、嵌入式系统中,下列哪种编程语言最适合用于开发实时操作系统?A. JavaB. PythonC. C++D. JavaScript3、嵌入式系统中,以下关于ARM架构描述错误的是:A. ARM架构低功耗、高性能B. ARM架构主要用于移动计算和嵌入式领域C. ARM架构不支持多媒体和DSP功能D. ARM架构具有灵活的技术授权模式4、在嵌入式软件开发中,关于实时操作系统的描述错误的是:A. 实时操作系统具有高度的响应性和确定性B. 实时操作系统主要应用于实时性要求不高的场景C. 实时操作系统可以确保任务的及时完成和响应需求D. 实时操作系统常用于工业控制、医疗设备等领域5、在嵌入式软件开发中,以下哪种编程语言因其高性能和对低级硬件的控制能力而被广泛使用?A. PythonB. JavaC. CD. JavaScript6、嵌入式系统的核心特点是:A. 计算机视觉B. 无线通信C. 实时响应D. 数据存储7、在嵌入式软件开发中,以下哪个选项是实时操作系统的特点?A. 具有固定的时间表B. 可以根据需要动态调整任务优先级C. 仅适用于单处理器系统D. 不支持多任务处理8、在嵌入式系统中,通常使用哪种类型的存储器?A. 硬盘驱动器C. 光盘D. 闪存9、嵌入式软件开发中,关于内存管理的说法错误的是:A. 动态内存分配是指在程序运行时动态地分配或释放内存。

B. 静态内存分配在程序开始运行时进行,并在程序结束时释放。

C. 内存泄漏是指分配给程序的内存没有得到及时回收,导致内存占用持续增长。

D. 为了避免内存溢出,应该尽可能多地分配内存空间。

10、关于嵌入式系统的说法,错误的是:A. 嵌入式系统通常运行在特定硬件平台上,并对硬件环境有较强依赖性。

嵌入式考试题目及答案

嵌入式考试题目及答案

嵌入式考试题目及答案一、单选题(每题2分,共20分)1. 嵌入式系统是指()。

A. 嵌入到其他系统中的专用计算机系统B. 嵌入到其他系统中的通用计算机系统C. 嵌入到其他系统中的操作系统D. 嵌入到其他系统中的硬件系统答案:A2. 以下哪个不是嵌入式系统的典型应用领域?()A. 消费电子B. 工业控制C. 航空航天D. 个人电脑答案:D3. 在嵌入式系统中,以下哪个不是常用的处理器类型?()A. 微控制器(MCU)B. 数字信号处理器(DSP)C. 微处理器(MPU)D. 网络处理器(NP)答案:D4. 以下哪个不是嵌入式系统的开发工具?()A. 编译器B. 调试器C. 仿真器D. 打印机答案:D5. 在嵌入式系统中,以下哪个不是操作系统的功能?()A. 任务调度B. 内存管理C. 文件系统D. 网络通信答案:D6. 以下哪个不是嵌入式系统的硬件组成?()A. 处理器B. 存储器C. 输入/输出设备D. 显示器答案:D7. 在嵌入式系统中,以下哪个不是软件组成?()A. 操作系统B. 应用程序C. 驱动程序D. 打印机驱动答案:D8. 以下哪个不是嵌入式系统的开发流程?()A. 需求分析B. 系统设计C. 编码D. 测试答案:D9. 在嵌入式系统中,以下哪个不是调试技术?()A. 断点B. 单步执行C. 代码覆盖率分析D. 性能优化答案:D10. 以下哪个不是嵌入式系统的可靠性要求?()A. 容错性B. 可预测性C. 可维护性D. 可扩展性答案:D二、多选题(每题3分,共15分)11. 嵌入式系统的特点是()。

A. 实时性B. 专用性C. 可扩展性D. 低功耗答案:ABD12. 嵌入式系统的开发工具包括()。

A. 编译器B. 调试器C. 仿真器D. 打印机答案:ABC13. 嵌入式系统的硬件组成包括()。

A. 处理器B. 存储器C. 输入/输出设备D. 显示器答案:ABC14. 嵌入式系统的软件组成包括()。

嵌入式软件工程师笔试题

嵌入式软件工程师笔试题

嵌入式软件工程师笔试题1、将一个字符串逆序2、将一个链表逆序3、计算一个字节里(byte)里面有多少bit被置14、搜索给定的字节(byte)5、在一个字符串中找到可能的最长的子字符串6、字符串转换为整数7、整数转换为字符串1、c51单片机的串口异步通信和同步通信的区别,说说他们的优缺点。

2、C51单片机的数据总线和地址总线是如何复用的,说明原理。

3、C51单片机的绝对寻址范围是多少k?4、说明下面的寻址方式(1)MOV A , #30H (2)MOV A,@R0(3)ADD A , R4 (4)MOV A+@DPTR 5、写出下面分别是什么指针?(1)int *a[10]; (2)int (*a)[10];(3)int (*P)(int) ; (4)int (*a[10])(int);6、void swap(int a,int b){int temp;temp = a;a=b;b=temp;}main(void){int x="3",y=4;swap(x,y);}问上面程序执行完后x= ?,y=?7、typedef struct test{int i;short s;char c;union{int a;short b;}}example ;int y ;y = sizeof(example);请问在TC环境下,y=?8、编程实现数组的逆置,例如,“hello,world!”逆置后为“!dlrow,olleh”。

9、你认为嵌入式操作系统包括哪些部分?说说实时操作系统有哪些特点。

10、冯诺依曼结构的计算机由哪几部分组成?11、说说程序,进程,线程的区别。

12、说说你怎样理解程序= 数据+ 结构+ 算法13、根据函数原型编程实现一个数组,按从大到小的冒泡排序。

void tibbule(int a[],int n);//a[]为数组,n为数组长度14、OSI有哪几层?tcp/ip包括哪几层?15、编程实现一个双链表的节点插入和删除。

嵌入式软件 笔试题

嵌入式软件 笔试题

嵌入式软件工程师笔试题姓名:得分:一、常识理论题1、简述嵌入式操作系统有哪些,你用过哪几种,简述其特点、优势及劣势?(5分)2、请描述控制及提高嵌入式软件质量有哪些办法,在开发过程中怎么才能保证嵌入式软件的可靠性?(5分)3、你认为在嵌入式开发过程中需要哪些过程控制文档?(5分)4、用变量a给出下面的定义。

(8分)a)一个整型数(An integer)b)一个指向整型数的指针(A pointer to an integer)c)一个指向指针的指针,它指向的指针是指向一个整型数(A pointer to a pointer to aninteger)d)一个有10个整型数的数组(An array of 10 integers)e)一个有10个指针的数组,该指针是指向一个整型数的。

(An array of 10 pointers tointegers)f)一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to afunction that takes an integer as an argument and returns an integer)h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(An array of ten pointers to functions that take an integer argument and return an integer )5、在嵌入式系统中,动态分配内存可能发生的问题是什么?请给出下面这段代码的输出结果。

(10分)char *ptr;if ((ptr = (char *)malloc(0)) ==NULL)puts("Got a null pointer");else puts("Got a valid pointer");6、请解释下面这段语句的意思及区别?(10分)#define dPS struct s *typedef struct s * tPS;dPS p1,p2;tPS p3,p4;7、请解释关键字static、const、volatile各自的含义及作用,请解释下面这个函数有什么错误?(10分)int square(volatile int *ptr){return *ptr * *ptr;}8、请指出下面代码是什么意思,指出其中的错误。

嵌入式软件笔试题(含答案)

嵌入式软件笔试题(含答案)
例子:当N =5,打印出下面的图形:
X X X X X
X Y Y Y X
X Y 0 Y X
X Y Y Y X
X X X X X
22:谈谈COM的线程模型。然后讨论进程内/外组件的差别。
23:多态类中的虚函数表是Compile-Time,还是Run-Time时建立的?
参考答案:
虚拟函数表是在编译期就建立了,各个虚拟函数这时被组织成了一个虚拟函数的入口地址的数组.
A.15
B.31
C.3
D.1
参考答案:C
7:定义函数时,缺省函数的类型声明,则函数类型取缺省类型
A.void
B.char
C.float
DHale Waihona Puke int 参考答案:D 8:若main()函数带参数,参数个数最多是
A.0
B.1
C.2
D.3
参考答案:C 只知道有定义形式main(int argc,char* argv[]))
#define N 3
#define Y(n) ((N+1)*n)
则表达式2*(N+Y(5+1))的值是
A.42
B.48
C.54
D.出错
参考答案:B Y(5+1) 传递过去的应该是6,而不是简单的把5+1给替换掉
13:若定义了char ch[]={″abc\0def″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是
(3)将栈B的栈顶元素pop出;这样实现的队列入队和出队的平摊复杂度都还是O(1),
26:写一语句实现x是否为2的若干次幂的判断。

嵌入式软件开发岗位招聘笔试题及解答(某大型央企)2025年

嵌入式软件开发岗位招聘笔试题及解答(某大型央企)2025年

2025年招聘嵌入式软件开发岗位笔试题及解答(某大型央企)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、嵌入式系统中最常用的操作系统是_____ 。

A. LinuxB. Windows CEC. VxWorksD. Android2、在嵌入式系统中,中断是指当系统内部或者外部发生特定的触发事件时,处理器自动暂停当前正在运行的程序,转去处理这个事件,处理完毕后再返回原程序继续执行。

中断的目的是 _____ 。

A. 提高CPU的运行效率B. 减少程序的代码量C. 防止程序死锁D. 响应及时的外部事件3.在嵌入式系统中,以下哪个描述不属于RTOS(实时操作系统)的特点?A. 提供实时的响应性能B. 提供图形界面支持用户操作体验提升C. 可应用于多种嵌入式硬件平台D. 任务调度具有优先级特性4.在嵌入式软件开发中,关于ARM架构的处理器,以下哪个说法是错误的?A. ARM架构处理器功耗较低,适合嵌入式应用。

B. ARM架构处理器不支持浮点运算,需要额外硬件支持。

C. ARM架构处理器有丰富多样的处理器系列,满足不同应用场景需求。

D. ARM架构处理器的指令集采用RISC(精简指令集)设计。

5、数字、嵌入式系统中CPU的初始化过程包括哪些步骤?()A. 中断系统初始化B. 系统总线初始化C. 内存管理单元初始化D. 时钟管理初始化6、数字、在嵌入式系统中,以下哪个指令可以被中断打断?()A. 读写内存的指令B. 浮点运算指令C. 输入输出指令D. 时钟选择指令7、嵌入式系统中,以下哪个高性能FPGA最适合用于高性能数据处理和信号处理任务?A. Xilinx SpartanB. Xilinx Virtex-7C. Altera iCE40D. Altera Stratix V8、在嵌入式Linux系统中,当PCB上向外发送脉冲信号时,推荐使用的硬件层模块是?A. gpioB. timerC. serialD. pwm9.在嵌入式系统中,通常使用哪种类型的处理器?A. 大型通用处理器B. 嵌入式微控制器C. 图形处理器D. 数字信号处理器 10.在嵌入式软件开发中,哪种编程语言是最常用的?A. C++B. JavaC. PythonD. JavaScript二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下关于嵌入式软件开发的叙述哪些是正确的?(多选)A. 嵌入式软件通常需要在限定的资源环境下运行。

嵌入式软件笔试选择题

嵌入式软件笔试选择题

嵌入式软件笔试选择题一、单选题1、以下哪个不是嵌入式系统常用的处理器架构?A. ARMB. x86C. AVRD. MIPS2、嵌入式系统通常需要考虑的严格要求有哪些?A. 响应时间B. 可靠性C. 可维护性D. 高性能3、嵌入式系统开发中,通信协议与传输方式有关的层次有哪些?A. 应用层、传输层、物理层B. 应用层、传输层、网络层C. 应用层、传输层、数据链路层D. 应用层、网络层、数据链路层4、以下哪个不是嵌入式系统开发常用的编程语言?A. C++B. PythonC. JavaD. Assembly5、下列哪种外设常常用于数据交互?A. 蜂鸣器B. 串口C. 红外线接口D. 电机二、多选题1、以下哪些是嵌入式开发中的调试工具?A. JTAGB. ICEC. Trace PortD. DAP2、以下哪些会影响嵌入式系统的性能?A. 系统架构B. 外设硬件性能C. 调度算法D. 编程语言3、以下哪些是嵌入式系统开发中的常见软件设计模式?A. MVCB. ObserverC. SingletonD. Abstract Factory4、作为开发人员,以下哪些是提高嵌入式系统质量的有效方法?A. 设计模式应用B. 单元测试C. 管理流程D. 代码复用5、以下哪些是常见的嵌入式系统中的通信协议?A. TCP/IPB. CANC. USBD. I2C三、判断题1、采用消息队列能够提高嵌入式系统的并发性,提升系统的性能。

(√)2、嵌入式系统的操作系统一般都采用Linux kernel。

(✘)3、在嵌入式系统中,设备驱动程序为用户提供访问硬件设备的接口。

(√)4、嵌入式系统的开发过程与传统软件的开发流程相同。

(✘)5、在嵌入式系统中,堆和栈的大小是可调的,一般需要根据实际情况进行设置。

(√)。

嵌入式软件工程师 经典笔试题

嵌入式软件工程师 经典笔试题
(一) 1 什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种 情况下,可以将所有包含文件预编译为一个预编译头。
2 char * const p
char const * p
const char *p 上述三个有什么
6 main() {
int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); } 答案:2 5 分析:*(a+1)就是 a[1],*(ptr-1)就是 a[4],执行结果是 2,5 。&a+1 不是首地址+1, 系统会认为加一个 a 数组的偏移,是偏移了一个数组的大小(本例是 5 个 int) int *ptr=(int *)(&a+1); 则 ptr 实际是&(a[5]),也就是 a+5 原因如下: &a 是数组指针, 其类型为 int (*)[5]; 而指针加 1 要根据指针类型加上一定的值,不同类型的指针+1 之 后增加的大小不同 a 是长度为 5 的 int 数组指针,所以要加 5*sizeof(int) 所以 ptr 实际是 a[5] 但是 prt 与(&a+1)类型是不一样的(这点很重要) 所以 prt-1 只会减去 sizeof(int*)。 a,&a 的地址是一样的,但意思不一样,a 是数组首地址,也就是 a[0] 的地址,&a 是对象(数组)首地址,a+1 是数组下一元素的地址,即 a[1],&a+1 是下一个 对象的地址,即 a[5].

嵌入式笔试题及答案

嵌入式笔试题及答案

嵌入式笔试题及答案一、选择题(每题2分,共40分)1. 下面哪个不是嵌入式系统的特点?A. 实时性强B. 资源受限C. 包含网络通信功能D. 电源自主供电答案:C2. 嵌入式系统的一个主要应用领域是:A. 医疗设备B. 大型工业控制C. 智能手机D. 电子游戏答案:A3. 在嵌入式系统开发中,通常使用哪种编程语言?A. PythonB. JavaC. C/C++D. JavaScript答案:C4. 嵌入式系统的主要硬件组成部分是:A. 处理器、内存、外设B. 显示屏、键盘、鼠标C. 摄像头、扬声器、麦克风D. 电源、机箱、风扇答案:A5. 在嵌入式系统开发中,以下哪个是常用的实时操作系统?A. WindowsB. LinuxC. AndroidD. RTOS答案:D...二、编程题(共60分)请使用C语言完成以下题目:1. 编写一个函数,判断一个数是否为素数。

函数原型为: int isPrime(int n);答案:```c#include <stdio.h>int isPrime(int n) {int i;for (i = 2; i <= n/2; i++) {if (n % i == 0) {return 0; // 不是素数}}return 1; // 是素数}int main() {int n;printf("请输入一个整数:");scanf("%d", &n);if (isPrime(n)) {printf("%d是素数\n", n);} else {printf("%d不是素数\n", n);}return 0;}```2. 编写一个函数,计算n的阶乘。

函数原型为: int factorial(int n);答案:```c#include <stdio.h>int factorial(int n) {if (n == 0) {return 1;} else {return n * factorial(n - 1);}}int main() {int n;printf("请输入一个整数:");scanf("%d", &n);printf("%d的阶乘为:%d\n", n, factorial(n));return 0;}```...三、简答题(每题10分,共30分)1. 简述嵌入式系统的优缺点。

嵌入式软件开发岗位招聘笔试题及解答(某大型国企)

嵌入式软件开发岗位招聘笔试题及解答(某大型国企)

招聘嵌入式软件开发岗位笔试题及解答(某大型国企)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、嵌入式软件开发中,以下哪个组件负责处理输入/输出操作?A、内核(Kernel)B、驱动程序(Driver)C、应用程序(Application)D、操作系统(Operating System)2、以下哪个编程语言通常用于嵌入式系统的开发?A、JavaB、C/C++C、PythonD、JavaScript3、以下关于嵌入式系统开发的特点,描述错误的是:A. 嵌入式系统通常具有实时性要求高B. 嵌入式系统通常具有功耗限制C. 嵌入式系统通常具有资源受限的特点D. 嵌入式系统不需要进行软件测试4、以下关于Cortex-M微控制器内核,描述错误的是:A. Cortex-M内核是ARM公司推出的微控制器内核系列B. Cortex-M内核具有低功耗和高性能的特点C. Cortex-M内核不支持中断嵌套D. Cortex-M内核广泛应用于嵌入式系统5、题干:嵌入式软件开发中,以下哪种通信协议主要用于短距离、低功耗的设备间通信?A. USBB. TCP/IPC. CAND. NFC6、题干:在嵌入式系统中,以下哪个组件通常负责处理硬件中断?A. 运行时库B. 操作系统内核C. 应用程序D. 硬件抽象层7、嵌入式软件开发中,以下哪个不是常见的嵌入式操作系统?A)VxWorksB)FreeRTOSC)LinuxD)Windows8、在嵌入式软件开发中,以下哪种编程语言最适合用于硬件抽象层(HAL)的开发?A)C++B)PythonC)JavaD)Assembly9、以下哪个选项不是嵌入式系统常见的实时操作系统(RTOS)?A. VxWorksB. LinuxC. FreeRTOSD. Windows XP 10、在嵌入式软件开发中,以下哪种编程语言不是通常用于编写嵌入式应用的?A. CB. C++C. PythonD. Assembly二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些是嵌入式系统开发中常用的编程语言?A. C语言B. C++C. PythonD. JavaE. Assembly语言2、在嵌入式系统设计中,以下哪些是典型的硬件资源?A. 微控制器(MCU)B. 数字信号处理器(DSP)C. 传感器D. 显示屏E. 通信接口3、以下哪些技术或编程语言通常用于嵌入式软件开发?A. C语言B. PythonC. JavaD. ARM汇编语言E. Verilog4、以下哪些是嵌入式系统开发中常见的开发流程步骤?A. 需求分析B. 硬件选型与设计C. 软件设计D. 编码与调试E. 系统集成与测试5、以下哪些技术或工具是嵌入式软件开发中常用的?()A、C/C++B、Linux操作系统C、Keil MDKD、IAR EWARME、QtF、MATLAB/Simulink6、以下哪些是嵌入式系统设计中常见的硬件接口?()A、SPI(串行外设接口)B、I2C(串行总线上传输接口)C、UART(通用异步收发传输器)D、USB(通用串行总线)E、PCI(外围组件互联)F、CAN(控制器局域网)7、以下哪些技术或工具通常用于嵌入式软件开发?()A. C语言B. PythonC. VHDLD. ARM Cortex-M3E. SQLite8、在嵌入式软件开发过程中,以下哪些步骤是常见的?()A. 需求分析B. 硬件选型C. 设计架构D. 编码实现E. 系统集成测试9、以下哪些技术或工具是嵌入式软件开发中常用的?()A. C/C++B. ARM Cortex-M系列处理器架构C. Linux操作系统D. SQLite数据库E. Keil uVision集成开发环境 10、以下哪些是嵌入式系统开发过程中的关键阶段?()A. 需求分析B. 硬件选型与设计C. 软件设计D. 编码实现E. 测试与调试三、判断题(本大题有10小题,每小题2分,共20分)1、嵌入式软件开发岗位中,C语言是唯一可用的编程语言。

嵌入式软件工程师笔试题

嵌入式软件工程师笔试题

嵌入式软件工程师笔试题一、题目描述某公司正在招聘一名嵌入式软件工程师,为了筛选合适的人选,决定进行一场笔试。

请根据以下要求完成以下三个问题:1. 设计一个嵌入式软件系统,要求对温度进行实时监测,并根据温度变化控制一个风扇的转速。

2. 编写一个C语言函数,实现对一个整型数组的排序功能。

3. 使用C语言编写一个简单的通信协议,实现两个设备之间的数据传输。

二、嵌入式软件系统设计在嵌入式软件系统设计方面,以下是一个简要的设计方案:1. 硬件配置:a. 主控芯片:选择一款适合的低功耗嵌入式处理器,如ARM Cortex-M系列。

b. 温度传感器:选择一款精度高、稳定性好的温度传感器,可通过I2C或SPI接口与主控芯片通信。

c. 风扇控制器:选择一款与主控芯片兼容的风扇控制器,可通过PWM信号控制风扇转速。

2. 软件设计:a. 主程序循环:主控芯片通过定时器中断实现周期性监测温度并控制风扇的转速。

b. 温度读取:通过I2C或SPI通信协议读取温度传感器的温度值。

c. 温度判断:根据温度值判断是否需要调整风扇转速。

d. 风扇控制:通过PWM信号控制风扇的转速,根据温度变化调整占空比。

三、整型数组排序函数实现以下是一个简单的C语言函数,实现对一个整型数组的排序功能:```cvoid arraySort(int arr[], int length) {int i, j, temp;for (i = 0; i < length - 1; i++) {for (j = 0; j < length - i - 1; j++) {if (arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}```四、简单通信协议设计以下是一个使用C语言编写的简单通信协议,实现两个设备之间的数据传输:```c// 发送端void sendData(uint8_t data) {// 将数据通过串口发送给接收端UART_send(data);}// 接收端void receiveData() {while (!UART_dataAvailable()) {} // 等待数据接收完成uint8_t data = UART_receive(); // 获取接收到的数据// 对接收到的数据进行处理// ...```根据上述设计方案和示例代码,嵌入式软件工程师可以完成相关开发任务,实现温度监测与风扇控制、数组排序功能以及设备间的简单数据传输。

嵌入式软件工程师笔试题

嵌入式软件工程师笔试题

嵌入式软件工程师笔试题一、选择题(每题2分,共20分)1. 在C语言中,下列哪个关键字用于定义结构体?A. ifB. switchC. structD. for2. 在嵌入式系统中,通常用于实现实时多任务操作的机制是:A. 线程B. 进程C. 中断D. 信号量3. 下列哪种存储器属于非易失性存储器?A. RAMB. ROMC. EEPROMD. SDRAM4. 在ARM架构中,用于存储程序计数器(PC)的寄存器是:A. R0B. R1C. R15D. SP5. 以下哪种通信协议不属于工业通信协议?A. ModbusB. CANC. HTTPD. Profibus6. 在嵌入式Linux开发中,设备树(Device Tree)的主要作用是:A. 描述硬件信息B. 配置内核参数C. 管理文件系统D. 运行应用程序7. 以下哪个是实时操作系统(RTOS)的特点?A. 支持多任务B. 支持多线程C. 支持图形界面D. 支持网络通信8. 在C语言中,用于动态分配内存的函数是:A. mallocB. freeC. callocD. realloc9. 以下哪种传感器通常用于测量物体的速度?A. 加速度传感器B. 陀螺仪C. 霍尔传感器D. 光电传感器10. 在嵌入式系统中,串行通信接口UART的主要作用是:A. 连接显示器B. 连接键盘C. 连接鼠标D. 连接串行设备二、填空题(每题2分,共20分)11. 在C语言中,使用关键字________可以定义一个指向函数的指针。

12. 在嵌入式系统中,________是一种常用的低功耗无线通信技术。

13. 为了在嵌入式设备中实现网络功能,通常需要使用________协议栈。

14. 在嵌入式Linux系统中,使用________命令可以查看当前系统的进程信息。

15. 一个典型的嵌入式系统通常包括硬件平台、________、外设和应用程序。

16. 在ARM架构中,异常处理程序通常存储在向量表的________部分。

嵌入式笔试题

嵌入式笔试题

嵌入式笔试题嵌入式笔试题第一部分:选择题(每题2分,共10题)1. 以下哪个不是嵌入式系统常用的操作系统?a) Windowsb) Linuxc) FreeRTOSd) VxWorks2. 嵌入式系统中常用的接口类型是?a) Ethernetb) USBc) GSMd) I2C3. 以下选项中,哪个不是嵌入式系统的特点?a) 多任务处理b) 实时处理c) 大内存容量d) 低功耗4. 嵌入式系统的开发过程中,通常使用的编程语言是:a) C/C++b) Javac) Pythond) HTML5. 下列选项中,哪种存储器类型适合用于嵌入式系统?a) 硬盘b) 四层堆栈存储器c) U盘d) 光盘6. 下面哪个选项不是典型的嵌入式系统应用场景?a) 智能手机b) 电视机c) 电饭煲d) 卫星导航系统7. 嵌入式系统中常用的传感器类型是?a) 加速度传感器b) 摄像头c) 雷达d) 扬声器8. 嵌入式系统的调试和测试通常使用的工具是:a) 逻辑分析仪b) 电池测试仪c) 声卡测试仪d) 滤波器9. 嵌入式系统的时钟频率通常是多少?a) 1GHzb) 10MHzc) 100KHzd) 1KHz10. 以下选项中,哪个不是嵌入式系统的开发平台?a) Arduinob) Raspberry Pic) Androidd) STM32第二部分:填空题(每题5分,共5题)1. 嵌入式系统最常用的通信总线是____________。

2. 嵌入式系统中的内存分为____________和____________两类。

3. ____________是一种常用的实时操作系统。

4. I2C总线是一种____________传输协议。

5. 嵌入式系统的主频表示____________。

第三部分:问答题1. 什么是嵌入式系统?请简要描述其特点和应用场景。

嵌入式系统是一种特殊的计算机系统,它被嵌入在其他设备或系统中,用于控制和操作设备的具体功能,而不是提供通用计算能力。

cvte嵌入式软件开发笔试题

cvte嵌入式软件开发笔试题

cvte嵌入式软件开发笔试题1. 请解释什么是嵌入式系统?嵌入式系统是一种特殊的电子系统,它包含了硬件和软件组件,专门用于控制、监视和执行特定任务,通常被嵌入到其他设备或系统中。

这些系统通常具有实时性要求,资源有限,以及对功耗、可靠性和安全性有严格要求。

2. 解释一下嵌入式软件开发的基本流程。

嵌入式软件开发的基本流程包括以下几个步骤:- 需求分析:明确系统的功能和性能需求。

- 系统设计:确定嵌入式系统的整体体系结构和模块设计。

- 编码和测试:根据设计文档编写嵌入式软件代码,并进行测试和调试。

- 集成和验证:将各个模块组合成完整的嵌入式系统,并进行整体验证和测试。

- 部署和维护:将嵌入式系统部署到目标硬件平台,并进行维护和升级。

3. 请列举几个常用的嵌入式操作系统。

常用的嵌入式操作系统包括:- 实时操作系统(RTOS):如FreeRTOS、uC/OS等,用于实时控制和任务调度。

- Linux:在某些资源丰富的嵌入式系统中,Linux可以作为操作系统使用。

- Windows CE:适用于一些具有较高计算和图形处理需求的嵌入式系统。

- VxWorks:用于高可靠性和实时性要求较高的嵌入式系统。

4. 解释一下中断处理程序。

中断处理程序是一段嵌入式软件代码,用于处理来自硬件或软件的中断信号。

当发生中断事件时,系统将会立即转移到中断处理程序中执行,以响应该事件。

中断处理程序通常包含一些必要的初始化、状态保存和恢复操作,以及对中断事件的具体处理逻辑。

5. 什么是周期性任务?周期性任务是一种周期性执行的嵌入式软件任务,它根据设定的时间间隔或触发条件定时执行。

周期性任务通常是单次执行,每次执行的时间和任务的执行逻辑都是可预测的。

6. 请解释一下滴答定时器(Tick Timer)的作用。

滴答定时器是嵌入式系统中常见的一种周期性定时器,其周期时间一般为系统时钟的一小部分,称为滴答间隔。

滴答定时器的作用是提供一个固定的时间间隔,用于系统的时基计时、任务调度和延时控制,可以使系统的时间管理更精确和稳定。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

凹凸笔试题目(嵌入式软件开发)2007-02-07Embedded Software Design Engineer1 读程序段,回答问题int main(int argc,char *argv[]){int c=9,d=0;c=c++%5;d=c;printf("d=%d\n",d);return 0;}a) 写出程序输出b) 在一个可移植的系统中这种表达式是否存在风险?why?#include "stdio.h"int a=0;int b;static char c;int main(int argc,char *argv[]){char d=4;static short e;a++;b=100;c=(char)++a;e=(++d)++;printf("a=%d, b=%d, c=%d, d= %d, e=%d",a,b,c,d,e);return 0;}a) 写出程序输出b) 编译器如果安排各个变量(a,b,c,d)在存中的布局(eg. stack,heap,data section,bss section),最好用图形方式描述。

2 中断是嵌入式系统中重要的组成部分,这导致了许多编译开发商提供一种扩展:让标准C支持中断,产生了一个新的关键字__interrupt。

下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论以下这段代码。

__interrupt double compute_area(double radius){double area = PI * radius *radius;printf("nArea = %f", area);return area;}3 C/C++基础知识问题a) 关键字volatile在编译时有什么含义?并给出三个不同使用场景的例子(可以伪代码或者文字描述)。

b) C语言中static关键字的具体作用有哪些 ?c) 请问下面三种变量声明有何区别?请给出具体含义int const *p;int* const p;int const* const p;4 嵌入式系统相关问题a) 对于整形变量A=0x12345678,请画出在little endian及big endian的方式下在存中是如何存储的。

b) 在ARM系统中,函数调用的时候,参数是通过哪种方式传递的?c) 中断(interrupt,如键盘中断)与异常(exception,如除零异常)有何区别?5 设周期性任务P1,P2,P3的周期为T1,T2,T3分别为100,150,400;执行时间分别为20,40,100。

请设计一种调度算法进行任务调度,满足任务执行周期及任务周期。

6 优先级反转问题在嵌入式系统中是一中严重的问题,必须给与足够重视。

a) 首先请解释优先级反转问题b) 很多RTOS提供优先级继承策略(Priority inheritance)和优先级天花板策略(Priority ceilings)用来解决优先级反转问题,请讨论这两种策略。

参考答案:1 5存在风险,因为c=c++%5;这个表达式对c有两次修改,行为未定义,c的值不确定int a=0; // data sectionint b; // data sectionstatic char c; // BSSint main(int argc,char *argv[]){char d=4; // stackstatic short e; // BSSa++;b=100;c=(char)++a;e=(++d)++;printf("a=%d, b=%d, c=%d, d= %d, e=%d",a,b,c,d,e);return 0;}a=2,b=100,c=2,d=6,e=52 a)ISR不能返回一个值;b)ISR不能传递参数;c)浮点一般都是不可重入的;d)printf函数有重入和性能上的问题。

3 a) 用volatile关键字定义变量,相当于告诉编译器,这个变量的值会随时发生变化,每次使用时都需要去存里重新读取它的值,并不要随意针对它作优化。

建议使用volatile变量的场所:(1) 并行设备的硬件寄存器(2) 一个中断服务子程序中会访问到的非自动变量(全局变量)(3) 多线程应用中被几个任务共享的变量b) 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

在模块(但在函数体外),一个被声明为静态的变量可以被模块所用函数访问,但不能被模块外其它函数访问。

它是一个本地的全局变量。

在模块,一个被声明为静态的函数只可被这一模块的其它函数调用。

那就是,这个函数被限制在声明它的模块的本地围使用。

static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;static函数与普通函数有什么区别:static函数在存中只有一份,普通函数在每个被调用中维持一份拷贝c) 一个指向常整型数的指针一个指向整型数的常指针一个指向常整型数的常指针4a) 0x12345678little endian big endian 刚好反过来高地址--〉 0x12 低地址--〉 0x120x34 0x340x56 0x56低地址--〉 0x78 高地址--〉 0x78b)参数<=4时候,通过R0~R3传递,>4的通过压栈方式传递c) 异常:在产生时必须考虑与处理器的时钟同步,实践上,异常也称为同步中断。

在处理器执行到由于编程失误而导致的错误指令时,或者在执行期间出现特殊情况(如缺页),必须靠核处理的时候,处理器就会产生一个异常。

所谓中断应该是指外部硬件产生的一个电信号,从cpu的中断引脚进入,打断cpu当前的运行;所谓异常,是指软件运行中发生了一些必须作出处理的事件,cpu自动产生一个陷入来打断当前运行,转入异常处理流程。

异步与同步的区别`56 高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象叫做优先级反转优先级继承策略(Priority inheritance):继承现有被阻塞任务的最高优先级作为其优先级,任务退出临界区,恢复初始优先级。

优先级天花板策略(Priority ceilings):控制访问临界资源的信号量的优先级天花板。

优先级继承策略对任务执行流程的影响相对教小,因为只有当高优先级任务申请已被低优先级任务占有的临界资源这一事实发生时,才抬升低优先级任务的优先级。

原文地址/u/451daef9010007mv约定:1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了2)数据类型char 一个字节1 byteint 两个字节2 byte (16位系统,认为整型是2个字节)long int 四个字节4 bytefloat 四个字节4 byetdouble 八个字节8 bytelong double 十个字节10 bytepointer 两个字节2 byte(注意,16位系统,地址总线只有16位)第1题: 考查对volatile关键字的认识#include<setjmp.h>static jmp_buf buf;main(){volatile int b;b =3;if(setjmp(buf)!=0){printf("%d ", b);exit(0);}b=5;longjmp(buf , 1);main(){struct node{int a;int b;int c;};struct node s= { 3, 5,6 }; struct node *pt = &s;printf("%d" , *(int*)pt);}int foo ( int x , int n){int val;val =1;if (n>0){if (n%2 == 1) val = val *x; val = val * foo(x*x , n/2);return val;}main(){int a[5] = {1,2,3,4,5};int *ptr = (int*)(&a+1);printf("%d %d" , *(a+1), *(ptr-1) );}void foo(int [][3] );main(){int a [3][3]= { { 1,2,3} , { 4,5,6},{7,8,9}}; foo(a);printf("%d" , a[2][1]);}void foo( int b[][3]){++ b;b[1][1] =9;}main(){int a, b,c, d;a=3;b=5;c=a,b;d=(a,b);printf("c=%d" ,c);printf("d=%d" ,d);}main(){int a[][3] = { 1,2,3 ,4,5,6};int (*ptr)[3] =a;printf("%d %d " ,(*ptr)[1], (*ptr)[2] );++ptr;printf("%d %d" ,(*ptr)[1], (*ptr)[2] ); }int *f1(void){int x =10;return(&x);}int *f2(void){int*ptr;*ptr =10;return ptr;}int *f3(void){int *ptr;ptr=(int*) malloc(sizeof(int));return ptr;}上面这3个函数哪一个最可能引起指针方面的问题(a) 只有 f3(b) 只有f1 and f3(c) 只有f1 and f2(d) f1 , f2 ,f3第9题:考查自加操作(++)main(){int i=3;int j;j = sizeof(++i+ ++i);printf("i=%d j=%d", i ,j); }void f1(int *, int);void f2(int *, int);void(*p[2]) ( int *, int);main(){int a;int b;p[0] = f1;p[1] = f2;a=3;b=5;p[0](&a , b);printf("%d\t %d\t" , a ,b);p[1](&a , b);printf("%d\t %d\t" , a ,b); }void f1( int* p , int q)int tmp;tmp =*p;*p = q;q= tmp;}void f2( int* p , int q) {int tmp;tmp =*p;*p = q;q= tmp;}void e(int );main(){int a;a=3;e(a);}void e(int n){if(n>0){e(--n);printf("%d" , n);e(--n);}}typedef int (*test) ( float * , float*) test tmp;main(){char p;char buf[10] ={ 1,2,3,4,5,6,9,8};p = (buf+1)[5];printf("%d" , p);}这段程序的输出是:(a) 5(b) 6(c) 9(d) 以上都不对Void f(char**);main(){char * argv[] = { "ab" ,"cd" , "ef" ,"gh", "ij" ,"kl" }; f( argv );}void f( char **p ){char* t;t= (p+= sizeof(int))[-1];printf( "%s" , t);}#include<stdarg.h>int ripple ( int , ...);main(){int num;num = ripple ( 3, 5,7);printf( " %d" , num);}int ripple (int n, ...){int i , j;int k;va_list p;k= 0;j = 1;va_start( p , n);for (; j<n; ++j){i = va_arg( p , int); for (; i; i &=i-1 ) ++k;}return k;}int counter (int i){static int count =0;count = count +i;return (count );}main(){int i , j;for (i=0; i <=5; i++)j = counter(i);}本程序执行到最后,j的值是:(a) 10(b) 15(c) 6(d) 7详细参考答案第1题: (b)volatile字面意思是易于挥发的。

相关文档
最新文档