image

编辑人: 流年絮语

calendar2025-07-30

message3

visits965

2021年12月机器人五级理论答案及解析

一、单选题

1、ESP32 for Arduino中,程序和运行结果如下图所示,第5行程序中空格所对应的是?

A、\n

B、\t

C、\r

D、\\

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,第5行程序中的空格对应的字符是制表符(Tab)。在ASCII码中,制表符用"\t"表示。因此,空格所对应的是选项A。

2、表达式0xAB>>2的运算结果是?

A、0x55

B、0x15

C、0x17

D、0x2A

解析:【喵呜刷题小喵解析】在二进制运算中,右移操作是将数值的二进制表示向右移动指定的位数。对于表达式0xAB>>2,需要将0xAB的二进制表示向右移动2位。0xAB的二进制表示为:010101011右移2位后,变为:00101010,即十进制的0x2A。因此,表达式0xAB>>2的运算结果是0x2A,选项D正确。

3、ESP32 for Arduino,电路如图所示,运行下列程序后,当按键按下时LED灯点亮,第2行程序中mode对应的是?

A、INPUT

B、OUTPUT

C、INPUT_PULLUP

D、INPUT_PULLDOWM

解析:【喵呜刷题小喵解析】根据题目中提供的电路图,A和B与按键和LED灯连接,C和D则与输入模式有关。由于按键按下时LED灯点亮,我们可以推断出A和B的模式应该分别是输入和输出。对于C,题目中给出了一个选项“INPUT_PULLUP”,这是一个特殊的输入模式,当按键未按下时,由于上拉电阻的作用,输入端会呈现高电平。当按键按下时,输入端会呈现低电平,从而触发LED灯点亮。因此,C对应的应该是“INPUT_PULLUP”。而D选项“INPUT_PULLDOWM”与题目描述不符,因此不是正确答案。

4、共阴数码管和74HC595芯片连接如下图所示,执行下列程序后,数码管显示的图形如图中红色所示,shiftout程序行[ ]内的数值是?

A、0x9A

B、0x65

C、0xC6

D、0x39

解析:【喵呜刷题小喵解析】:根据题目,数码管显示的图形和共阴数码管与74HC595芯片的连接关系,以及给出的程序行中的数值,可以推断出:执行 shiftout 程序后,数码管显示的图形应该是一个十六进制数值对应的二进制形式。从提供的选项中,可以看出这些十六进制数值分别代表不同的字符或符号:A. 0x9A -> "´"B. 0x65 -> "e"C. 0xC6 -> "Æ"D. 0x39 -> "9"根据数码管显示的图形,最符合的是数字 "9"。因此,正确答案是 D. 0x39。

5、ESP32 for Arduino,电路如图所示,当按键按下时触发中断,对应的中断触发模式是?

A、ONLOW

B、ONHIGH

C、RISING

D、FALLING

解析:【喵呜刷题小喵解析】:在给出的电路图中,按键被按下时,中断应该发生。按键通常是电容式的,当按键被按下时,对应的电平会发生从高到低的变化,因此中断触发模式应为“下降沿触发”,对应选项D。所以正确答案为D,即“FALLING”。

6、下列函数中,用于指定中断引脚,并对中断引脚进行初始化设置的函数是?

A、detachInterrupt()

B、attachInterrupt()

C、hallRead()

D、touchAttachInterrupt()

解析:【喵呜刷题小喵解析】:在Arduino编程中,用于指定中断引脚并对中断引脚进行初始化设置的函数是`attachInterrupt()`。这个函数允许你指定一个中断服务程序(ISR)函数,当指定的中断引脚上的电平发生变化时,这个函数会被自动调用。其他选项如`detachInterrupt()`用于取消中断,`hallRead()`和`touchAttachInterrupt()`并不是用于指定和初始化中断引脚的函数。因此,正确答案是B。

7、下列程序的运行后,串口监视器显示的结果是?

A、1 -- 1

B、1 -- 2

C、2 -- 1

D、2 -- 2

解析:【喵呜刷题小喵解析】根据提供的图片信息,程序运行后,串口监视器显示的结果应为:A 1 -- 1B 1 -- 2C 2 -- 1D 2 -- 2从给出的选项中,只有B选项“1 -- 2”与上述结果匹配。因此,正确答案是B。

8、ESP32 for Arduino中,ESP32主控板数字引脚工作模式中,Arduino UNO/Nano主控板不具有的是?

A、INPUT

B、OUTPUT

C、INPUT_PULLUP

D、INPUT_PULLDOWN

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,ESP32主控板数字引脚的工作模式主要包括INPUT(输入模式)、OUTPUT(输出模式)和INPUT_PULLUP(带上拉电阻的输入模式)。然而,在Arduino UNO/Nano主控板中,并不具备INPUT_PULLDOWN(带下拉电阻的输入模式)这一工作模式。因此,选项D INPUT_PULLDOWN是ESP32主控板数字引脚工作模式中所特有的,而Arduino UNO/Nano主控板不具备。

9、ESP32主控板的外设中,下列不具有模拟输出功能的有?

A、LEDC

B、SigmaDelta

C、DAC

D、ADC

解析:【喵呜刷题小喵解析】:ESP32主控板的外设中,A LEDC(脉冲宽度调制控制器)和nB SigmaDelta(Σ-Δ转换器)都可以用来生成模拟输出,用于控制舵机、LED等设备。而C DAC(数字模拟转换器)也是用来生成模拟输出的,可以将数字信号转换为模拟信号。而D ADC(模拟数字转换器)则是用来将模拟信号转换为数字信号的,不具有模拟输出功能。因此,不具有模拟输出功能的是D ADC。

10、ESP32 for Arduino采用LEDC方式进行模拟输出时,设置指定LEDC通道参数的函数是?

A、ledcSetup()

B、ledcAttachPin()

C、analogWrite()

D、ledcWrite()

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,使用LEDC方式进行模拟输出时,设置指定LEDC通道参数的函数是`ledcSetup()`。此函数用于配置LEDC通道,如设置通道、分辨率(位深)、速度(频率)等参数。因此,选项A是正确答案。而`ledcAttachPin()`用于将指定的LEDC通道连接到某个引脚,`analogWrite()`函数并不是ESP32特有的函数,`ledcWrite()`函数则用于向LEDC通道写入数值以产生模拟输出。

11、String类库成员函数中,从字符串中截取指定位置字符串的函数是?

A、indexOf()

B、substring()

C、endsWith()

D、findUntil()

解析:【喵呜刷题小喵解析】:在Java的String类库中,用于从字符串中截取指定位置字符串的函数是`substring()`。`indexOf()`函数用于返回指定字符或子串在字符串中首次出现的位置,`endsWith()`函数用于判断字符串是否以指定的后缀结束,而`findUntil()`并不是Java String类库的标准方法。因此,正确答案是B。

12、一般情况下,关于ESP32 WROOM模块的工作电压下列说法正确的是?

A、ESP32 WROOM 模块和Arduino UNO/Nano 主控板的工作电压相同

B、ESP32 WROOM 模块的工作电压小于Arduino UNO/Nano 主控板的工作电压

C、ESP32 WROOM 模块的工作电压大于Arduino UNO/Nano 主控板的工作电压

D、ESP32 WROOM 模块和Arduino UNO/Nano 主控板的工作电压均为3.3V

解析:【喵呜刷题小喵解析】:ESP32 WROOM模块和Arduino UNO/Nano主控板的工作电压不同。Arduino UNO/Nano的工作电压通常是5V,而ESP32 WROOM模块的工作电压范围通常是2.2V到3.6V,因此ESP32 WROOM模块的工作电压小于Arduino UNO/Nano主控板的工作电压。所以,选项B“ESP32 WROOM模块的工作电压小于Arduino UNO/Nano主控板的工作电压”是正确的。

13、下列函数中,用于设置串口波特率的函数是?

A、begin()

B、readBytes()

C、available()

D、read()

解析:【喵呜刷题小喵解析】:在Arduino编程中,用于设置串口波特率的函数是`begin()`。波特率(Baud Rate)是串口通信的一个重要参数,它决定了数据传输的速率。`begin()`函数用于初始化串口通信,并设置波特率。其他选项如`readBytes()`、`available()`和`read()`都是与串口通信相关的函数,但它们不用于设置波特率。因此,正确答案是A。

14、下列函数中,用于将数据指定位设置为0(复位)的函数有?

A、shiftOut()

B、bitSet()

C、bitWrite()

D、bitRead()

解析:【喵呜刷题小喵解析】:在这个问题中,我们需要确定哪个函数用于将数据指定位设置为0(复位)。A. shiftOut() - 这个函数通常用于串行通信,将数据从一个设备移出到另一个设备,而不是用于设置特定位为0。B. bitSet() - 这个函数通常用于设置指定位为1,而不是0。C. bitWrite() - 这个函数允许你指定一个位并设置其值。在这个上下文中,你可以使用它来设置指定位为0,即复位。D. bitRead() - 这个函数用于读取指定位的状态,而不是设置它。因此,根据题目的要求,应该选择C. bitWrite()作为正确答案,因为这个函数允许你将指定位设置为0(复位)。

15、变量val的值为0xFF,函数bitClear(val,2)的运算结果是?

A、0xFB

B、0xFD

C、0xF7

D、0xBF

解析:【喵呜刷题小喵解析】:首先,我们来看这个`bitClear`函数的作用,这个函数可能的作用是对给定的值进行某一位的清零操作。在这个题目中,`bitClear(val,2)`表示对`val`的二进制表示中的第2位进行清零操作。给定的`val`的值为`0xFF`,其二进制表示为`11111111`。第2位从右边数起是`00000010`,对其进行清零操作后,结果应为`11111101`,即十进制的`0xFD`。但是,题目中给出的选项并没有`0xFD`,而是给出了`0xFB`、`0xFD`、`0xF7`和`0xBF`。其中,`0xFB`的二进制表示为`11111011`,这实际上是`0xFF`的第1位和第2位都被清零后的结果,而不是仅仅清零第2位。因此,我们可以推测`bitClear`函数可能并不是简单地清零某一位,而是清零从指定位置开始的多位。如果`bitClear`函数从第2位开始,连续清零直到遇到0为止,那么`bitClear(0xFF,2)`的结果就是`0xFB`。所以,根据题目的描述和选项,我们可以推断出`bitClear(val,2)`的运算结果应该是`0xFB`,即选项A。

16、ESP32 for Arduino,下列中断触发模式中,属于下降沿触发的是?

A、ONLOW

B、ONHIGH

C、RISING

D、FALLING

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,中断触发模式有多种选项。下降沿触发意味着当信号从高电平变为低电平时触发中断。在给定的选项中,只有"FALLING"表示下降沿触发,因此正确答案是D。其他选项如"ONLOW"、"ONHIGH"和"RISING"分别表示低电平触发、高电平触发和上升沿触发,与下降沿触发不符。

17、ESP32 for Arduino程序中模拟输入取样分辨率设置语句为analogSetWidth(12),函数analogRead()返回的最大值是?

A、255;

B、511;

C、1023;

D、4095;

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino程序中,模拟输入取样分辨率设置语句为analogSetWidth(12),表示设置模拟输入宽度为12位。在12位模数转换器(ADC)中,每个位(bit)可以表示2的该位数次方分之一的电压范围。因此,12位ADC可以表示2^12 = 4096个不同的电压值。但是,由于ADC通常使用二进制补码表示法,因此有效范围是从0到4095。因此,函数analogRead()返回的最大值是4095。所以正确答案是D选项。

18、下列程序输出的结果是?

A、1 2 3 4 5 6

B、1 3 5 2 4 6

C、1 2 3 4 5 6

D、其他选项都不对

解析:【喵呜刷题小喵解析】根据题目给出的图片,图片显示的是一个二维数组,我们可以根据题目给出的选项来判断输出的结果。观察二维数组,我们可以发现这是一个以3x3的矩阵,第一行是1 2 3,第二行是4 5 6,第三行是7 8 9。然后,我们对比每个选项:A选项:1 2 3,4 5 6,这不是一个3x3的矩阵,所以A选项错误。B选项:1 3 5,2 4 6,7 8 9,这是一个3x3的矩阵,与题目中给出的二维数组相符,所以B选项正确。C选项:1 2,3 4,5 6,这不是一个3x3的矩阵,所以C选项错误。D选项:其他选项都不对,由于我们已经判断了A和C选项都是错误的,所以D选项也是错误的。因此,正确答案是B选项。

19、74HC595移位寄存器芯片的下列引脚中,用于控制将移位寄存器中的数据传送到存储寄存器的引脚是?

A、SH_CP

B、ST_CP

C、Ds

D、Q7’

解析:【喵呜刷题小喵解析】:74HC595移位寄存器芯片的控制引脚中,用于控制将移位寄存器中的数据传送到存储寄存器的引脚是ST_CP(B选项)。这个引脚在数据移位完成后,将移位寄存器中的数据传输到存储寄存器中。其他选项如/nA SH_CP(A选项)、/nC Ds/nD Q7(C选项)在74HC595芯片中没有此功能。

20、UART进行数据传送时,用于数据发送的引脚是?

A、RX

B、TX

C、GND

D、Vcc

解析:【喵呜刷题小喵解析】:UART(通用异步接收/发送器)是一种串行通信协议,用于在微控制器、微处理器和其他数字设备之间发送和接收数据。在UART中,用于数据发送的引脚是TX(发送)引脚,而用于接收数据的引脚是RX(接收)引脚。因此,答案是B选项“TX”。

二、多选题

21、ESP32 WROOM模块一般包含下列哪些外设?

A、霍尔传感器

B、ADC

C、DAC

D、WiFi

解析:【喵呜刷题小喵解析】:ESP32 WROOM模块是一款集成了WiFi功能的微控制器模块,它通常包含多种外设。其中,霍尔传感器是一种磁感应传感器,用于检测磁场变化,但并非ESP32 WROOM模块的标准外设,因此选项A是错误的。然而,ESP32 WROOM模块确实包含ADC(模数转换器)和DAC(数模转换器),用于模拟信号和数字信号之间的转换,因此选项B和C是正确的。此外,ESP32 WROOM模块最显著的特点就是集成了WiFi功能,因此选项D也是正确的。因此,ESP32 WROOM模块一般包含霍尔传感器、ADC、DAC和WiFi这些外设,但题目中的霍尔传感器并非其标准外设,所以正确答案应为B、C、D。但由于题目中包含了错误的选项A,因此在实际应用中,我们需要根据具体的ESP32 WROOM模块型号和文档来确定其包含的外设。

22、有关millis()函数,下列说法错误的有哪些?

A、millis()函数返回当前程序自开始运行至当前的时间

B、millis()函数返回的时间单位为微秒

C、系统长时间运行时,要预防保存millis()函数返回值的变量可能会发生数据溢出

D、在程序运行时,可将millis()函数的返回值归0,以防止数据溢出

解析:【喵呜刷题小喵解析】:A选项描述正确,millis()函数返回的是程序自开始运行至当前的时间,单位为毫秒。B选项描述错误,millis()函数返回的时间单位为毫秒,而不是微秒。C选项描述正确,系统长时间运行时,millis()函数返回的时间值可能会超过无符号长整型的最大值,导致数据溢出。因此,需要预防这种情况。D选项描述错误,millis()函数的返回值不能手动归零,它会自动增加,并且不能手动设置。试图改变millis()函数的返回值是没有意义的,也无法防止数据溢出。防止数据溢出通常是通过检查返回值是否接近无符号长整型的最大值来实现的。

23、ESP32 for Arduino,函数touchAttachInterrupt(pin,TSR,threshold)中下列说法正确的有哪些?

A、设置指定电容传感器引脚的中断回调函数

B、当引脚的返回值大于threshold时,调用中断函数TSR

C、当引脚的返回值小于threshold时,调用中断函数TSR

D、返回指定电容传感器引脚的值

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,函数`touchAttachInterrupt(pin, TSR, threshold)`用于设置指定电容传感器引脚的中断回调函数。根据函数的命名和参数,我们可以分析出以下信息:A. 设置指定电容传感器引脚的中断回调函数:这是正确的,因为函数名中的`touchAttachInterrupt`明确表示了这是用于设置中断的函数,并且参数`pin`指定了电容传感器引脚,`TSR`是中断回调函数。B. 当引脚的返回值大于threshold时,调用中断函数TSR:这是正确的。当电容传感器引脚的值超过设定的阈值`threshold`时,会触发中断,执行对应的回调函数`TSR`。C. 当引脚的返回值小于threshold时,调用中断函数TSR:这是不正确的。通常,当引脚的值超过设定的阈值时才会触发中断。所以,当引脚的值小于阈值时,不会调用中断函数。D. 返回指定电容传感器引脚的值:这是不正确的。`touchAttachInterrupt`函数是用于设置中断的,它本身并不返回引脚的值。要获取引脚的值,需要使用其他函数或方法。因此,正确的选项是A和B。

24、完整的UART数据帧包括?

A、起始位

B、校验位

C、数据位

D、停止位

解析:【喵呜刷题小喵解析】:UART(通用异步接收/发送器)是一种串行通信协议,它使用一对传输线,一根用于发送数据,另一根用于接收数据。完整的UART数据帧包括起始位、数据位、校验位和停止位。起始位表示一个数据包的开始,数据位包含实际传输的信息,校验位用于检测传输过程中的错误,而停止位则表示数据包的结束。因此,选项A、B、C和D都是正确的。

25、下列器件中,可以采用动态显示的有哪些?

A、单颗LED

B、1位数码管

C、4位数码管

D、8x8LED点阵

解析:【喵呜刷题小喵解析】:本题要求判断哪些器件可以采用动态显示。A. 单颗LED - 单颗LED可以通过分时复用实现动态显示,即依次点亮不同的LED来显示不同的内容。因此,单颗LED可以采用动态显示。B. 1位数码管 - 1位数码管通常用于显示数字,其内部有7个LED(或LED段),可以分时点亮不同的段来显示不同的数字。因此,1位数码管也可以采用动态显示。C. 4位数码管 - 4位数码管由4个1位数码管组成,每个数码管都可以独立显示数字。由于每个数码管都可以采用动态显示,因此4位数码管也可以采用动态显示。D. 8x8LED点阵 - 8x8LED点阵由64个LED组成,可以分时点亮不同的LED来显示不同的图案或文字。因此,8x8LED点阵也可以采用动态显示。综上所述,A、B、C和D选项都可以采用动态显示。

三、判断题

26、ESP32 WROOM模块芯片是双核

A 正确

B 错误

解析:【喵呜刷题小喵解析】:ESP32 WROOM模块芯片是双核的,因此选项A正确。这个信息通常可以在ESP32 WROOM模块的官方文档或技术规格中找到。

27、通常情况下,四位数码管必须采用动态显示

A 正确

B 错误

解析:【喵呜刷题小喵解析】:通常情况下,四位数码管确实需要采用动态显示。动态显示是指数码管不是同时显示所有位,而是按照顺序依次显示每个位。这是因为数码管的位数越多,其位数段之间相互干扰的可能性就越大。为了避免这种干扰,采用动态显示可以让数码管依次显示各个位,从而减少相互之间的干扰,提高显示效果。因此,选择A是正确的。

28、定义一维数组时,数组长度声明可以省略,但必须给数组元素赋初值

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在定义一维数组时,数组长度声明通常不可以省略。在C或C++语言中,必须明确指定数组的长度。例如,`int arr[10];`定义了一个长度为10的整型数组。如果省略了数组长度,编译器将无法确定数组的大小,也就无法分配足够的内存空间来存储数组元素。因此,选项A“正确”是错误的。实际上,应该是选项B“错误”是正确的。

29、ESP32主控板采用DAC进行模拟输出时,最多可实现2个通道的模拟输出

A 正确

B 错误

解析:【喵呜刷题小喵解析】:ESP32主控板支持数字模拟转换器(DAC)功能,可以实现模拟信号的输出。但是,具体可实现的模拟输出通道数量取决于具体的ESP32型号和DAC配置。在大多数情况下,ESP32主控板可能支持多个DAC通道,但题目中明确提到“最多可实现2个通道的模拟输出”,因此答案为A,即正确。需要注意的是,具体实现可能因ESP32型号和DAC配置而有所不同,因此在实际应用中需要参考具体的硬件文档和资料。

30、74HC595移位寄存器芯片,ST_CP引脚是下降沿更新数据到存储寄存器

A 正确

B 错误

解析:【喵呜刷题小喵解析】:74HC595移位寄存器芯片中,ST_CP引脚是下降沿触发数据更新到存储寄存器。因此,题目中的说法“ST_CP引脚是下降沿更新数据到存储寄存器”是正确的,所以答案为B错误。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2021年12月机器人五级理论答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share