1、用预处理指令交换两个参数的值
#define SWAP(a,b) { int c=a;a=b;b=c}
2、写出floatx与“零值”比较的if语句
if(x<=0.000001 && x>=-0.000001)
float型变量和“零值”比较的方法:
const float EPSINON = 0.000001;
if ((x >= - EPSINON) && (x <=EPSINON))
浮点型变量并不精确,其中EPSINON是允许的误差(即精度),所以不可将float变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。如果写成if (x == 0.0),则是错误的。
EPSILON指的是浮点数可表示的最小值
因为1.0在计算机中可能存为0.999999或1.00001等,很难恰好是1.0
3、为什么说if(0==x)比if(x==0)好?
为了更好的发现因为疏忽将if(x==0)错写成if(x=0)导致的错误,因为将常量写在前,当你少写一个=时,if(0=x)程序就会报错,从而提醒你,而写成if(x=0)程序并不会报错而是当成赋值语句。
4、将地址0x8000中存放的整形变量,清除bit1。
设地址0x8000 存放的整形变量为a,清除bit1,则就是置bit1为0,则需要让 a &= 111 1111 1111 1101,而1111 1111 1111 1101 可通过(0x01<<1)再取反得到。
因此:a &=~(0x01<<1)
5、linux下用shell命令在当前目录下创建myfolder目录,并将此目录的权限设为拥有者可读写,群组和其他成员均可读不可写,且拥有者,群组和其他成员全都不可执行。
mkdir myfolder
chmod 644 myfolder
6、在32位机器上如下变量类型所占的内存分别是多少
short 2
char* 4
long long 8
double 8
7、简述代码编译后生成的map文件里面的内
容?
从map文件我们可以了解到:
- 程序各区段的寻址是否正确
- 程序各区段的size,即目前存储器的使用量
- 程序中各个symbol的地址
- 各个symbol在存储器中的顺序关系(这在调试时很有用)
- 各个程序文件的存储用量
8.在数据通信过程中,设置某普通串口的波特率为115200,则此串口每秒能传输多少KB数据。写出推导过程。
波特率115200代表1秒可以传送115200 bits的数据。业内常用的格式是8位数据,无校验位,1位停止位。加上一个必须的1 bit的起始位,一字节的串口数据一共是10位。
115200 bit/10=11520 Byte
所以115200波特率一秒可以传11520字节(Byte),即11.52KB/s
9.如下代码的输出是什么?
11 11 11
10、如下代码会有什么问题? 为什么?

由于使用#if eData1 ... #endif 以至于函数void doSomething() 未定义。
11、列举出10个C语言标准库函数
<math.h> : int abs(int x); //求整数x绝对值
float pow(float x, float y);//计算x的y次幂
float log(float x) ;//计算x的自然对数
float sqrt(float x) ;//计算x的平方根
<stdio.h>:
int printf(char *format...) 产生格式化输出的函数
int getchar(void) 从键盘上读取一个键,并返回该键的键值
int putchar(char c) 在屏幕上显示字符c
int scanf(char *format[,argument,...]) 执行格式化输入
int puts(char *string) 送一字符串到流中
<stdlib.h>:
void exit(int retval) 结束程序
int atoi(const char *s) 将字符串s转换为int类型
<string.h>
int strlen(char *s) 计算字符串s的长度
char *strlwr(char *s) 将字符串s转换为小写形式
char *strupr(char *s) 将字符串s转换为大写形式
12、写出你熟悉的一个嵌入式芯片的型号、性能指标及资源分布情况。
芯片型号:STM32F407ZGT6
1.ST:芯片公司的简称;
2.M:芯片Cortex-M系列;
3.32:32为处理器;
4.F:通用性的产品;
5.407:芯片系列信号;
6.Z:芯片的管教数量(144pin)
7.G:内存ROM容量(1024K字节);
8.T:芯片形状;
STM32F40xZGT6芯片的内部资源: flash:1M字节; RAM:192K字节;(重点:记住程序申请的空前不要溢出) 定时器:14个; 看门狗(WDG):2个; RTC 24位的系统滴答定时器 模数转换器(ADC):24个 数模转换器(DAC):2个 IO口:114个,51单片机24个 SPI:3个; UART:6个 USB:2个 CAN:3个 SDIO:1个 带有以太网借口
14、列举一个你在所做项目中遇到的技术问题,并描述分析问题的思路及最终解决问题的方法
答:采集信息不能上传到共享内存,或者web控制端下发的命令一直没有响应,节点没有执行对应动作
这个检测分为两部分,linux和单片机
1.linux主控层面
用ipcs命令,检查IPC所有信息,
2.通过编写测试程序,验证共享内存中的数据是否正确,
还有用测试程序往消息队列中发送数据。
相当于启动另一个匹配主控程序的进程,读取shm和msg的数据
15、已知有N个点,求由这N个点组成的多边形的外接矩形的四个顶点坐标。即完善如下函数。

void GetCoordRect(stCoord* arrCoord,int32_t nCount,stCoord_t* arrRect)
{
int32_t XMax,XMin,YMax,YMin;
XMax = arrCord[0].nX;
XMin = arrCord[0].nX;
YMax = arrCord[0].nY;
YMin = arrCord[0].nY;
for(int i=0;i<nCount;i++)
{
if(arrCord[i].x > XMax)
{
XMax = arrCord[i].nX;
}
if(arrCord[i].x < XMin)
{
XMin = arrCord[i].nX;
}
}
for(int i=0;i<nCount;i++)
{
if(arrCord[i].nY > YMax)
{
YMax = arrCord[i].nY;
}
if(arrCord[i].nY < YMin)
{
YMin = arrCord[i].nY;
}
}
printf("外接矩形的坐标是:(%d,%d) (%d,%d)\n",XMin,YMin,XMax,YMin);
printf("外接矩形的坐标是:(%d,%d) (%d,%d)\n",XMin,YMax,XMax,YMax);
}
目录第1题连续问题分析:解法:第2题分组问题分析:解法:第3题间隔连续问题分析:解法:第4题打折日期交叉问题分析:解法:第5题同时在线问题分析:解法:第1题连续问题如下数据为蚂蚁森林中用户领取的减少碳排放量iddtlowcarbon10012021-12-1212310022021-12-124510012021-12-134310012021-12-134510012021-12-132310022021-12-144510012021-12-1423010022021-12-154510012021-12-1523.......找出连续3天及以上减少碳排放量在100以上的用户分析:遇到这类
?作者主页:静Yu?简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者?社区地址:前端知识交流社区?博主的个人博客:静Yu的个人博客?博主的个人笔记本:前端面试题个人笔记本只记录前端领域的面试题目,项目总结,面试技巧等等。接下来会更新蓝桥杯官方系统基础练习的VIP试题,依然包括解题思路,源代码等等。问题描述:给定当前的时间,请用英文的读法将它读出来。时间用时h和分m表示,在英文的读法中,读一个时间的方法是: 如果m为0,则将时读出来,然后加上“o’clock”,如3:00读作“threeo’clock”。 如果m不为0,则将时读出来,然后将分读出来,如5
我有这个可以为我生成一个超链接:我希望它显示在td标签中,所以我想使用这个content_tag来帮助我:"example")%>我想要我的td中的超链接,所以我有这样的东西:,:class=>"example")%>但是我收到语法错误,我该怎么办? 最佳答案 内联:'example')%>或block形式:'example')do%> 关于ruby-on-rails-如何在RoR中使用content_tag嵌入标签?,我们在StackOverflow上找到一个类似的问题:
最近更新的博客华为OD机试-卡片组成的最大数字(Python)|机试题算法思路华为OD机试-网上商城优惠活动(一)(Python)|机试题算法思路华为OD机试-统计匹配的二元组个数(Python)|机试题算法思路华为OD机试-找到它(Python)|机试题算法思路华为OD机试-九宫格按键输入(Python)|机试算法备考思路华为OD机试-身高排序(Python)|备考思路使用说明参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。华为OD清单查看地址:blog.csdn.net/hihell/catego
我需要快速可靠的Ruby键值存储。有没有类似的东西?要求它完全在Ruby进程内运行,不需要任何外部进程。它可能在显式磁盘刷新的内存中。它需要具有最小的键值检索时间,写入时间可能不太好。存储的数据量不会很糟糕,大约几十万个键,每个键都有~1kb的文本值。 最佳答案 事实证明,对我来说最好的选择是使用纯Hash和Marshal将其序列化到磁盘。对于那么多的对象,YAML肯定太慢了。感谢@ian-armit加强了我对核心Ruby库的信任。 关于ruby-Ruby是否有任何可嵌入的键值存储?,我
给定一个任意的mongoid文档,我如何将其转换为JSON并包含任何嵌入式结构,而不是在我的to_json语句中特别包含这些结构。例如:#!/usr/bin/envrubyrequire'mongoid'require'json'require'pp'classDocincludeMongoid::DocumentincludeMongoid::Timestampsfield:doc_specific_info,type:Stringembeds_many:personsendclassPersonincludeMongoid::Documentfield:role,type:Stri
我需要将嵌入式文档转换成它自己的集合,以便它可以从另一个集合中引用。假设我有一个Parent嵌入了许多Child。我在想一些事情:Parent.all.eachdo|p|p.childs.all.eachdo|c|c.raw_attributes['parent_id']=p.idendp.save!#willsaveparentandcascadepersistallchildsontotheirowncollend这是一个选项吗?理想情况下,我会在控制台中运行它,我只会将mongoid映射从embed_*更改为has_*,因此我不需要更改其余代码或使用另一个集合作为暂存。
在PHP中,可以这样做:">是否可以像使用或不使用Rails那样将Ruby嵌入到HTML中? 最佳答案 您将需要使用像Ruby模板(ERB)这样的模板引擎。这是一个example.Rails使用ERB,因此您可以在每个模板中轻松地执行此操作。 关于ruby-在HTML中嵌入Ruby代码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3486664/
如何在yaml中存储带有嵌入变量的ruby字符串,但仅当我从yaml获取字符串时才插入变量值? 最佳答案 str="Hi%{name},%{msg}.Bye%{name}."#yamlit,de-yamlitbacktostringh={:name=>"John",:msg=>"thismessageisforyou"}putsstr%h#=>HiJohn,Thismessageisforyou.ByeJohn. 关于带有嵌入变量的Ruby字符串,我们在StackOverflow上找
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我正在寻找有关将Ruby解释器嵌入到C或C++程序以及用于该目的的API的全面的在线文档资源。Pickaxe书中关于此的部分非常好,但我的版本指的是Ruby1.8,我对当前的ruby版本范围很感兴趣,即1.8.x、1.9.x和2.0,并且有很多跨该版本范围的嵌入处理之间的差异。作为引用,有问题的Ruby解释器是来自http://www.ruby-lang.org/