嵌入式研发工程师面试试题大全(ANSI CC++方面的知识 )

软件工程师面试题嵌入式CC++笔试题(含答案) 各种笔试面试嵌入式软件工程师的题目 很全的 立即下载
一.ANSI C/C++方面的知识
1、简答题。
1、 如何在C中初始化一个字符数组。
逐个字符<span class="t" 合法吗?使用它有什么隐患?
没有考虑到字符串结束符‘\0’,所以会产生意想不到的错误。
  比如以下程序:
int main()
{
       int i;
    char p[6] = {''''a'''',''''b'''',''''c'''',''''d'''',''''e'''',''''f''''};
    printf("%s",p);
    while(1);
    return 0;
}
运行后显示: abcdef@
问题3:const & 指针
类型声明中const用来修饰一个常量,有如下两种写法,那么,请问,下面分别用const限定不可变的内容是什么?    
1)、const在前面
a. const int nValue; //nValue是const
把类型int撇开,变量nValue作为一个整体,因此 nValue是const型;
b. const char *pContent; //*pContent是const, pContent可变
把类型char撇开,变量 *pContent作为一个整体,因此 *pContent是const型;
c. const (char *) pContent;//pContent是const,*pContent可变
把类型char * 撇开,注意这里(char * )是一个整体,而变量 pContent作为一个整体,因此 pContent是const型;
d. char* const pContent; //pContent是const,*pContent可变
const与变量间没有类型,变量 pContent作为一个整体,因此 pContent是const型;
e. const char* const pContent; //pContent和*pContent都是const
这里分为两层,外层:把类型char 撇开,变量 * const pContent作为一个整体,因此 * pContent是const型;内层:没有类型,因此 pContent 是 const 型。
2)、const在后面,与上面的声明对等 (这类型更容易判断)
a.  int const nValue; // nValue是const
    const与变量之间没有类型,const后面那部分整体是const型,因此nValue是const型
b.  char const * pContent;// *pContent是const, pContent可变
    const与变量之间没有类型,const后面那部分整体是const型,因此 * pContent是const型
c.  (char *) const pContent;//pContent是const,*pContent可变
    const与变量之间没有类型,const后面那部分整体是const型,因此 pContent是const型
d.  char* const pContent;// pContent是const,*pContent可变
    const与变量之间没有类型,const后面那部分整体是const型,因此 pContent是const型
e.  char const* const pContent;// pContent和*pContent都是const
分为两层,外层:撇开类型char,const后面那部分整体* const pContent是const型,因此 * pContent是const型;内层:const与pContent之间无类型,因此pContent是const型。
  
C++中CONST
  C中常用:#define 变量名 变量值定义一个值替代,然而却有个致命缺点:缺乏类型检测机制,这样预处理理在C++中成为可能引发错误的隐患,于是引入const.
const使用:
1. 用于指针的两种情况:const是一个左结合的类型修饰符.
  int const *A; //A可变,*A不可变
  int *const A; //A不可变,*A可变
2.限定函数的传递值参数:
void function(const int Var); //传递过来的参数在函数内不可以改变.
3.限定函数返回值型.
const int function(); //此时const无意义
const myclassname function(); //函数返回自定义类型myclassname.


20、C语言的volatile的含义是什么。使用时会对编译器有什么暗示。
         volatile的本意是“易变的”
由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化,但有可能会读脏数据。当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。
精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
下面是volatile变量的几个例子:
    1). 并行设备的硬件寄存器(如:状态寄存器)
    2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
    3). 多线程应用中被几个任务共享的变量
        嵌入式系统程序员经常同硬件、中断、RTOS等等打交道,所用这些都要求volatile变量。不懂得volatile内容将会带来灾难。
Volatile的完全扩展:
    1). 一个参数既可以是const还可以是volatile吗?解释为什么。
是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。
    2). 一个指针可以是volatile 吗?解释为什么。
是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个buffer的指针时。
    3). 下面的函数有什么错误:
         int square(volatile int *ptr)
         {
              return *ptr * *ptr;
         }
    这段代码的有个恶作剧。这段代码的目的是用来返指针*ptr指向值的平方,但是,由于*ptr指向一个volatile型参数,编译器将产生类似下面的代码:
    int square(volatile int *ptr)
    {
         int a,b;
         a = *ptr;
         b = *ptr;
         return a * b;
     }
    由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不是你所期望的平方值!正确的代码如下:
     long square(volatile int *ptr)
     {
            int a;
            a = *ptr;
            return a * a;
     }
嵌入式C学习:面试题 嵌入式相关工作,面试题,自己拿来看的,分享出来大家一起共享一下。 立即下载

相关推荐

手把手教你用scRNA-seq和scTCR-seq分析CD8⁺ T细胞在免疫治疗中的动态变化

本文详细介绍了如何整合单细胞RNA测序(scRNA-seq)与单细胞TCR测序(scTCR-seq)技术,深入解析CD8⁺ T细胞在癌症免疫治疗中的动态变化。通过从数据预处理、细胞亚群鉴定到TCR克隆追踪的完整分析流程,揭示了T细胞的功能状态转变与克隆演化规律,为理解免疫应答机制和开发精准治疗策略提供了关键方法学指导。

p8q9r0的博客 567

C/C++易错面试题大集合,嵌入式软件工程师面试题大集合,详解

   许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程 度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10分中的2分。读者可从本文看到strcpy 函数从2分到10分解答的例子,看看自己属于什么样的层次。此外,还有一些面试题考查面试者敏捷的思维能力。...

echo 3733

基于CANopenNode协议栈在正点原子探索者开发板上进行移植

配置好之后进行采用keil IDE进行代码生成即可,还需要进行CANopenNode的代码集成,并参照demo进行代码移植。发送完成后心跳包以1s的周期重新开始发送。正点原子的开发板引出的是CAN1接口。这里的心跳时间间隔设置为100ms。则将心跳包周期设置为0。

wangfandashe的博客 4697

嵌入式笔试面试题(1)---C++

C++的类的继承与多态1、是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? 能2、构造、拷贝构造和赋值运算符的概念3、struct C{ C() { cout &lt;&lt; "construct: C()" &lt;&lt; endl; i = 0; } C(const C &amp;c) { cout &lt;&lt; "cons...

xt18971492243的博客 1608

DDS信号发生器设计避坑指南:从AD9834配置到巴特沃斯滤波实战

本文详细解析了基于AD9834芯片的DDS信号发生器设计中的关键技术要点与常见陷阱,涵盖时钟源选择、寄存器配置时序、巴特沃斯滤波器设计等核心内容。针对中高频段信号质量优化,提供了实用的解决方案和代码示例,帮助工程师规避设计误区,提升信号发生器的性能和稳定性。

2y3u4i5o6p的博客 782

6.14华为OD机试真题 新系统 - 字符串格式调整 (Java/Py/C/C++/Js/Go)

# **字符串格式调整** > 2026 华为OD机试真题 6月14日华为OD上机新系统考试真题 100 分题型 点击查看华为 OD 机试真题完整目录:[2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解](https://blog.youkuaiyun.com/banxia_frontend/article/details/160346662) # 题目描述 输入一个字符串,字符串中只包含大写字母和数字。要求将字符串中的所有数字提取出来,按出现的顺序组

算法大师! 947

嵌入式软件工程师面试题及答案

题目一 上个星期,去深圳一家搞ARM开发的公司面试,HR叫我做了一份卷子,里面都是C编程,心中暗喜,因为这些题基本上都在程序员面试宝典里见过。后来回到学校,在网上搜索,原来这些题都是嵌入式工程师的经典面试题目,很多网站上都可以找得到。现把他贴出来,附上网上的答案,跟大家分享,因为这些题实在太经典了。 预处理器(Preprocessor) 1 . 用预处理指令#define 声明一个常数,用以...

cxyzyywoaini的博客 7万+

【生产实践】PostgreSQL高可用Patroni安装(超详细已踩坑)

一 安装Patroni 0 Patroni 对Python的版本要求 我安装的是Patroni最新版本 :4.0.3,Patroni 对Python 版本有要求,没有具体的版本矩阵,但是根据每个版本发布信息可以得到以下信息 Patroni 4.0 需要 Python 3.8 以上(可以根据下面发布版本信息推理出) Version 3.0.2 Version 3.0.2 dropped support of Python older than 3.6. 版本3.0.2不再支持3.6版本以下的P

DBA之路的博客 1741

嵌入式软件工程师经典面试题127道

1、int a[10]={1,2,3,4,5,6,7,8,9,0}; int *p=&a[1]; 则p[6]等于8 2、整数数组清零:bzero(),memset()。 3、sizeof();测试变量所占地址的字节数 4、 main() { char *str[]={"ab","cd","ef","gh","ij","kl"}; char *t...

lyh290188的博客 3万+

vue3:html2canvas+jspdf将页面以A4导出为PDF文件,解决内容截断+在分页处截断问题详细排查和解决教程(jsPDF + html2canvas A4分页截断、内容分页时存在截断)

html2canvas + jsPDF 解决内容截断问题,vue3 jspdf-html2canvas生成多页pdf防截断处理(包含代码),vue3解决html2canvas + jsPDF导出pdf分页内容截断问题,jsPDF + html2canvas A4分页截断 完美解决方案(含代码 + 案例),html页面导出pdf截断问题,html2canvas 与 jspdf 相结合生成 pdf 内容被截断的终极解决方案,提供html2canvas+jsPDF将HTML页面以A4纸方式导出为PDF后,内容分页

✅ 精选推荐文章 2245

YOLOv8改进 | 主干篇 | 轻量级的低照度图像增强网络IAT改进YOLOv8暗光检测(全网独家首发)

本文给大家带来的改进机制是轻量级的变换器模型:Illumination Adaptive Transformer (IAT),用于图像增强和曝光校正。其基本原理是通过分解图像信号处理器(ISP)管道到局部和全局图像组件,从而恢复在低光或过/欠曝光条件下的正常光照sRGB图像。具体来说,IAT使用注意力查询来表示和调整ISP相关参数,例如颜色校正、伽马校正。模型具有约90k参数和约0.004s的处理速度,能够在低光增强和曝光校正的基准数据集上持续实现优于最新技术(State-of-The-Art, SOTA)

Snu77的博客 7960

嵌入式C/C++面试题

typedef的使用: 为复杂的声明定义简单的别名; 如结构体的定义: typedef struct _node { void *data; struct _node *prior; struct _node *next; }Node,*PNode; 这里的PNode表示什么意思?PNode a;  相当于  Node *a;  又相当于:struct _nod...

喜豆老爹的博客 3763

ClawManager实战:OpenClaw批量部署+精细化权限管控,运维效率拉满90%

ClawManager彻底解决了OpenClaw规模化部署的运维痛点,它不是简单的“批量部署工具”,而是一套完整的企业级管理方案——从模板配置、批量部署,到权限管控、监控审计、AI治理,覆盖OpenClaw全生命周期管理,让OpenClaw从“个人工具”升级为“企业级AI基础设施”。对于中小企业,Docker一键部署即可快速落地,无需复杂配置;对于大型企业,K8s部署支持高可用、横向扩展,结合Keycloak对接企业现有认证系统,可完美融入企业IT架构。

2601_94871597的博客 608

【STM32】 ADC 完全指南:从模拟信号采样量化到五大架构原理

本文系统介绍ADC核心概念与五大主流架构。模拟信号具时间与幅值连续性,需经采样(满足奈奎斯特准则防混叠)、量化(引入±1/2LSB误差,SNR≈6.02N+1.76dB)、编码三步转为数字信号。重点解析Flash(并行高速但受限于比较器数量)、SAR(逐次逼近,低功耗适合MCU如STM32)、双积分(高精度抗工频,用于万用表)、流水线(高速吞吐)及Σ-Δ(高分辨率,靠过采样与噪声整形)五类架构原理、优缺点与应用场景。强调分辨率≠精度,选型本质是速度、精度、功耗与面积的权衡。

专注后端与底层技术,分享实战干货与学习笔记,梦想进入字节跳动,步履不停,热爱不止。 498

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

嵌入式:2.STM32底层基础(存储、寄存器、时钟、总线、GPIO、寄存器点灯)

存储系统用来存放程序、数据、设备状态,核心三大作用:存放程序代码、保存运行时数据(全局、局部、栈、堆)、数据持久化(比如W25Q64 Flash,可以搭配文件系统)。

2401_86731574的博客 364

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

基于STM32的智能浇花系统

本文设计基于STM32F103C8T6的智能浇花系统,集成DHT11、YL-69、MQ-135、GL5528四类传感器,实现温湿度、土壤湿度、CO₂浓度与光照的实时监测。系统支持自动、手动、远程三模式联动控制,通过ESP8266-01S以MQTT协议上云,配合手机APP实现数据可视化与远程指令下发。硬件采用多通道ADC采样、继电器驱动与OLED显示,软件实现精准时序控制与双向通信。测试表明系统稳定可靠,完整覆盖“感知—控制—云联”IoT全链路,具备高扩展性与工程实践价值。

weixin_45732499的博客 172

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

20 嵌入式系统架构:架构模式、实时操作系统、鸿蒙案例

嵌入式架构模式怎么选、RTOS 和通用操作系统差在哪、优先级反转怎么破?本篇把前后台、中断驱动、管态目态几种结构排成一条演进线,手把手算 RMS 可调度界限、判断任务集能不能跑得动,再把优先级继承与优先级天花板两种解法对上号,配鸿蒙案例讲清工程落地。

weixin_46316564的博客 198

ARM64-GNU汇编器

o伪指令分配大小例子伪指令分配大小例子.byte1 字节.byte 0x412 字节.word / .long 4 字节8 字节.ascii字符串(不加 \0)字符串(自动加 \0).byte:把 8位数当成数据插入汇编代码中。.hword和 .short:把16 位数当成数据插入汇编代码中。.long和 .int:这两个伪指令的作用相同,都把 32位数当成数据插入汇编代码中。.word:把 32位数当成数据插入汇编代码中。

weixin_43903002的博客 196

认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇14

本文系统阐述了STM32晶振电路设计要点,强调负载电容匹配与R_Ext必要性需基于计算验证,指出PCB寄生参数对振荡精度影响显著。重点提出振荡器PCB设计规范:缩短走线、加地保护环、分离地平面、避免串扰,并说明焊接工艺与环境防护对稳定性的重要性。同时解析内部时钟不可用于USB因温漂大,且PLL不放大ppm误差。最后推荐使用MEMS振荡器替代传统晶振,实现低功耗、小体积与高可靠性。

一只天天被叨叨的小可爱 293

两节干电池升压3.3V芯片选型指南:PW5100/PW5103/PW5150一文搞懂

遥控器、血压计、无线鼠标键盘、门磁报警器等干电池供电设备, 如何将 1~3V 电池电压稳定升压到 3.3V 给 MCU 和传感器供电?PW5100 / PW5103 系列专为 1~3 节碱性电池或镍氢电池低压升压场景优化, 0.7V 超低启动、95% 高效率、仅 4 颗外围器件,是干电池升压的首选方案。只要是 1~3 节碱性电池或镍氢电池供电、需要稳定 3.3V 或 5V 输出的低功耗场景, PW5100 / PW5103 系列都是首选方案。两节串联电压范围仅 1.8V~3.2V,且全程持续下降。

MILLET6的博客 115

工业物联网实战:基于边缘计算的园区机电设备预测性维护架构设计

在大型园区(楼宇自动化BA系统)的运维中,电梯、水泵、消防管网等关键机电设备的可靠性直接关系到整体安全。传统的定期巡检与事后维修模式,难以捕捉设备的偶发性故障。 本文从底层系统架构出发,探讨如何利用边缘计算与AI算法,构建一套高可用、低延迟的设备预测性维护(PdM)系统。

sxyxhwl的博客 207

注塑机数据采集网关 ZK-D1/D3 如何与 MES/IOT 平台对接并展示数据

本文系统阐述注塑车间数据采集难题及ZK-D1/D3网关解决方案,聚焦设备异构协议统一、数据建模规范与四层链路对接。通过明确设备唯一标识、统一命名规则与上行协议选择,实现多品牌注塑机数据标准化采集与传输。结合MQTT/HTTP/OPCUA多协议支持,构建从设备层到MES/IOT平台的完整链路,支撑实时看板、历史趋势、OEE分析与报警管理。强调前期标准化与端到端验证的重要性,确保数据可靠落地,赋能智能制造。

专业采集注塑机数据,为mes系统提供数据服务! 236
上一篇: 想成为嵌入式程序员应知道几个最基本问题!
下一篇: 编写函数,判断一个字符串是否是回文
slj_win
博客等级 码龄16年 234粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值