华为(嵌入式)笔试题

合集下载

嵌入式软件工程师笔试题华为优选稿

嵌入式软件工程师笔试题华为优选稿

嵌入式软件工程师笔试题华为集团公司文件内部编码:(TTT-UUTT-MMYB-URTTY-ITTLTY-(一)1什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头。

2char*constpcharconst*pconstchar*p上述三个有什么区别答案:char*constp;//常量指针,p的值不可以修改charconst*p;//指向常量的指针,指向的常量值不可以改constchar*p;//和charconst*p3charstr1[]="abc";charstr2[]="abc";constcharstr3[]="abc";constcharstr4[]="abc";constchar*str5="abc";constchar*str6="abc";char*str7="abc";char*str8="abc";cout<<(str1==str2)<<endl;cout<<(str3==str4)<<endl;cout<<(str5==str6)<<endl;out<<(str7==str8)<<endl;结果是:0011str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。

4以下代码中的两个sizeof用法有问题吗?[C易]voidUpperCase(charstr[])//将str中的小写字母转换成大写字母{for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++i)if('a'<=str[i]&&str[i]<='z')str[i]-=('a'-'A');}charstr[]="aBcDe";cout<<"str字符长度为:"<<sizeof(str)/sizeof(str[0])<<endl; UpperCase(str);cout<<str<<endl;答案:函数内的sizeof有问题。

嵌入式试题及答案

嵌入式试题及答案

嵌入式试题及答案一、单项选择题(每题2分,共20分)1. 嵌入式系统是指:A. 具有特定功能的计算机系统B. 只运行单一任务的计算机系统C. 可以运行多个操作系统的计算机系统D. 以上都不是2. 下列哪项不是嵌入式系统的典型特征?A. 实时性B. 可扩展性C. 资源受限D. 专用性3. 嵌入式系统中,通常使用哪种类型的处理器?A. 通用处理器B. 精简指令集处理器(RISC)C. 复杂指令集处理器(CISC)D. 以上都是4. 在嵌入式系统中,操作系统的作用是什么?A. 管理计算机硬件资源B. 提供用户界面C. 执行所有程序D. 以上都不是5. 以下哪个不是嵌入式操作系统?A. LinuxB. WindowsC. VxWorksD. QNX6. 嵌入式系统的硬件设计通常需要考虑哪些因素?A. 成本B. 功耗C. 尺寸D. 所有以上7. 以下哪个是嵌入式系统的通信接口?A. USBB. HDMIC. VGAD. 所有以上8. 嵌入式系统中的中断处理机制主要用于:A. 程序调试B. 系统启动C. 任务调度D. 错误检测9. 以下哪个不是嵌入式系统的应用领域?A. 工业控制B. 消费电子C. 桌面计算D. 汽车电子10. 嵌入式系统的开发流程通常包括哪些阶段?A. 需求分析B. 系统设计C. 编码与测试D. 所有以上答案:1. A2. B3. B4. A5. B6. D7. D8. C9. C10. D二、多项选择题(每题3分,共15分)11. 嵌入式系统设计时需要考虑的非功能性需求包括:A. 性能B. 可靠性C. 安全性D. 可维护性12. 以下哪些是嵌入式系统开发中的编程语言?A. CB. C++C. JavaD. Python13. 在嵌入式系统中,哪些因素会影响系统的功耗?A. 处理器的运行频率B. 内存的使用量C. 外设的使用D. 所有以上14. 嵌入式系统的软件架构通常包括:A. 硬件抽象层B. 操作系统内核C. 设备驱动程序D. 应用程序15. 以下哪些是嵌入式系统的调试工具?A. 逻辑分析仪B. 仿真器C. 调试器D. 编译器答案:11. ABCD12. ABC13. D14. ABCD15. ABC三、简答题(每题5分,共10分)16. 简述嵌入式系统的实时性要求。

嵌入式考试题

嵌入式考试题

嵌入式考试题
一、选择题
1. 下列哪种不是嵌入式系统的特点?
A. 实时性
B. 高可靠性
C. 批量生产
D. 低功耗
2. 嵌入式系统中常用的处理器是?
A. Intel i7
B. ARM Cortex
C. AMD Ryzen
D. NVIDIA GeForce
3. 下列哪种不是嵌入式系统常用的操作系统?
A. Linux
B. Android
C. Windows
D. FreeRTOS
4. 嵌入式系统中常用的编程语言是?
A. Java
B. C++
C. Python
D. HTML
5. 以下哪种外设不能算作嵌入式系统的外设?
A. LCD显示屏
B. 小键盘
C. 摄像头
D. 鼠标
二、简答题
1. 什么是嵌入式系统?举例说明。

2. 嵌入式系统的设计流程包括哪些步骤?简要描述。

3. 什么是实时系统?嵌入式系统中为什么需要实时性?
4. 解释嵌入式系统中的中断处理机制。

5. 介绍一种常用的嵌入式系统开发工具及其功能。

三、计算题
1. 假设嵌入式系统中有一个定时器中断,中断间隔为10ms,如果在中断服务程序中运行一个函数需要5ms,问系统能否满足实时性要求?
2. 假设一个嵌入式系统的主频为50MHz,要求其通过串口发送一个100字节的数据包,波特率为9600bps,计算发送该数据包需要多长时间?
3. 假设一个嵌入式系统的Flash存储器容量为512MB,每个数据包大小为1KB,存储器可擦写次数为10000次,计算该存储器的寿命能够支持多少次数据包的写入操作?
以上为嵌入式考试题,请根据题目要求完成题目。

嵌入式笔试题及答案

嵌入式笔试题及答案

嵌入式笔试题及答案一、单选题(每题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秒钟,然后重复该过程。

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

嵌入式考试试题及答案

嵌入式考试试题及答案

一、填空题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。

1、一般而言,嵌入式系统的构架可以分为4个部分:分别是(处理器)、存储器、输入/输出和软件,一般软件亦分为操作系统相关和(应用软件)两个主要部分。

2、根据嵌入式系统使用的微处理器,可以将嵌入式系统分为嵌入式微控制器, (嵌入式微处理器),(嵌入式DSP处理器)以及片上系统。

3、操作系统是联接硬件与应用程序的系统程序,其基本功能有(进程管理)、进程间通信、(内存管理)、I/O资源管理。

4、从嵌入式操作系统特点可以将嵌入式操作系统分为(实时操作系统)和分时操作系统,其中实时系统亦可分为(硬实时操作系统)和软实时系统。

5、内核负责管理各个任务,或者为每个任务分配CPU时间,并且负责任务之间的(通信),内核的基本服务是(任务切换)。

6、嵌入式开发一般采用(宿主机/目标机)方式,其中宿主机一般是指( PC机/台式机)。

7、哈佛体系结构数据空间和地址空间(分开),ARM7TDMI 采用(冯诺依曼体系)的内核架构。

二、选择题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。

1、要使CPU能够正常工作,下列哪个条件不是处理器必须满足的。

( D )(A) 处理器的编译器能够产生可重入代码(B)在程序中可以找开或者关闭中断(C) 处理器支持中断,并且能产生定时中断(D)有大量的存储空间 2、下面哪种操作系统最方便移植到嵌入式设备中。

( D )(A) DOS(B)UNIX(C) Windows xp (D)LINUX在CPU中,__(3)__可用于传送和暂存用户数据,为ALU 执行算术逻辑运算提供工作区。

(3)A. 程序计数器 B. 累加寄存器 C. 程序状态寄存器 D. 地址寄存器●关于在I/O 设备与主机间交换数据的叙述,“__(4)__”是错误的。

(4)A. 中断方式下,CPU 需要执行程序来实现数据传送任务 B. 中断方式和DMA 方式下,CPU 与I/O 设备都可同步工作C. 中断方式和DMA 方式中,快速I/O 设备更适合采用中断方式传递数据D. 若同时接到DMA 请求和中断请求, CPU 优先响应DMA 请求●关于校验方法,“__(5)__ ”是正确的。

嵌入式面试笔试题

嵌入式面试笔试题

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(精简指令集计算机)架构。

嵌入式工程师笔试试卷及答案

嵌入式工程师笔试试卷及答案

嵌入式工程师笔试试卷及答案在嵌入式系统领域,嵌入式工程师是一种非常重要的职业。

他们需要掌握硬件和软件技能,以及在资源受限的环境下进行开发的技能。

本试卷旨在测试嵌入式工程师的专业知识和技能。

第一部分:选择题这一部分包括5个选择题,每个问题有4个选项,只有一个选项是正确的。

这部分的目的是测试对嵌入式系统的基础知识的掌握。

下列哪个不是嵌入式系统的特点?A. 硬件资源受限B. 实时性要求高C. 软件开发成本低D. 系统可靠性要求高答案:C下列哪个不是嵌入式系统中常用的总线标准?A. USBB. I2CC. RS232D. HDMI答案:D下列哪个不是C语言的关键字?A. switchB. caseC. classD. break答案:C下列哪个不是常用的编译器?A. GCCB. KeilC. IARD. Visual Studio答案:D下列哪个不是常用的调试工具?A. JTAGB. GDBC. SVND. Trace32答案:C第二部分:简答题这一部分包括2个简答题,每个问题需要回答2-3个句子。

这部分的目的是测试对嵌入式系统的基本原理和通信协议的理解。

什么是中断?中断的作用是什么?答:中断是指在CPU运行程序的过程中,由于某些事件的发生,需要立即暂停当前程序的执行,转而去执行另一段代码的一种机制。

中断的作用是提高CPU 的利用率,增强系统的实时性和可靠性,实现CPU与外设的异步通信。

请简述I2C总线的工作原理。

答:I2C总线是一种串行通信协议,通过两根线SCL和SDA实现设备间的通信。

SCL线是时钟线,由主设备控制;SDA线是数据线,用于主设备和从设备之间的数据传输。

在传输数据时,主设备先发送起始信号,然后发送从设备地址和读/写标志,接着发送数据或者请求数据,最后发送停止信号。

从设备在接收到起始信号后,会根据地址来判断是否需要响应主设备的请求。

第三部分:编程题这一部分包括2个编程题,需要在规定的环境下编写代码。

嵌入式软件工程师笔试题华为

嵌入式软件工程师笔试题华为

嵌入式软件工程师笔试题华为IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】(一)1什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头。

2char*constpcharconst*pconstchar*p上述三个有什么区别答案:char*constp;7请问以下代码有什么问题:int?main(){chara;char*str=&a;strcpy(str,"hello");printf(str);return0;}答案:没有为str分配内存空间,将会发生异常,问题出在将一个字符串复制进一个字符变量指针所指地址。

虽然可以正确输出结果,但因为越界进行内存读写而导致程序崩溃。

8Char*s="AAA";printf("%s",s);s[0]='B';printf("%s",s);有什么错?答案:"AAA"是字符串常量。

s是指针,指向这个字符串常量,所以声明s的时候就有问题。

cosntchar*s="AAA";然后又因为是常量,所以对是s[0]的赋值操作是不合法的。

9写一个“标准”宏,这个宏输入两个参数并返回较小的一个。

答案:.#defineMin(X,Y)((X)>(Y)(Y):(X))b=a^b;a=a^b;ora^=b^=a;17c和c++中的struct有什么不同?答案:c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。

c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private18.#include<>?#include<>?voidgetmemory(char*p){p=(char*)malloc(100);strcpy(p,"helloworld");}intmain(){char*str=NULL;getmemory(str);printf("%s/n",str);free(str);return0;}答案:程序崩溃,getmemory中的malloc不能返回动态内存,free()对str操作很危险19charszstr[10];产生什么结果为什么答案:长度不一样,会造成非法的OS20列举几种进程的同步机制,并比较其优缺点答案:原子操作信号量机制自旋锁管程,会合,分布式系统21.进程之间通信的途径答案:共享存储系统消息传递系统管道:以文件系统为基础22.进程死锁的原因答案:资源竞争及进程推进顺序非法23.死锁的4个必要条件答案:互斥、请求保持、不可剥夺、环路24.死锁的处理答案:鸵鸟策略、预防策略、避免策略、检测与解除死锁25.操作系统中进程调度策略有哪几种答案:FCFS(先来先服务),优先级,时间片轮转,多级反馈26.类的静态成员和非静态成员有何区别?答案:类的静态成员每个类只有一个,非静态成员每个对象一个27.纯虚函数如何定义使用时应注意什么答案:virtualvoidf()=0;是接口,子类必须要实现28.数组和链表的区别答案:数组:数据顺序存储,固定大小;链表:数据可以随机存储,大小可动态改变的七层模型是什么?tcp/udp是属于哪一层tcp/udp有何优缺点答案:应用层表示层会话层传输层网络层链路层物理层;tcp/udp属于传输层;TCP服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。

-嵌入式硬件笔试考试试题.doc

-嵌入式硬件笔试考试试题.doc

入职笔试题(嵌入式硬件)一、填空题(共16分,每空2分)1金属膜电阻RJ23选収的几项主要指标是____________________________2电容的材质有_______________________ ,在电子电路中的作用有 _3电感的种类有________________________ ,—般用___________________4图一所示虚线框中的电阻与电容构成____________ 电路。

图一5你所熟悉或了解的半导体二极管有____________ ,它们的特点是二、你了解过哪些原理的传感器,简单描述一下功能?(4分)三、电路如图二所示,己知uo=-55ul,其余参数如图中所标注,试求出R5的值。

(10分)R2---- -- ------------- P-lOOkQ ------ rA四、图三为12VDC供电、1〜5V输出的压力变送器电路原理图,请说明图中二极管Di, TVS管Z1,电位器WZ 和电位器WS的作用。

(10分)來检测其功能。

图二五、W117为对调试三端稳压器,输出端和调整端之间(即3脚与2脚之间)的电压是非常稳定的电压, 其值为1.25V 。

输出电流可达1.5A 。

图四所示是由W117组成的输出电压可调的稳压电路,外加保护电路。

a ) 请指出图中的错误。

并说明为什么。

(2分)b ) 请说明图中各元件的作用(8分)六、对于电子电路屮的低功耗设计,你在软硬件上会采取哪些措施?(8分)O.luf图三图四七、嵌入式单片机你常用的是哪些?请简单描述一下你对它的使用经历?(8分)八、你了解哪些模数、数模转换器件,简述对它的使用案例?(8分)九、你熟悉哪些数字接口或现场总线,他们分别的优缺点是什么?(8分)十、你对电磁兼容试验和环境应力筛选试验有哪些认识?可以结合经历谈一谈解决方法?(8分)十一、表一为某圧力传感器的两个行程的测试数据,请试计算出该传感器的非线性.迟滞和重复性。

嵌入式软件工程师笔试题_华为

嵌入式软件工程师笔试题_华为

(一)1什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头。

2 char * const p char const * p const char *p 上述三个有什么区别?答案:char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改 const char *p; //和char const *p3char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4[] = "abc";const char *str5 = "abc";const char *str6 = "abc";char *str7 = "abc";char *str8 = "abc";cout < < ( str1 == str2 ) < < endl;cout < < ( str3 == str4 ) < < endl;cout < < ( str5 == str6 ) < < endl;out < < ( str7 == str8 ) < < endl;结果是:0 0 1 1str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。

4以下代码中的两个sizeof用法有问题吗?[C易]void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母{ for( size_t i=0; i <sizeof(str)/sizeof(str[0]); ++i )if( 'a' <=str[i] && str[i] <='z' )str[i] -= ('a'-'A' );}char str[] = "aBcDe";cout < < "str字符长度为: " < < sizeof(str)/sizeof(str[0]) < < endl;UpperCase( str );cout < < str < < endl;答案:函数内的sizeof有问题。

嵌入式面试笔试题目——附部分答案

嵌入式面试笔试题目——附部分答案

嵌⼊式⾯试笔试题⽬——附部分答案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 提供时钟。

嵌入式笔试题及答案

嵌入式笔试题及答案

嵌入式笔试题及答案一、选择题(每题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. 什么是嵌入式系统?请简要描述其特点和应用场景。

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

华为(嵌入式)笔试题

华为(嵌入式)笔试题

(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头。

(2)char * const p char const * p const char *p 上述三个有什么区别?答案:char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改 const char *p; //和char const *p (3)char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < < ( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout < < ( str7 == str8 ) < < endl;结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。

(4)以下代码中的两个sizeof用法有问题吗?[C易] void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母 { for( size_t i=0;i <sizeof(str)/sizeof(str[0]); ++i ) if( 'a' <=str[i] && str[i] <='z' ) str[i] -= ('a'-'A' ); } char str[] = "aBcDe"; cout < < "str字符长度为: " < < sizeof(str)/sizeof(str[0]) < < endl; UpperCase( str ); cout < < str < < endl; 答案:函数内的sizeof有问题。

嵌入式软件工程师笔试题华为面试宝典

嵌入式软件工程师笔试题华为面试宝典

1、将一个字符串逆序2、将一个链表逆序3、计算一个字节里(byte)里面有多少bit被置14、搜索给定的字节(byte)5、在一个字符串中找到可能的最长的子字符串6、字符串转换为整数7、整数转换为字符串/** 题目:将一个字符串逆序* 完成时间:深圳极讯网吧* 版权归刘志强所有* 描述:写本程序的目的是希望练一下手,希望下午去面试能成功,不希望国庆节之后再去找工作拉!*/#include <iostream>using namespace std;//#define NULL ((void *)0)char * mystrrev(char * const dest,const char * const src){if (dest==NULL && src==NULL)return NULL;char *addr = dest;int val_len = strlen(src);dest[val_len] = '\0';int i;for (i=0; i<val_len; i++){*(dest+i) = *(src+val_len-i-1); }return addr;}main(){char *str="asdfa";char *str1=NULL;str1 = (char *)malloc(20);if (str1 == NULL)cout<<"malloc failed";cout<<mystrrev(str1,str);free(str1);str1=NULL;//杜绝野指针}p=head;q=p->next;while(q!=NULL){temp=q->next;q->next=p;p=q;q=temp;}这样增加个辅助的指针就行乐。

ok 通过编译的代码:#include <stdio.h>#include <ctype.h>#include <stdlib.h>typedef struct List{int data;struct List *next;}List;List *list_create(void){struct List *head,*tail,*p;int e;head=(List *)malloc(sizeof(List));tail=head;printf("\nList Create,input numbers(end of 0):"); scanf("%d",&e);while(e){p=(List *)malloc(sizeof(List));p->data=e;tail->next=p;tail=p;scanf("%d",&e);}tail->next=NULL;return head;}List *list_reverse(List *head){List *p,*q,*r;p=head;q=p->next;while(q!=NULL){r=q->next;q->next=p;p=q;q=r;}head->next=NULL;head=p;return head;}void main(void){struct List *head,*p;int d;head=list_create();printf("\n");for(p=head->next;p;p=p->next) printf("--%d--",p->data);head=list_reverse(head);printf("\n");for(p=head;p->next;p=p->next)printf("--%d--",p->data);}编写函数数N个BYTE的数据中有多少位是1。

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

(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头。

(2)char * const p char const * p const char *p 上述三个有什么区别? 答案:char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改 const char *p; //和char const *p(3)char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < < ( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout < < ( str7 == str8 ) < < endl;结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。

(4)以下代码中的两个sizeof用法有问题吗?[C易] void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母{ for( size_t i=0; i <sizeof(str)/sizeof(str[0]); ++i )if( 'a' <=str[i] && str[i] <='z' )str[i] -= ('a'-'A' ); }char str[] = "aBcDe";cout < < "str字符长度为: " < < sizeof(str)/sizeof(str[0]) < < endl;UpperCase( str ); cout < < str < < endl;答案:函数内的sizeof有问题。

根据语法,sizeof如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。

函数外的str是一个静态定义的数组,因此其大小为6,因为还有'\0',函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof作用于上只将其当指针看,一个指针为4个字节,因此返回4。

(5)一个32位的机器,该机器的指针是多少位答案:指针是多少位只要看地址总线的位数就行了。

80386以后的机子都是32的数据总线。

所以指针的位数就是4个字节了。

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].7。

请问以下代码有什么问题:int main(){ char a; char *str=&a;strcpy(str,"hello");printf(str);return 0; } 答案:没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。

虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。

8。

char* s="AAA"; printf("%s",s); s[0]='B'; printf("%s",s); 有什么错?答案:"AAA"是字符串常量。

s是指针,指向这个字符串常量,所以声明s的时候就有问题。

cosnt char* s="AAA"; 然后又因为是常量,所以对是s[0]的赋值操作是不合法的。

9。

写一个“标准”宏,这个宏输入两个参数并返回较小的一个。

答案:.#define Min(X, Y) ((X)>(Y)?(Y):(X)) //结尾没有‘;’10。

嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。

答案:while(1){}或者for(;;)11。

关键字static的作用是什么?答案:定义静态变量12。

关键字const有什么含意?答案:表示常量不可以修改的变量。

13。

关键字volatile有什么含意?并举出三个不同的例子?答案:提示编译器对象的值可能在编译器未监测到的情况下改变。

14。

int (*s[10])(int) 表示的是什么啊?答案:int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int param)的函数。

15。

有以下表达式: int a=248; b=4;int const c=21;const int *d=&a; int *const e=&b;int const *f const =&a; 请问下列表达式哪些会被编译器禁止?为什么?答案:*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f; *c 这是个什么东东,禁止 *d 说了是const, 禁止 e = &a 说了是const 禁止 const *f const =&a; 禁止16交换两个变量的值,不使用第三个变量。

即a=3,b=5,交换之后a=5,b=3; 答案:有两种解法, 一种用算术算法, 一种用^(异或) a = a + b; b = a - b; a = a - b; or a = a^b;// 只能对int,char.. b = a^b; a = a^b; or a ^= b ^= a;17.c和c++中的struct有什么不同?答案:c和c++中struct的主要区别是c中的struct 不可以含有成员函数,而c++中的struct可以。

c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private18.#include <stdio.h> #include <stdlib.h> void getmemory(char *p) { p=(char *) malloc(100); strcpy(p,"hello world"); } int main( ) { char*str=NULL; getmemory(str); printf("%s/n",str); free(str); return 0; } 答案:程序崩溃,getmemory中的malloc 不能返回动态内存, free()对str操作很危险19.char szstr[10]; strcpy(szstr,"0123456789"); 产生什么结果?为什么?答案: 长度不一样,会造成非法的OS20.列举几种进程的同步机制,并比较其优缺点。

答案: 原子操作 信号量机制 自旋锁 管程,会合,分布式系统21.进程之间通信的途径答案:共享存储系统消息传递系统管道:以文件系统为基础22.进程死锁的原因答案:资源竞争及进程推进顺序非法23.死锁的4个必要条件答案:互斥、请求保持、不可剥夺、环路24.死锁的处理答案:鸵鸟策略、预防策略、避免策略、检测与解除死锁25. 操作系统中进程调度策略有哪几种?答案:FCFS(先来先服务),优先级,时间片轮转,多级反馈26.类的静态成员和非静态成员有何区别?答案:类的静态成员每个类只有一个,非静态成员每个对象一个27.纯虚函数如何定义?使用时应注意什么?答案:virtual void f()=0; 是接口,子类必须要实现28.数组和链表的区别答案:数组:数据顺序存储,固定大小连表:数据可以随机存储,大小可动态改变29.ISO的七层模型是什么?tcp/udp是属于哪一层?tcp/udp有何优缺点?答案:应用层表示层会话层运输层网络层物理链路层物理层 tcp /udp属于运输层 TCP 服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。

与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。

由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。

tcp: 提供稳定的传输服务,有流量控制,缺点是包头大,冗余性不好 udp: 不提供稳定的服务,包头小,开销小30:(void *)ptr 和 (*(void**))ptr的结果是否相同?其中ptr为同一个指针答案:.(void *)ptr 和 (*(void**))ptr值是相同的31:int main() { int x=3; printf("%d",x); return 1; } 问函数既然不会被其它函数调用,为什么要返回1?答案:mian中,c标准认为0表示成功,非0表示错误。

相关文档
最新文档