image

编辑人: 桃花下浅酌

calendar2025-07-20

message1

visits313

2023年05月机器人五级理论答案及解析

一、单选题

1、ESP32 for Arduino,下列程序的运行结果是?( ) byte num[] = {1, 2, 3, 4, 5, 6, 7,8}; Serial.printf("%d  %d\n",num[1],sizeof(num) / sizeof(num[0]));

A、1 8

B、1 36

C、2 8

D、2 36

解析:【喵呜刷题小喵解析】在这个程序中,定义了一个byte类型的数组num,包含7个元素。然后,使用Serial.printf函数输出数组num中第二个元素的值,以及数组num的大小除以数组元素类型的大小。数组num的大小是7个元素,每个元素的大小是1字节,所以数组num的大小是7字节。数组元素类型的大小是1字节,所以sizeof(num) / sizeof(num[0])的结果就是7。因此,程序的输出结果是"2 7",对应选项C。注意,题目中给出的数组定义有一个错误,num数组定义多了一个逗号,正确的定义应该是:byte num[] = {1, 2, 3, 4, 5, 6, 7, 8};。不过,这个错误并不影响程序的输出结果。

2、ESP32 for Arduino程序如下,串口监视器显示的结果是?( )

A、10

B、15

C、34

D、45

解析:【喵呜刷题小喵解析】:根据提供的图片信息,程序中的字符串为“/nA 10/nB 15/nC 34/nD 45”。其中,A、B、C、D分别是变量名,而10、15、34、45是这些变量对应的值。根据题目中的描述,我们需要判断串口监视器显示的结果。由于题目没有明确说明程序的其他部分,我们可以合理推测这是一个简单的输出语句,将各个变量的值打印到串口监视器上。因此,串口监视器显示的结果应该是“15”,即变量B的值。所以,正确答案是B。

3、ESP32 for Arduino,读取电位器的返回值,程序如下,变量potVal值的范围是?( )

A、0/1

B、0~511

C、0~1023

D、0~4095

解析:【喵呜刷题小喵解析】根据题目中给出的信息,电位器的返回值与ESP32读取到的模拟信号值有关。通常,ESP32的ADC(模数转换器)可以将模拟信号转换为数字信号,其范围取决于ADC的分辨率。常见的ADC分辨率有8位、10位、12位等,对应的数字信号范围分别是0~255、0~1023、0~4095。题目中给出的选项A、B、D分别对应8位、1位和12位ADC的数值范围,但题目中没有明确说明ESP32的ADC分辨率,所以我们不能直接确定potVal的范围。而选项C(0~1023)恰好是10位ADC的数值范围,因此最有可能是正确答案。在没有更多信息的情况下,我们可以合理推测ESP32的ADC分辨率为10位,因此potVal的范围应该是0~1023,选择C。当然,这只是一个基于题目信息和一般常识的推测,实际情况可能会有所不同。

4、使用74HC595移位寄存器芯片控制一位数码管,电路连接如下图所示,主控板向74HC595输入数据时,应连接到?( )

A、A

B、B

C、C

D、D

解析:【喵呜刷题小喵解析】根据电路连接图,当主控板向74HC595输入数据时,数据从并行接口进入,然后依次移位到输出端,从而驱动数码管。图中标出的四个引脚分别代表不同的控制信号,其中nA、nB、nC和nD分别对应74HC595的四个控制引脚。根据74HC595的工作原理,当数据需要移位时,数据输入端(DI)的数据会被加载到移位寄存器中,并同时从输出端(Q7'~Q0')输出到数码管。在这个过程中,时钟信号(CLK)用于控制数据的移位,而存储使能信号(STCP)和输出使能信号(OE)则用于控制数据的存储和输出。在这个特定的情况下,我们需要确定哪一个引脚是用来控制数据移位的。观察电路连接图,我们可以看到nC引脚连接到了一个与数码管共阳极的电阻上。这意味着当nC为高电平时,数码管会被点亮。同时,当74HC595接收到数据输入时,数据会从DI端进入移位寄存器,并通过内部逻辑在时钟信号(CLK)的驱动下依次移位到输出端。在这个过程中,如果nC为高电平,那么移位寄存器的数据就会被输出到数码管上。因此,我们可以得出结论:当主控板向74HC595输入数据时,应该连接到nC引脚上,以便控制数码管的显示。综上所述,正确答案是C,即连接到nC引脚上。

5、ESP32 for Arduino,基于LEDC模拟输出所提供的通道数是?( )

A、2

B、6

C、8

D、16

解析:【喵呜刷题小喵解析】:ESP32芯片内置了LEDC(Low-Energy Digital Control)模块,用于提供PWM(脉冲宽度调制)输出,以控制LED或其他需要调光的设备。LEDC模块提供了多个通道,用于同时控制多个LED。在ESP32中,LEDC模块提供了16个通道,因此答案是D选项,即16。

6、UART数据帧的起始位是?( )

A、高电平

B、低电平

C、下降沿

D、上升沿

解析:【喵呜刷题小喵解析】:UART(通用异步接收/发送器)数据帧的起始位是低电平。在UART通信中,数据帧的起始位是一个低电平信号,用于标识数据帧的开始。因此,正确答案是B,即低电平。

7、ESP32 for Arduino,与函数touchRead()相关的外设是?( )

A、GPIO

B、ADC

C、霍尔传感器

D、电容触摸传感器

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,函数`touchRead()`通常与电容触摸传感器(Capacitive Touch Sensor)相关。ESP32具有内置的电容式触摸传感器功能,允许开发者使用`touchRead()`函数来读取触摸传感器的状态。因此,正确答案是D选项,即电容触摸传感器。

8、ESP32 for Arduino采用LEDC方式进行模拟输出时,向指定通道输出模拟信号的函数是?( )

A、ledcSetup()

B、ledcAttachPin()

C、ledcDetachPin()

D、ledcWrite()

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,使用LEDC方式进行模拟输出时,向指定通道输出模拟信号的函数是`ledcWrite()`。`ledcSetup()`函数用于设置LEDC通道的参数,`ledcAttachPin()`函数用于将LEDC通道与指定的引脚关联,`ledcDetachPin()`函数用于解除LEDC通道与引脚的关联。因此,选项D `ledcWrite()`是正确答案。

9、ESP32 for Arduino函数ledcSetup(channel,freq,bit_num)中,channel的含义是?( )

A、设置PWM的分辨率

B、设置PWM的频率

C、设置PWM的输出通道号

D、设置PWM的占空比

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino的ledcSetup函数中,channel参数表示的是设置PWM的输出通道号。因此,正确答案是C。其他选项如A、B、D分别表示设置PWM的分辨率、设置PWM的频率和设置PWM的占空比,但都不是channel参数的含义。

10、通过shiftOut()函数向级联74HC595移位寄存器芯片DS引脚发送数据,部分程序及移位寄存器中的数据如下,程序变量val1和val2的值分别是?( )

A、0x8 0x5B

B、0x58 0x8

C、0x10 0xDA

D、0xDA 0x10

解析:【喵呜刷题小喵解析】根据题目中的信息,我们需要根据`shiftOut()`函数向级联74HC595移位寄存器芯片DS引脚发送数据,分析程序变量val1和val2的值。首先,我们需要了解74HC595移位寄存器的特点,它是一个8位的并行到串行移位寄存器,可以通过数据(D)输入端一次接收8位数据,然后通过时钟(CP)和存储使能(ST)信号将数据从并行寄存器移入到串行寄存器,并通过输出(Q)端输出。题目中给出的数据是:* A: 0x8 0x5B* B: 0x58 0x8* C: 0x10 0xDA* D: 0xDA 0x10这些数据是表示发送到移位寄存器的数据,其中第一个数据是发送到第一个移位寄存器的数据,第二个数据是发送到第二个移位寄存器的数据。根据`shiftOut()`函数的特性,它会按照从低位到高位的顺序发送数据。因此,对于第一个移位寄存器,它会发送0x8,对于第二个移位寄存器,它会发送0x5B。所以,程序变量val1的值是0x8,val2的值是0x5B,因此答案是A。

11、ESP32 for Arduino,通过电容引脚T4以中断的方式检测输入数据,中断回调函数为getTouch(),触摸中断阈值为40。下列选项中,用于设置中断回调函数的语句是?( )

A、touchAttachInterrupt(T4, 40, getTouch);

B、touchAttachInterrupt(getTouch, T4, 40);

C、touchAttachInterrupt(T4, getTouch, 40);

D、touchAttachInterrupt(getTouch, 40, T4);

解析:【喵呜刷题小喵解析】根据题目描述,ESP32 for Arduino需要通过电容引脚T4以中断的方式检测输入数据,中断回调函数为getTouch(),触摸中断阈值为40。因此,设置中断回调函数的语句应该是`touchAttachInterrupt(T4, getTouch, 40);`。其中,第一个参数是中断引脚,第二个参数是中断回调函数,第三个参数是中断阈值。因此,选项C是正确的。其他选项的参数顺序或参数类型不正确,因此是错误的。

12、0x47 | 13的结果是?( )

A、5

B、60

C、74

D、79

解析:【喵呜刷题小喵解析】:在这个问题中,我们需要理解按位或(|)运算符的工作方式。按位或运算符会检查每个单独的比特(在大多数计算机系统中,一个比特是二进制数的最小单位,可以表示0或1),并在任一比特为1时,将结果的比特设置为1。0x47在十六进制下等于63(0x47 = 63)。如果我们将其转换为二进制,我们得到:0x47 = 0010011113在十进制下等于13(13 = 13)。如果我们将其转换为二进制,我们得到:13 = 00001101现在,我们将这两个二进制数进行按位或运算:00100111 | 00001101 = 00101111将结果从二进制转换回十进制,我们得到79。因此,0x47 | 13的结果是79,选项D是正确的。

13、0x23 << 1的值是?( )

A、17

B、70

C、11

D、46

解析:【喵呜刷题小喵解析】:在二进制运算中,左移操作是将数值的二进制表示向左移动指定的位数,右侧用0填充。对于数值0x23,其二进制表示为00100011。左移1位后,变为01000110,即十进制中的70。因此,0x23 << 1的值是70,选项B正确。

14、ESP32 for Arduino,当数字信号输出函数digitalWrite(pin,value)中value的值为HIGH时,引脚pin所对应的电压是?( )

A、3.0V

B、1.8V

C、3.3V

D、5V

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,当使用digitalWrite函数将引脚设置为HIGH时,引脚所对应的电压通常是3.3V。这是ESP32的默认逻辑电平,用于表示高电平状态。因此,正确答案是1.8V。但根据题目给出的选项,似乎有一个错误,因为1.8V不是ESP32的逻辑电平。可能是题目或选项设置错误,正确答案应为3.3V。但按照题目给出的选项,C选项(1.8V)显然是不正确的。如果题目中的选项无误,那么正确选项应是ESP32的默认逻辑电平3.3V,即选项C(3.3V)。但由于题目给出的选项似乎存在错误,正确答案应为选项D(3.3V)。但由于题目实际考查的知识点是ESP32的逻辑电平,正确答案应为3.3V,因此,最佳答案应为C(3.3V),但题目中的选项设置似乎有误。

15、String类库的成员函数中,用于从字符串中截取部分字符的成员函数是?( )

A、indexOf()

B、length()

C、substring()

D、findUntil()

解析:【喵呜刷题小喵解析】在Java的String类库中,用于从字符串中截取部分字符的成员函数是substring()。这个函数接受两个参数,第一个参数表示截取的起始位置,第二个参数表示截取的结束位置(但不包括该位置的字符)。因此,选项C是正确答案。其他选项如indexOf()用于查找子字符串在父字符串中首次出现的位置,length()返回字符串的长度,findUntil()并不是String类库中的方法。

16、ESP32 for Arduino 所提供EEPROM类库的成员函数中,用于将数据最终写入到EEPROM中的成员函数是?( )

A、begin()

B、write()

C、commit()

D、read()

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino所提供的EEPROM类库中,用于将数据最终写入到EEPROM中的成员函数是`commit()`。这是因为`begin()`函数用于初始化EEPROM,`write()`函数用于将数据写入到EEPROM的缓冲区,而`commit()`函数则负责将缓冲区中的数据真正写入到EEPROM中。`read()`函数则是用于从EEPROM中读取数据。因此,正确答案是C选项。

17、ESP32 for Arduino中,程序Serial.printf()中表示十六进制整数输出的格式字符为?( )

A、%o

B、%d

C、%x

D、%f

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,程序Serial.printf()中表示十六进制整数输出的格式字符为%x。因此,正确选项为C。其他选项的含义如下:A %o表示八进制输出;B %d表示十进制输出;D %f表示浮点数输出。

18、下列程序通过串口分别发送数据,采用奇校验,对应的校验位数值分别为?( )

A、0 0

B、1 1

C、0 1

D、1 0

解析:【喵呜刷题小喵解析】题目给出了四个选项,分别代表四个数据发送时使用的奇校验位数值。奇校验是一种错误检测方法,通过检查数据中1的个数是否为奇数来确定数据是否出错。根据奇校验的定义,当数据中1的个数为偶数时,需要在数据中添加一个1来使1的个数变为奇数;当数据中1的个数为奇数时,需要在数据中添加一个0来使1的个数变为偶数。对于选项A,数据为00,其中1的个数为0,是偶数,所以应该添加一个1,即校验位为1,与题目给出的不符。对于选项B,数据为11,其中1的个数为2,是偶数,所以应该添加一个1,即校验位为1,与题目给出的相符。对于选项C,数据为01,其中1的个数为1,是奇数,所以应该添加一个0,即校验位为0,与题目给出的不符。对于选项D,数据为10,其中1的个数为1,是奇数,所以应该添加一个0,即校验位为0,与题目给出的不符。综上所述,只有选项B的数据发送时使用的奇校验位数值与题目给出的相符,所以正确答案是B。

19、电路搭设和对应的程序如下,当按键开关按下后,LED灯点亮,程序中A和B分别为?( )

A、INPUT_PULLUP HIGH

B、INPUT_PULLUP LOW

C、INPUT_PULLDOWN HIGH

D、INPUT_PULLDOWN LOW

解析:【喵呜刷题小喵解析】:题目描述了一个电路搭设的情况,并给出了四个选项来描述四个开关的状态。题目中的关键信息是:当按键开关按下后,LED灯点亮。这意味着按下的开关应该有一个状态使得LED灯点亮。在给出的选项中,A选项表示A开关为HIGH状态,B开关为LOW状态。通常,HIGH状态表示开关被按下,LOW状态表示开关未被按下。因此,当A开关被按下时,它的状态为HIGH,这符合题目中的条件“按键开关按下后,LED灯点亮”。而B选项表示A开关为LOW状态,B开关为HIGH状态,这并不符合题目中的条件。C和D选项也是类似的情况,它们描述的状态与题目中的条件不符。因此,根据题目中的条件和给出的选项,我们可以确定A选项是正确的。

20、ESP32 for Arduino,使用analogRead()函数读取模拟输入的返回值,返回值最大可为?( )

A、255

B、511

C、1023

D、4095

解析:【喵呜刷题小喵解析】:在ESP32上,使用analogRead()函数读取模拟输入时,其返回值是一个8位的ADC(模数转换器)值,其取值范围是从0到255。然而,ESP32的ADC是12位的,所以其实际取值范围是从0到4095。因此,正确答案是D选项,即返回值最大可为4095。

二、多选题

21、ESP32 for Arduino,当读取引脚输入的数字信号时,程序pinMode(pin,mode);中,mode的值可以为?( )

A、INPUT

B、OUTPUT

C、INPUT_PULLUP

D、INPUT_PULLDOWN

解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,当读取引脚输入的数字信号时,程序pinMode(pin,mode);中的mode参数用于设置引脚的模式。选项A INPUT表示将引脚设置为输入模式,选项C INPUT_PULLUP表示将引脚设置为上拉输入模式,选项D INPUT_PULLDOWN表示将引脚设置为下拉输入模式。因此,正确答案是ACD。选项B OUTPUT表示输出模式,不适用于读取引脚输入的数字信号。

22、ESP32 WROOM模组支持的蓝牙模式有?( )

A、经典蓝牙

B、低功耗蓝牙

C、超高速蓝牙

D、高模蓝牙

解析:【喵呜刷题小喵解析】:ESP32 WROOM模组支持的蓝牙模式有经典蓝牙和低功耗蓝牙。经典蓝牙(A)和低功耗蓝牙(B)是ESP32 WROOM模组支持的主要蓝牙模式。超高速蓝牙(C)和高模蓝牙(D)不是ESP32 WROOM模组支持的蓝牙模式。因此,正确答案是A和B。

23、 ESP32 for Arduino,电路如图所示,当按键按下后释放时触发中断,对应的中断触发模式是?( )

A、ONLOW

B、CHANGE

C、RISING

D、FALLING

解析:【喵呜刷题小喵解析】根据电路图,按键按下后释放时触发中断,对应的中断触发模式可能是上升沿触发或电平变化触发。从选项中可以看出,对应的中断触发模式为B选项的CHANGE(电平变化)和C选项的RISING(上升沿)。因此,正确答案为B、C。

24、下列选项中,属于位运算符的有?( )

A、&

B、|

C、~

D、!

解析:【喵呜刷题小喵解析】:在给出的选项中,A & 表示按位与运算符,B | 表示按位或运算符,C ~ 表示按位非运算符,它们都是位运算符。而D选项中的“!”是逻辑非运算符,不是位运算符。因此,正确答案是A、B和C。

25、下列选项中,ESP32 WROOM模组所具备的外设是有?( )

A、12bit ADC

B、WiFi

C、霍尔传感器

D、SPI

解析:【喵呜刷题小喵解析】:ESP32 WROOM模组是一款集成了WiFi功能的微控制器,它具备多种外设功能。其中,A选项的12bit ADC(模数转换器)用于将模拟信号转换为数字信号;B选项的WiFi功能使其能够连接无线网络;C选项的霍尔传感器是一种磁感应传感器,可用于检测磁场变化;D选项的SPI(Serial Peripheral Interface)是一种高速的、全双工的、同步的通信总线,可用于与其他设备通信。因此,选项A、B、C和D都是ESP32 WROOM模组所具备的外设功能。

三、判断题

26、sizeof()是Arduino C语言提供的函数。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在C语言中,`sizeof()`是一个标准库函数,用于获取特定类型或对象的大小(以字节为单位)。然而,`sizeof()`并不是特定于Arduino的,而是C语言标准库的一部分。因此,说`sizeof()`是Arduino C语言提供的函数是不准确的。所以,题目中的陈述是错误的。

27、8x8点阵屏,可以通过程序控制,同时点亮相邻对角线位置的两颗LED灯。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:8x8点阵屏的每个LED灯都有独立的控制线,要同时点亮相邻对角线位置的两颗LED灯,需要这两条对角线上的LED灯各自有独立的控制线。但在实际的点阵屏设计中,通常并没有这样的控制线路设计,因此无法通过程序同时控制这两颗LED灯。因此,题目中的说法是不正确的,答案应选择B。

28、UART通信有两根数据线,分别为TX和RX,所以UART是并行通信。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:UART(通用异步接收/发送器)是一种串行通信协议,它使用一根数据线(RX)来接收数据,另一根数据线(TX)来发送数据。串行通信的特点是数据一位一位地传输,而不是并行传输,所以UART并不是并行通信。因此,该题目的陈述是错误的。

29、使用74HC595移位寄存器芯片级联控制8*8LED点阵,可以使用delay()语句实现LED点阵显示静止的心形图案。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:题目要求使用74HC595移位寄存器芯片级联控制8×8 LED点阵,并用delay()语句实现LED点阵显示静止的心形图案。74HC595是常用的串行入并行出移位寄存器,可以用于驱动LED点阵。但是,题目中提到的delay()函数,一般来说并不是用于直接控制LED点阵显示心形图案的。通常,我们需要根据心形图案的坐标,计算并输出相应的段选和位选信号,然后通过74HC595将这些信号送到LED点阵,实现心形图案的显示。这个过程一般涉及到微处理器的编程,而不是简单地调用delay()函数。因此,题目的说法是不正确的,答案为B。

30、掉电后,EEPROM中保存的数据不会丢失。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:EEPROM(电可擦除只读存储器)是一种非易失性存储器,这意味着即使电源断开,存储在EEPROM中的数据也不会丢失。这与挥发性存储器(如RAM)形成对比,后者在电源断开时会丢失数据。因此,题目中的陈述是正确的。

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

创作类型:
原创

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

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