海康嵌入式笔试题
嵌入式系统考试试题及答案
嵌入式系统考试试题及答案一、选择题1、嵌入式系统是指哪些设备?A.智能手机B.平板电脑C.个人电脑D.所有电子设备答案:D.所有电子设备解释:嵌入式系统是指嵌入在其它设备中的小型计算机系统,它们通常具有特定的功能和用途,例如控制机械、电子设备等。
因此,所有电子设备都可以看作是嵌入式系统的一种。
2、嵌入式系统的主要特点是什么?A.体积小B.功耗低C.处理能力强D.以上都是答案:D.以上都是解释:嵌入式系统通常具有体积小、功耗低、处理能力强等特点,这些特点使得它们能够适应各种不同的应用场景。
3、下面哪个不是嵌入式系统的应用?A.手机语音助手B.智能家居控制C.汽车发动机控制D.超级计算机答案:D.超级计算机解释:超级计算机是一种大型计算机系统,主要用于科学计算、数据分析等高性能计算领域,与嵌入式系统的应用场景不同。
4、嵌入式系统开发需要哪些技能?A.硬件设计B.软件编程C.系统集成D.以上都是答案:D.以上都是解释:嵌入式系统开发需要具备硬件设计、软件编程和系统集成等技能,因为嵌入式系统需要与具体的硬件设备进行交互,同时需要进行软件编程来实现特定的功能。
5、下面哪个是嵌入式系统开发的主要语言?A. C语言B. C++语言C. Java语言D. Python语言答案:A. C语言解释:C语言是嵌入式系统开发的主要语言之一,因为它具有高效的性能和直接访问硬件的能力,适合用于编写嵌入式系统的底层代码。
嵌入式系统是现代电子技术中非常重要的一部分,它们广泛用于各种领域,如工业控制、智能家居、医疗设备等。
因此,学习嵌入式系统的知识对于电子工程专业的学生来说是非常重要的。
在这里,我们提供了一些嵌入式系统期末考试的题目和答案,以帮助学生们更好地理解嵌入式系统的基本概念和原理。
解释:嵌入式系统通常具有小型化、快速化和智能化的特点,而巨型化并不是嵌入式系统的特点。
解释:嵌入式系统通常使用低级编程语言,如C语言和汇编语言,而Python语言通常用于高级编程和脚本编写,并不是嵌入式系统常用的编程语言。
嵌入式试题集(含答案)---内容简单-不够详尽
嵌⼊式试题集(含答案)---内容简单-不够详尽1、ARM微处理器有7种⼯作模式,它们分为两类⾮特权模式、特权模式。
其中⽤户模式属于⾮特权模式2、ARM⽀持两个指令集,ARM核因运⾏的指令集不同,分别有两个状态ARM 、Thumb,状态寄存器CPSR的T 位反映了处理器运⾏不同指令的当前状态3、ARM核有多个寄存器,其中⼤部分⽤于通⽤寄存器,有⼩部分作为专⽤寄存器,R15 寄存器⽤于存储PC,R13通常⽤来存储SP 。
ARM处理器有两种总线架构,数据和指令使⽤同⼀接⼝的是冯诺依曼,数据和指令分开使⽤不同接⼝的是哈佛结构4、ARM微处理器复位后,PC的地址通常是0x0 ,初始的⼯作模式是Supervisor 。
5、ARM微处理器⽀持虚拟内存,它是通过系统控制协处理器CP15 和MMU(存储管理部件)来进⾏虚拟内存的存储和管理。
当系统发⽣数据异常和指令领取异常时,异常处理程序透过嵌⼊式操作系统的内存管理机制,通过MMU交换物理内存和虚拟内存的页⾯,以保证程序正常执⾏。
6、编译链接代码时,有两种存储代码和数据的字节顺序,⼀种是⼩端对齐,另⼀种是⼤端对齐。
7、构建嵌⼊式系统开发环境的⼯具链有多种,其中开放源码的⼯具链是GNU⼯具链,ARM公司提供的⼯具链是ADS⼯具链计算机有CISC和RISC两种类型,以ARM微处理器为核⼼的计算机属于RISC类型,其指令长度是定长的8、⽬前使⽤的嵌⼊式操作系统主要有哪些?请举出六种较常⽤的。
Windows CE/Windows Mobile、VxWork、Linux、uCos、Symbian、QNX任选六9、Boot Loader在嵌⼊式系统中主要起什么作⽤?完成哪些主要的⼯作?答:Boot Loader是在嵌⼊式系统复位启动时,操作系统内核运⾏前,执⾏的⼀段程序。
通过Boot Loader,初始化硬件设备,建⽴内存和I/O空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。
嵌入式平台实习生笔试题目(硬件)_答案
1、电路如图1所示,计算β大于多少时晶体管饱和?(7分)解:取三极管饱和时集射极电压为0.4V ,基射极电压为0.7V , 则基极电流 Ib= (5-0.7)/100 mA射极电流Ie = (5-0.4)/1 mA要是三极管饱和,则Ie = Ib*β,解得β= 107所以,当β〉107时晶体管饱和。
图12、电路如图2所示,集成运放输出电压的最大幅值为±14V ,请填表。
(8分)图23、已知CMOS 边沿触发器(上升沿触发)输入端D 和时钟信号CP 的电压波形如图3所示,假定触发器的初始状态为Q=0,请画出Q 、/Q 端对应的电压波形。
(10分)图3uI (V ) 0.1 0.5 1.0 1.5uo1(V ) 1.1 5.5 11 14 uo2(V ) -1 -5 -10 -14 321Rb 100K4、图4所示是一个Feedback(反馈振荡)电路,请简述其工作过程。
(10分)图4解:假设出示状态U1为高电平输出。
U1为高,通过电阻R对C充电,电容C电压U2上升,上升至一定电压值(施密他触发器ST上限阀值),ST 输出电压Ust翻转为高电平,经非门后变为低电平输出(U1)。
U1为低,电容C通过电阻R放电,电容C电压U2下降,下降至一定电压值(施密他触发器ST下限阀值),ST输出电压Ust翻转为低电平,经非门后变为高电平输出(U1)。
如此反复,形成振荡。
5、用一款你熟悉的单片机设计一4*4键盘、2位7段共阴极数码管的单片机最小系统(系统可以工作),请画出原理图;程序不断扫描按键,如果有按键按下,则将对应的按键值显示到数码管上,请画出程序流程图.(15分)解略6// 程序功能:搜索字符串中的非数字字符,并将非数字字符打印出来#include <stdio.h>#define SIZE 10; // 第一处错误,语法错误,define后不能带“;”bool IsNumber(char ch){return( (ch <= '9') && (ch >= '0') );}int main(void){char c[SIZE] = "12345y789";int i;bool Result;for(i = 0; i < SIZE; i++)//第二处错误,逻辑错误,for语句后需加“{……}”return 0;}7、请列举常用的串行通信方式(两种以上),并简述串行通信和并行通信不同之处、优缺点。
嵌入式系统基础知识考试
嵌入式系统基础知识考试(答案见尾页)一、选择题1. 嵌入式系统的核心是什么?A. 中央处理器(CPU)B. 内存(RAM)C. 输入输出设备D. 操作系统和软件2. 嵌入式系统的显著特点包括:A. 低功耗B. 高性能C. 可定制性D. 上下文感知3. 在嵌入式系统中,通常使用哪种编程语言进行开发?A. 汇编语言B. C语言C. JavaD. Python4. 嵌入式系统通常用于哪些领域?A. 消费电子产品B. 工业控制系统C. 汽车电子D. 以上都是5. 下列哪个不是嵌入式系统的组成部分?A. 微控制器(MCU)B. 存储器C. 显示屏D. 键盘和鼠标6. 在嵌入式系统设计中,硬件和软件是如何相互作用的?A. 硬件负责数据处理和控制,软件负责程序执行和用户交互。
B. 软件负责硬件管理,硬件负责数据存储和处理。
C. 硬件和软件完全独立,互不干扰。
D. 硬件和软件相互依赖,共同工作。
7. 嵌入式系统中的实时性是指什么?A. 系统能够在预定时间内响应外部事件。
B. 系统能够处理大量数据。
C. 系统具有高度可扩展性。
D. 系统具有高可靠性。
8. 在嵌入式系统开发过程中,调试是一个重要环节。
常用的调试方法有哪些?A. 使用调试器B. 使用打印语句C. 使用模拟器D. 以上都是9. 嵌入式系统的低功耗设计通常涉及哪些方面?A. 选择低功耗的微处理器B. 优化代码以减少能耗C. 使用高效的电源管理模块D. 以上都是10. 在嵌入式系统应用中,如何确保系统的安全性和可靠性?A. 使用高质量的组件和材料B. 定期进行系统更新和维护C. 实施严格的安全措施,如防火墙和加密技术D. 以上都是11. 嵌入式系统的基本工作原理是什么?A. 单任务处理B. 多任务处理C. 实时处理D. 分布式处理12. 嵌入式系统的硬件通常包括哪些组件?A. CPU、内存、I/O设备B. CPU、内存、操作系统C. CPU、内存、软件D. CPU、内存、网络接口卡13. 下列哪个不是嵌入式系统的特点?A. 低功耗B. 高性能C. 紧凑的存储空间D. 可靠性高14. 在嵌入式系统中,常用的操作系统有哪些?A. Windows CEB. LinuxC. VxWorksD. all of the above15. 嵌入式系统中的软件通常分为哪几类?A. 系统软件和应用软件B. 驱动程序、中间件和应用软件C. 系统软件、中间件和应用软件D. 操作系统、驱动程序和应用软件16. 在嵌入式系统的开发过程中,常用的编程语言有哪几种?A. CB. C++C. JavaD. Python17. 嵌入式系统在智能家居中的应用有哪些?A. 智能家电控制B. 安全监控C. 能源管理D. 上述所有18. 在设计嵌入式系统时,需要考虑的主要因素有哪些?A. 性能、成本、可用性B. 成本、功耗、安全性C. 性能、功耗、安全性D. 性能、成本、安全性19. 嵌入式系统的特点是?A. 高度集成B. 高速运行C. 易于维护D. 以上都是20. 嵌入式系统中的“嵌入式”一词指的是什么?A. 系统可以嵌入其他系统中B. 系统可以独立运行C. 系统体积小,适合嵌入其他设备中D. 系统对外部环境敏感21. 在嵌入式系统中,哪种类型的存储器通常用于存储程序和数据?A. 随机存取存储器(RAM)B. 只读存储器(ROM)C. 闪存(Flash Memory)D. 硬盘驱动器(HDD)22. 嵌入式系统开发中常用的编程语言有哪几种?A. C语言B. C++C. JavaD. Python23. 在嵌入式系统设计中,硬件和软件的协同工作是非常重要的。
海康威视嵌入式与 linux 笔试:
2、Linux 系统支持驱动模块动态加载的, 请列出驱动模块的入口和出口
module_init 和 module_exit
3、Linux 的基本命令, 列出 root 根目录下的内容, 要求以详细信息列出, 并以时间倒序排序
6、 C 语言中,修饰符 volatile 含义是什么?其应用场合有哪些?
答:搞嵌入式的童鞋们经常同硬件,中断,RTOS 等打交道,所有这些都要求用 到 volatile 变量。 一个定义为 volatile 的变量是说这些变量可能会被意想不到的改变,这样,编 译器就不会去假设这个变量的值了,精确的说,优化器在用到这个变量时必须每 次小心的重新读取这个变量的值,而不是使用保存在寄存器里的备份。几个 volatile 的例子:
9、 C 语言中 static 函数与普通函数的区别是什么?
在 C 语言中,关键字 static 的作用: 1、 函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变 量的内存只被分配一次,因此其值在下次调用时仍维持上次的值。 2、 在模块内的 static 全局变量可以被模块内的所有函数访问,但是不能 被模块外的其他函数访问。 3、 在模块内的 static 函数只可被这一模块模块内的其他函数调用,这个 函数的使用范围被限制在声明他的模块内。 4、 在类的 static 成员变量属于整个类所拥有,对类的所有对象只有一份 拷贝。 5、在类的 static 成员函数属于整个类所拥有,这个函数不接受 this 指针, 因而只能访问类的 static 成员变量。 LINUX 方面的: 1、 列出目前 linux 系统能支持的文件系统, 列出常用的 4 个以上。
嵌入式软件开发岗位招聘笔试题及解答(某大型国企)
招聘嵌入式软件开发岗位笔试题及解答(某大型国企)(答案在后面)一、单项选择题(本大题有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(精简指令集计算机)架构。
嵌入式工程师笔试题
1.在嵌入式系统中,常用于存储启动代码和关键数据的存储器类型是?
A.SRAM
B.DRAM
C.Flash存储器(答案)
D.SDRAM
2.下列哪项不是嵌入式操作系统的特点?
A.实时性强
B.可裁剪
C.资源丰富,占用空间大(答案)
D.可靠性高
3.在嵌入式系统开发中,用于描述硬件设备的结构和功能的语言是?
A.C语言
B.HDL(硬件描述语言)(答案)
C.Java
D.Python
4.下列哪种通信接口在嵌入式系统中常用于低速、短距离的数据传输?
B
B.SPI(答案)
C.Ethernet
D.HDMI
5.嵌入式系统开发中,常用于调试和程序下载的接口是?
A.GPIO
B.UART(答案)
C.I2C
D.PWM
6.下列哪项不是嵌入式系统设计中需要考虑的实时性因素?
A.响应时间
B.吞吐量
C.延迟时间
D.代码美观性(答案)
7.在嵌入式Linux系统中,用于管理系统资源和提供程序运行环境的层是?
A.Bootloader
B.Kernel(答案)
C.Filesystem
D.Shell
8.下列哪种工具不是嵌入式系统开发中常用的交叉编译工具?
A.arm-linux-gcc
B.gcc(答案)
C.arm-none-eabi-gcc
D.x86_64-linux-gnu-gcc。
嵌入式考试题目及答案
嵌入式考试题目及答案一、单选题(每题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. 嵌入式系统的软件组成包括()。
嵌入式笔试题_笔试题目
嵌入式笔试题从应用对象上加以定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。
国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
下面就由小编为大家介绍一下嵌入式笔试题的文章,欢迎阅读。
嵌入式笔试题篇11:用C语言实现大小端的测试Int CheckCpu{union{int a;char b;}c;c.a=1;if(c.b==1)printf(“小端”);else printf(“大端”);}2:volatile的作用有哪些?Volatile第一变量相当于告诉编译器这个变量的值会随时发生变化,每次使用之前都要去内存里从新读取它的值,并不要随意针对它做优化,主要用在:1:一个中断子程序中会访问到的非自动变量;2:多线程应用中被几个线程共享的变量;3:并行设备的硬件寄存器。
3:C语言中static关键字的作用有哪些?1:在函数体中,一个被声明为静态的变量在这个变量在调用过程中维持其值不变;2:在模块内(但在函数体外),一个被声明为静态的变量,可以被这个模块内的所用函数使用,但不能被模块外的函数使用,它是一个本地的全局变量;3:在模块内,一个被声明为静态变量的函数,智能被这个模块内的函数调用;4:static全局变量与局部变量的区别:static全局变量只能被初始化一次,防止其他单元文件中被引用;5:static局部变量与局部变量的区别:static局部变量只能被初始化一次,下一次依据上一次结果的值;6:static函数与普通函数的区别:static在内存中只用一份,普通函数在每一次调用中维持一份拷贝。
4:请问下面三种变量的区别:Int const *p : 指向常整型的指针;Int *const p; 指向整型的常指针;Int *const *p:指向常整型的常指针;5:在ARM系统中,在函数调用的时候,参数是通过哪种方式传递的。
嵌入式工程师笔试题目
嵌入式工程师笔试题目嵌入式工程师笔试题目嵌入式工程师是指具有C/C++语言、汇编语言等基础,熟悉模拟电子技术等硬件知识,了解处理器体系结构,做嵌入式系统设计和开发,包括硬件系统的建立和相关软件开发、移植、调试等工作的人,下面就是整理的嵌入式工程师笔试题目,请看:嵌入式工程师笔试题目【1】1、一根金条长31厘米,如果把它切成数段,使其中的一段或几段能够接成长为1到31中任何整数的金条,请问要切几次?A.4B.5C.6D.7参考答案:A2、运行在多核处理器上的Linux环境中,若临界区非常短,且不允许线程上下文切换的情况下,使用下列哪种机制满足上述需求并且性能最好?A.SpinLockB.MutexC.SemaphoreD.Condition variable参考答案:A3、以下程序输出的结果是()#includeint main(){int x=10,y=10;printf("%d %d",x--,--y);}A.10 10B.9 9C.9 10D.10 9参考答案:D4、下面所述步骤中,不是创建进程所必须的步骤是?A.由调度程序为进程分配CPUB.建立一个进程控制块C.为进程分配内存D.将进程控制块链入就绪队列参考答案:A5、下面描述中,表达正确的有()A.公有继承是基类中的public成员在派生类中仍是public的B.公有继承是基类中的'private成员在派生类中仍是private的C.公有继承是基类中的protected成员在派生类中仍是protected的D.私有继承是基类中的public成员在派生类中仍是private的参考答案:ACD6、int listen(SOCKET s, int backlog);该函数中第二个参数的含义是?A.是否打开log信息B.是否打开后台log信息C.后台等待连接队列的最大限制值D.后台等待连接队列的最小限制值参考答案:C7、Java程序中的类名称必须与存放该类的文件名相同。
嵌入式系统试题及答案
嵌入式系统试题及答案一、选择题1. 嵌入式系统通常指的是:A. 个人计算机B. 服务器C. 智能手机D. 家用电器中的控制单元答案:D2. 以下哪个不是嵌入式系统的硬件组成部分?A. 微处理器B. 存储器C. 操作系统D. 打印机答案:D3. 嵌入式系统的软件开发通常使用:A. 汇编语言B. C语言C. Java语言D. HTML答案:B4. 下列哪个是实时操作系统的特点?A. 多任务B. 多用户C. 网络功能D. 确定性响应时间答案:D5. 嵌入式系统中的中断处理机制主要用于:A. 系统启动B. 错误检测C. 任务调度D. 事件响应答案:D二、填空题6. 嵌入式系统的设计需要考虑______、______和______三个主要方面。
答案:性能、功耗、成本7. 嵌入式系统中的______是指系统在规定的时间内完成特定功能的能力。
答案:实时性8. 在嵌入式系统中,______是指软件与硬件的紧密结合。
答案:系统级集成9. 嵌入式系统的______是指系统在没有外部干预的情况下,能够独立完成预定功能的能力。
答案:自主性10. 嵌入式系统的______是指系统在面对各种环境变化时,仍能保持稳定运行的能力。
答案:鲁棒性三、简答题11. 简述嵌入式系统与通用计算机系统的主要区别。
答案:嵌入式系统与通用计算机系统的主要区别在于:嵌入式系统是为特定应用而设计的,通常具有较低的功耗、较小的体积和成本,以及高度的实时性。
而通用计算机系统则具有更广泛的应用范围,通常不强调实时性,功耗和体积也相对较大。
12. 解释什么是嵌入式系统的中断机制,并说明其重要性。
答案:嵌入式系统的中断机制是一种允许外部事件或内部条件触发中断服务程序执行的机制。
它的重要性在于能够使系统快速响应外部事件,提高系统的实时性和可靠性。
四、论述题13. 论述嵌入式系统在工业自动化领域的应用及其优势。
答案:嵌入式系统在工业自动化领域的应用非常广泛,包括但不限于机器人控制、生产线监控、数据采集和处理等。
海康威视嵌入式软件开发工程师(BSP)笔试题(附超详细解答)
1、若有8个待排序元素,采用冒泡排序和插入排序最大时间复杂度分别是()。
64、2464、6416、6416、16KEY:B解答:9大内部排序的时间复杂度和空间复杂度如下表所示:O() O()O() O()O() O() O() O()O() O()O() O()O() O() O()O() O() O()O() O() O()1.int a[15] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };2.int *p = &a[5];3.int b = p[7];14131112KEY:B3、下列代码中数组data最终的数据是哪个()。
1.#define MAX_DATA_SIZE (10)2.3.int main()4.{5.unsigned int i = 0;6.unsigned char data[MAX_DATA_SIZE] = { 1,2,3,4,5,6,7,8,9,0 };7.8.memcpy(&data[2], data, MAX_DATA_SIZE / 2);9.10.return 0;11.}123456789012121218901212345890其他结果都不对KEY:D解答:由于本题中data数组里直接放的是数字,直接强制转化为char类型,按照ASCII码进行查询,显然不会是这些数字了。
也就是说,如果改成以下的定义:unsigned char data[MAX_DATA_SIZE] ={ '1','2','3','4','5','6','7','8','9','0' };那么答案就是C了。
4、下面哪个命令用来卸载一个内核模块?modprobedelmodunmodrmmodKEY:D5、使用快速排序对n个数进行排序,其在最佳情况、平均情况、最差情况下的时间复杂度分别是()。
嵌入式软件开发岗位招聘笔试题及解答(某大型央企)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 、如何⾃动创建设备⽂件?class_create device_create2、led驱动编写有⼏种⽅式?输⼊⼦系统字符设备驱动总线platform led⼦系统3、如何实现http服务器?tcp服务器:socket4、如何编写守护进程,简述syslog的作⽤?第⼀步:创建进程、杀死⽗进程第⼆步:创建新的会话第三步:改变⼯作路径路径第四步:修改⽂件掩码权限第五步:关闭⽂件描述符5、bootloader和uboot的区别?bootloader是启动装载。
这是⼀段很⼩的程序,⽤于在系统上电启动初期运⾏,初始化关键接⼝,如内存,串⼝,关闭中断,关闭看门狗,引导系统进⼊内核的⼀段初始化的程序。
它主要任务就是将内核映像从硬盘读到RAM中,然后跳转到内核的⼊⼝点去运⾏内核,从⽽建⽴系统运⾏的必要环境。
uboot:是bootloader的⼀种6、如何移植uboot?1、下载源码2、解压uboot源码并进⼊⽬录3、指定交叉编译⼯具链4、指定产品BOARD 底板5、编译u-boot7、传感器驱动如何编写?8、BL0,BL1,BL2,BL3的作⽤?BL0 ⽂件是存放在 CPU 内部 IROM 中的⼀段固化代码,CPU 上点之后,⾸先去运⾏soc中的BL0,运⾏时会将 BL1 拷贝到 CPU 的 IRAM 中,然后执⾏BL1;BL1⽂件执⾏起来之后会先进⾏内存的初始化,之后将 BL2 ⽂件拷贝到外部内存中,BL2会初始化BL3的运⾏环境,将BL3搬移到DRAM中,BL3会有⼀个⾃搬移的过程,从⽽启动内核⼊⼝。
BL0:CPU内部的固化代码BL1:三星提供的加密⽂件BL2:截取uboot.bin 前14kBL3:剩下的uboot 执⾏命令以及加载引导内核9、exynos4412 时钟 APLL,MPLL,VPLL的区别?------倍频锁相环APLL:⽤于 CPU_BLK (可产⽣⾼达1.4GHz的频率);作为 MPLL 的补充,它也可以给DMC_BLK 、LEFTBUS_BLK 、RIGHTBUS_BLK 和 CMU_TOP 提供时钟。
嵌入式软件开发岗位招聘笔试题及解答(某大型国企)
招聘嵌入式软件开发岗位笔试题及解答(某大型国企)(答案在后面)一、单项选择题(本大题有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.请问TCP/IP协议分为哪几层FTP协议属于哪一层答:可以分为物理层,数据链路层,网络层,传输层,应用层应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。
如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
如ARP是地址解析协议,在这一层的时候吧IP地址转换为物理地址网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、SerialLine等)来传送数据。
另外补充一下OSI的七层所对应的协议:应用层(Application):应用程序网关(applicationgateway)Telnet:远程登录(在应用层连接两部分应用程序)FTP(FileTransferProtocol):文件传输协议HTTP(HyperTextTransferProtocol):超文本传输协议SMTP(SimpleMailTransterProtocol):简单邮件传输协议Document number:NOCG-YUNOO-BUYTT-UU986-1986UTPOP3(PostOfficePtotocol):邮局协议SNMP(SimpleNetworkMangementProtocol)简单网络管理协议DNS(DomainNameSystem):域名系统传输层(Transport):传输网关(transportgateway)TCP(TransmissionControlPotocol):传输控制协议(在传输层连接两个网络)UDP(UserDataPotocol):用户数据协议网络层(Internet):多协议路由器(multiprotocolrouter)IP(InternetProtocol):网络协议(在异构网络间转发分组)ARP(AddressResolutionProtocol):地址解析协议RARP(ReverseAddressResolutionProtocol):逆地址解析协议ICMP(InternetControlMessageProtocol):因特网控制消息协议IGMP(InternetGroupManageProtocol):因特网组管理协议BOOTP(Bootstrap):可选安全启动协议数据链路层(DataLink):网桥(bridge)交换机(switcher)HDLC(HighDataLinkControl):高级数据链路控制(在LAN之间存储-转发数据链路针)SLIP(SerialLineIP):串行线路IPPPP(Point-to-PointProtocol):点到点协议等物理层(Physical):中继器(repeater)集线器(hub)(放大或再生弱的信号,在两个电缆段之间复制每一个比特)再回过头来看,ftp是用tcp写的一个文件传输协议,明显就是在应用层了==================================================================== 2.在网络应用中,函数htons,htonl,nt ohs,ntohl的作用htons:把短整型的主机字节顺序转变为网络字节顺序其它依次类推htons一般用来转变端口,htonl一般用来转IP网络字节顺序是先高位字节,再低位字节;主机字节顺序则视cpu而定干脆扩展一点#include<>#include<>#include<>#include<>#include<netinet/>#include<sys/>#include<sys/>intmain(){charstr[]=;in_addr_tr1,r2,r3;structin_addrinp;r1=inet_addr(str);if(r1==-1){printf("inet_addrreturn-1when);}else{printf("inet_addr:ip=%lu\n",ntohl(r1));}r2=inet_network(str);if(r2==-1){printf("inet_networkreturn-1when);}else{printf("inet_network:ip=%lu\n",r2);}r3=inet_aton(str,&inp);if(r3==0){printf("inet_atonreturn-1when);}else{printf("inet_aton:ip=%lu\n",ntohl);}return0;}==================================================================== 3.在c语言中,static函数与普通函数有什么区别1.全局静态变量在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。
嵌入式笔试题
嵌入式笔试题嵌入式笔试题第一部分:选择题(每题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. 什么是嵌入式系统?请简要描述其特点和应用场景。
嵌入式系统是一种特殊的计算机系统,它被嵌入在其他设备或系统中,用于控制和操作设备的具体功能,而不是提供通用计算能力。
海康嵌入式笔试题
海康嵌入式笔试题1.请问TCP/IP协议分为哪几层?FTP协议属于哪一层?答:可以分为物理层,数据链路层,网络层,传输层,应用层应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。
如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
如ARP是地址解析协议,在这一层的时候吧IP地址转换为物理地址网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、SerialLine等)来传送数据。
另外补充一下OSI的七层所对应的协议:应用层(Application):????????????????????????????????????应用程序网关(applicationgateway)Telnet:远程登录?????????????(在应用层连接两部分应用程序)????????????FTP(FileTransferProtocol):文件传输协议???????HTTP(HyperTextTransferProtocol):超文本传输协议???????SMTP(SimpleMailTransterProtocol):简单邮件传输协议?????POP3(PostOfficePtotocol):邮局协议???????SNMP(SimpleNetworkMangementProtocol)简单网络管理协议???????DNS(DomainNameSystem):域名系统传输层(Transport):???????????????????????????????????传输网关(transportgateway)??????TCP(TransmissionControlPotocol):传输控制协议?????????????(在传输层连接两个网络)??????UDP(UserDataPotocol):用户数据协议网络层(Internet):????????????????????????????????????多协议路由器(multiprotocolrouter)????IP(InternetProtocol):网络协议?(在异构网络间转发分组)????ARP(AddressResolutionProtocol):地址解析协议????RARP(ReverseAddressResolutionProtocol):逆地址解析协议????ICMP(InternetControlMessageProtocol):因特网控制消息协议????IGMP(InternetGroupManageProtocol):因特网组管理协议????BOOTP(Bootstrap):可选安全启动协议数据链路层(DataLink):????网桥(bridge)交换机(switcher)HDLC(HighDataLinkControl):高级数据链路控制???????????(在LAN之间存储-转发数据链路针)????SLIP(SerialLineIP):串行线路IP????PPP(Point-to-PointProtocol):点到点协议802.2等物理层(Physical):????????????????????????????????????中继器(repeater)集线器(hub)?????(放大或再生弱的信号,在两个电缆段之间复制每一个比特)再回过头来看,ftp是用tcp写的一个文件传输协议,明显就是在应用层了==================================================================== 2.在网络应用中,函数htons,htonl,ntohs,ntohl的作用?htons:把短整型的主机字节顺序转变为网络字节顺序其它依次类推htons一般用来转变端口,htonl一般用来转IP网络字节顺序是先高位字节,再低位字节;主机字节顺序则视cpu而定干脆扩展一点#include<unistd.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<netinet/in.h>#include<sys/socket.h>#include<sys/types.h>intmain(){???????charstr[]=;???????in_addr_tr1,r2,r3;???????structin_addrinp;??????r1=inet_addr(str);???????if(r1==-1)??{???????????????printf("inet_addrreturn-1when);???????}??else??{???????????????printf("inet_addr:ip=%lu\n",ntohl(r1));???????}???????r2=inet_network(str);??????if(r2==-1)??{??????????????printf("inet_networkreturn-1when);???????}??else??{??????????????printf("inet_network:ip=%lu\n",r2);???????}??????r3=inet_aton(str,&inp);?????if(r3==0)??{?????????????printf("inet_atonreturn-1when);???????}??else???????{?????????????printf("inet_aton:ip=%lu\n",ntohl(inp.s_addr)); ??????}???????return0;}==================================================================== 3.在c语言中,static函数与普通函数有什么区别?1.全局静态变量?在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.请问TCP/IP协议分为哪几层?FTP协议属于哪一层?答:可以分为物理层,数据链路层,网络层,传输层,应用层应用层:应用程序间沟通的层,如简单电子传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。
如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
如ARP是地址解析协议,在这一层的时候吧IP地址转换为物理地址网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
另外补充一下OSI的七层所对应的协议:应用层(Application):应用程序网关(application gateway)Telnet: 远程登录(在应用层连接两部分应用程序)FTP(File Transfer Protocol):文件传输协议HTTP(Hyper Text Transfer Protocol):超文本传输协议SMTP(Simple Mail Transter Protocol):简单传输协议POP3(Post Office Ptotocol):邮局协议SNMP(Simple Network Mangement Protocol)简单网络管理协议DNS(Domain Name System):域名系统传输层(Transport):传输网关(transport gateway)TCP(Transmission Control Potocol):传输控制协议(在传输层连接两个网络)UDP(User Data Potocol):用户数据协议网络层(Internet):多协议路由器(multiprotocol router)IP(Internet Protocol):网络协议(在异构网络间转发分组)ARP(Address Resolution Protocol):地址解析协议RARP(Reverse Address Resolution Protocol) :逆地址解析协议ICMP(Internet Control Message Protocol):因特网控制消息协议IGMP(Internet Group Manage Protocol):因特网组管理协议BOOTP (Bootstrap):可选安全启动协议数据链路层(Data Link):网桥(bridge)交换机(switcher)HDLC(High Data Link Control):高级数据链路控制(在LAN之间存储-转发数据链路针)SLIP(Serial Line IP):串行线路IPPPP(Point-to-Point Protocol):点到点协议802.2等物理层(Physical):中继器(repeater)集线器(hub)(放大或再生弱的信号,在两个电缆段之间复制每一个比特)再回过头来看,ftp是用tcp写的一个文件传输协议,明显就是在应用层了====================================================================2.在网络应用中,函数htons,htonl,ntohs,nt ohl的作用?htons:把短整型的主机字节顺序转变为网络字节顺序其它依次类推htons一般用来转变端口,htonl一般用来转IP网络字节顺序是先高位字节,再低位字节;主机字节顺序则视cpu而定干脆扩展一点#include<unistd.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<netinet/in.h>#include<sys/socket.h>#include<sys/types.h>int main(){char str[]="255.255.255.255";in_addr_t r1,r2,r3;struct in_addr inp;r1=inet_addr(str);if(r1==-1){printf("inet_addr return -1 when 255.255.255.25 5\n");}else{printf("inet_addr:ip=%lu\n",ntohl(r1));}r2=inet_network(str);if(r2==-1){printf("inet_network return -1 when 255.255.255.2 55\n");}else{printf("inet_network:ip=%lu\n",r2);}r3=inet_aton(str,&inp);if(r3==0){printf("inet_aton return -1 when 255.255.255.255\n ");}else{printf("inet_aton:ip=%lu\n",ntohl(inp.s_addr));}return 0;}====================================================================3.在c语言中,static函数与普通函数有什么区别?1. 全局静态变量在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。
1)存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)。
2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)。
3)作用域:全局静态变量在声明他的文件之外是不可见的。
准确地讲从定义之处开始到文件结尾。
定义全局静态变量的好处:<1>不会被其他文件所访问,修改。
<2>其他文件中可以使用相同名字的变量,不会发生冲突。
2. 局部静态变量在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。
1)存中的位置:静态存储区。
2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)。
3)作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。
注:当static用来修饰局部变量的时候,它就改变了局部变量的存储位置,从原来的栈中存放改为静态存储区。
考试,大提示局部静态变量在离开作用域之后,并没有被销毁,而是仍然驻留在存当中,直到程序结束,只不过我们不能再对他进行访问。
当static用来修饰全局变量的时候,它就改变了全局变量的作用域(在声明他的文件之外是不可见的),但是没有改变它的存放位置,还是在静态存储区中。
3. 静态函数在函数的返回类型前加上关键字static,函数就被定义成为静态函数。
函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。
定义静态函数的好处:<1> 其他文件中可以定义相同名字的函数,不会发生冲突。
<2> 静态函数不能被其他文件所用。
存储说明符auto,register,extern,static,对应两种存储期:自动存储期和静态存储期。
auto和register对应自动存储期。
具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。
关键字extern和static用来说明具有静态存储期的变量和函数。
用static声明的局部变量具有静态存储持续期(static storage duration),或静态围(static extent)。
虽然他的值在函数调用之间保持有效,但是其名字的可视性仍限制在其局部域。
静态局部对象在程序执行到该对象的声明处时被首次初始化。
扩展分析:术语static有着不寻常的历史.起初,在C中引入关键字static是为了表示退出一个块后仍然存在的局部变量。
随后,static C中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。
为了避免引入新的关键字,所以仍使用static关键字来表示这第二种含义。
最后,C++重用了这个关键字,并赋予它与前面不同的第三种含义:表示属于一个类而不是属于此类的任何特定对象的变量和函数(与Java中此关键字的含义相同)。
写个例子,比对一下#include <stdio.h>#include <stdlib.h>extern int a;//声明static int b=5;a=0;//初始化void func1(){printf("a=%d;b=%d\n",a,b);return ;}void func2(){static int i=333;i++;printf("i=%d\n",i);return ;}int main(){a=20;func1();func2();func2();return 0;}输出为:a=20;b=5i=334i=335总的来说,静态的东西就是只在本文件中可见,而且在本文件中保持,它只初始化一次,存在静态存储区中,再对它进行初始化不会引起错误,但是没有用了====================================================================4.请实现存复制函数void memcpy(void *dst,void *src,int size)?网上搜了一下void *MyMemCopy(void *dest,const void *src,size_t count){char *pDest=static_cast<char *>(dest);const char *pSrc=static_cast<const char *>(src);if( pDest>pSrc && pDest<pSrc+count ){for(size_t i=count-1; i<=0; ++i){pDest[i]=pSrc[i];}}else{for(size_t i=0; i<count; ++i){pDest[i]=pSrc[i];}}return pDest;}哎,搞IT真的没有前途,你看,人都这么聪明的?!就这还考虑到了,幸好,我还不是笨到家,还能看得懂稍微解释下:如果是这个情况:src --------------------dst --------------------------说明两个在存区有重叠的地方。