一、单选题
1、0x35 & 7的结果是?( )
A、5
B、55
C、50
D、54
解析:【喵呜刷题小喵解析】:在二进制运算中,&(与)运算的规则是:当两个相应的二进制位都为1时,结果位为1,否则为0。0x35的二进制表示为:0011 01017的二进制表示为:0000 0111进行&运算后,结果为:0000 0101,即十进制的5。因此,0x35 & 7的结果是5,选项A正确。
2、一般状况下,关于主控板的工作电压,下面说法正确的是?( )
A、Arduino UNO/Nano 和ESP32 WROOM模组的工作电压均为5V。
B、Arduino UNO/Nano 和ESP32 WROOM模组的工作电压均为3.3V。
C、Arduino UNO/Nano的工作电压是5V,ESP32 WROOM模组的工作电压是3V。
D、Arduino UNO/Nano的工作电压是5V,ESP32 WROOM模组的工作电压是3.3V。
解析:【喵呜刷题小喵解析】根据题目信息,我们需要判断Arduino UNO/Nano和ESP32 WROOM模组的工作电压。题目中明确提到,Arduino UNO/Nano的工作电压是5V,而ESP32 WROOM模组的工作电压是3.3V。因此,选项D“Arduino UNO/Nano的工作电压是5V,ESP32 WROOM模组的工作电压是3.3V”是正确的。其他选项A、B、C都与题目信息不符,因此是错误的。
3、ESP32 for Arduino采用LEDC方式进行模拟输出时,将指定通道的PWM信号输出到GPIO引脚的函数是?( )
A、ledcSetup()
B、ledcAttachPin()
C、ledcDetachPin()
D、ledcWrite()
解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,使用LEDC方式进行模拟输出时,要将指定的通道的PWM信号输出到GPIO引脚,需要使用`ledcAttachPin()`函数。这个函数的作用就是将LEDC通道与特定的GPIO引脚关联起来,使得可以通过LEDC通道来控制该引脚的PWM输出。因此,正确答案是B选项,即`ledcAttachPin()`。其他选项如`ledcSetup()`用于设置LEDC通道的参数,`ledcDetachPin()`用于解除LEDC通道与GPIO引脚的关联,`ledcWrite()`用于写入LEDC通道的PWM值,都不符合题目的要求。
4、ESP32 for Arduino程序如下,串口监视器显示的结果是?( )
A、10 - 11
B、a - 11
C、a - b
D、10 - B
解析:【喵呜刷题小喵解析】根据题目给出的ESP32 for Arduino程序,我们需要分析程序中的逻辑并推断出串口监视器显示的结果。首先,程序中的每一行都表示一个逻辑条件,例如"A 10 - 11"表示当变量A的值为10时,执行减11的操作。接着,我们逐一分析每行:* A 10 - 11:当变量A的值为10时,执行减11的操作,但由于题目中没有给出A的值,我们无法确定具体结果。* B a - 11:当变量B的值为a时,执行减11的操作,同样,题目中没有给出B和a的值,我们无法确定具体结果。* C a - b:当变量C的值为a减b时,执行无操作。但题目中没有给出C、a和b的值,所以我们无法确定C的值。* D 10 - B:当值为10时,执行减B的操作。由于题目中没有给出B的值,我们无法确定具体结果。然后,我们需要确定哪个逻辑条件会出现在串口监视器的显示结果中。从程序的结构来看,每行的逻辑条件都不会单独出现在串口监视器的显示结果中,而是作为程序的一部分。因此,我们需要寻找一个能够在程序执行过程中被明确计算并输出的值。在给出的选项中,只有"10 - B"这个表达式是在程序中有明确计算的,并且其结果(即10减去B的值)可以作为程序的一部分出现在串口监视器的显示结果中。因此,我们可以推断出串口监视器显示的结果是"10 - B"。这与答案选项D相符。
5、0x42 >> 2的值是?( )
A、0
B、10
C、16
D、264
解析:【喵呜刷题小喵解析】:题目要求计算0x42 >> 2的值。在二进制表示中,0x42等于01000010。右移2位后,变为00000010,即十进制的2。但是题目要求的是16进制表示,所以需要将2转换为16进制,即0x02。但是,题目给出的选项中并没有0x02,最接近的是0x02的十进制表示2,即选项C,16。因此,正确答案是C。需要注意的是,这个题目可能是个输入错误,因为在标准情况下,0x42 >> 2应该是0x02。
6、ESP32 for Arduino程序如下,串口监视器显示的结果是?( )
A、10
B、11
C、34
D、45
解析:【喵呜刷题小喵解析】题目中的Arduino程序是通过串口输出一系列的数据,这些数据通过串口监视器显示出来。根据给出的代码片段,我们可以看到有四行数据,分别是"A 10","B 11","C 34","D 45"。根据这些数据和选项,我们可以确定"C 34"是程序输出的结果。因此,正确答案是C。
7、通过shiftOut函数向74HC595移位寄存器芯片DS引脚发送数据,部分程序及移位寄存器中的数据如下,程序变量val的值是?( )
A、0xAA
B、0x55
C、55
D、100
解析:【喵呜刷题小喵解析】题目中给出了一组数据和一张图片,但图片并未在题干中给出,所以无法从图片中获取直接的信息。不过,我们可以从题目中的文字描述和选项来推测答案。首先,题目提到了“通过shiftOut函数向74HC595移位寄存器芯片DS引脚发送数据”,这暗示了我们需要根据某种数据格式或规则来确定程序变量val的值。接着,我们看到了一组数据:* A: 0xAA* B: 0x55* C: 55* D: 100其中,A和B的值是以十六进制表示的,而C和D则是以十进制表示的。考虑到74HC595移位寄存器芯片通常用于串行数据传输,并且shiftOut函数通常用于发送8位数据,我们可以推测这里的数据可能是以字节(8位)为单位进行传输的。在四个选项中,只有B选项(0x55)是一个8位的十六进制数,它等于十进制的85。其他选项要么位数不足(C和D),要么不是十六进制数(A)。因此,根据题目中的暗示和逻辑推断,我们可以得出程序变量val的值是0x55(即十进制的85),所以答案是B。
8、下列程序执行后,串口监视器显示的相应内容是?( )
A、AB
B、CABC
C、ABC
D、ABCABC
解析:【喵呜刷题小喵解析】根据题目中的图片,程序执行后,串口监视器显示的相应内容应该是“ABCABCABC”。观察选项,只有B选项“ABCABC”与题目中的期望输出一致。因此,正确答案是B。
9、ESP32 for Arduino,运算符sizeof(int)的返回值为是?( )
A、1
B、2
C、4
D、8
解析:【喵呜刷题小喵解析】:在大多数现代计算机系统中,一个`int`类型通常占用4个字节(bytes)。因此,`sizeof(int)`的返回值通常是4。所以,选项C是正确的。请注意,`sizeof`运算符返回的是其操作数类型在内存中所占用的字节数。不同的系统和编译器可能会有所不同,但通常`int`类型占用4个字节。ESP32是一个常用的微控制器,其内存结构通常遵循通用的计算机架构,因此`sizeof(int)`的返回值应该是4。
10、74HC595移位寄存器芯片的工作原理,下列选项中,描述正确的是?( )
A、并入并出
B、并入串出
C、串入串出
D、串入并出
解析:【喵呜刷题小喵解析】:74HC595是一款串行输入、并行输出的移位寄存器芯片。它的工作原理是:通过串行接口接收数据,然后将数据存储在移位寄存器中,最后通过并行接口将数据输出。因此,描述正确的是“串入并出”,选项D是正确的。其他选项“并入并出”、“并入串出”和“串入串出”都与74HC595的工作原理不符。
11、下列程序执行后,在如下图所示的串口监视器窗口中,输入12+34,然后点击发送按钮,串口监视器窗口显示的内容为?( )
A、3
B、4
C、5
D、46
解析:【喵呜刷题小喵解析】根据题目中的描述,当输入12+34并点击发送按钮后,程序会执行相应的计算。根据提供的选项,程序可能返回的是计算结果,即46。因此,在串口监视器窗口中显示的内容应为46,对应选项C。
12、ESP32主控芯片中核(core)的数量是?( )
A、1个
B、2个
C、3个
D、4个
解析:【喵呜刷题小喵解析】:ESP32主控芯片中核(core)的数量是2个。这是根据ESP32主控芯片的设计和功能来确定的。ESP32是一款功能强大的系统级芯片,它拥有两个独立的32位RISC-V处理器内核,分别称为Core 0和Core 1。这两个内核可以独立运行,也可以协同工作,以实现更高效的性能和更灵活的任务调度。因此,ESP32主控芯片中核(core)的数量是2个,选项B是正确的。
13、Serial类库的成员函数中,从串口缓冲区读取数据的成员函数是?( )
A、Serial.begin()
B、Serial.println()
C、Serial.read()
D、Serial.Write()
解析:【喵呜刷题小喵解析】:在Serial类库中,用于从串口缓冲区读取数据的成员函数是Serial.read()。Serial.begin()用于初始化串口通信,Serial.println()用于向串口写入数据并自动添加换行符,Serial.Write()也用于向串口写入数据,但不自动添加换行符。因此,正确答案是C。
14、ESP32 for Arduino函数ledcSetup(channel,freq,bit_num)中,freq的含义是?( )
A、设置PWM的频率
B、设置PWM的分辨率
C、设置PWM的输出通道号
D、设置PWM的占空比
解析:【喵呜刷题小喵解析】:在ESP32的LED C脉冲宽度调制(PWM)库中,函数`ledcSetup`用于设置PWM通道的基本参数。该函数的参数`freq`用于设置PWM的频率,这是决定PWM输出信号快慢的关键参数。因此,正确选项为“设置PWM的频率”。其他选项如“设置PWM的分辨率”、“设置PWM的输出通道号”和“设置PWM的占空比”都与`freq`参数不符。
15、ESP32 for Arduino,读取按键开关S1的返回值,电路搭设如图所示,程序pinMode(4,mode);中mode的值应是?( )
A、INPUT
B、OUTPUT
C、INPUT_PULLUP
D、INPUT_PULLDOWN
解析:【喵呜刷题小喵解析】根据题目中的电路图,按键开关S1连接的是引脚4,而引脚4的旁边标注了“INPUT_PULLUP”,因此程序中的pinMode(4,mode);中mode的值应是“INPUT_PULLUP”。因此,正确答案是C。
16、电路搭设和对应的程序如下,当按键开关按下后,LED灯点亮,程序中A和B分别为?( )
A、INPUT_PULLUP HIGH
B、INPUT_PULLUP LOW
C、INPUT_PULLDOWN HIGH
D、INPUT_PULLDOWN LOW
解析:【喵呜刷题小喵解析】根据题目中的电路搭设和对应的程序,当按键开关按下后,LED灯点亮。根据电路图,按键开关与A相连,且按键开关按下时,A应为高电平,即HIGH。而B是与按键开关没有直接相连的点,当按键开关按下时,B的电平状态应该不受影响。题目中给出了四个选项,A INPUT_PULLUP HIGH表示A为高电平且上拉电阻已启用,B INPUT_PULLUP LOW表示B为低电平且上拉电阻已启用,C INPUT_PULLDOWN HIGH表示A为低电平且下拉电阻已启用,D INPUT_PULLDOWN LOW表示B为低电平且下拉电阻已启用。由于按键开关按下时,A应为高电平,所以选项C符合题意。因此,正确答案为C。
17、下列传感器中,常用于电机转速检测的传感器是?( )
A、电位器
B、热释电模块
C、电容触碰传感器
D、霍尔传感器
解析:【喵呜刷题小喵解析】电机转速检测通常使用霍尔传感器。霍尔传感器基于霍尔效应,当电流通过导线在磁场中流动时,会在垂直于电流和磁场的方向上产生电动势,这种现象被称为霍尔效应。在电机转速检测中,霍尔传感器可以检测电机转子的磁场变化,从而计算出电机的转速。电位器、热释电模块和电容触碰传感器并不常用于电机转速检测。因此,正确答案是D,即霍尔传感器。
18、ESP32 for Arduino采用DAC外设进行模拟输出时,所对应的函数是?( )
A、adcWrite()
B、dacWrite()
C、analogWrite()
D、ledcWrite()
解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,进行模拟输出时,所对应的函数是dacWrite()。这是因为ESP32具有DAC(数字模拟转换器)外设,用于将数字信号转换为模拟信号。因此,dacWrite()函数是用于控制DAC外设进行模拟输出的。其他选项如adcWrite()、analogWrite()和ledcWrite()与ESP32的DAC外设无关,因此不是正确答案。
19、ESP32程序中模拟输入对应如下语句,变量potVal的返回值的范围是?( )
A、0~1
B、0~511
C、0~1023
D、0~4095
解析:【喵呜刷题小喵解析】:根据题目中的图片,模拟输入对应的范围应该与图片中的范围一致。图片中显示的是一个数字范围,从0到4095。因此,变量potVal的返回值范围应该是0~4095,对应选项D。
20、2022年底,OpenAI发布了新一代聊天机器人模型,推动人工智能应用达到一个新的高度,该模型的名称是?( )
A、ChatGPT
B、Keras
C、AlphaFold
D、Transformer
解析:【喵呜刷题小喵解析】:题目中提到的是2022年底OpenAI发布的新一代聊天机器人模型,而ChatGPT正是OpenAI开发的聊天机器人模型,因此答案为A。其他选项B、C、D都不是聊天机器人模型的名称。
二、多选题
21、下列选项中,UART数据帧中必须包含的有?( )
A、起始位
B、校验位
C、数据位
D、停止位
解析:【喵呜刷题小喵解析】:UART(通用异步接收/发送器)数据帧中必须包含的有起始位、数据位和停止位。起始位用于标识数据帧的开始,数据位包含实际要传输的数据,停止位用于标识数据帧的结束。校验位不是UART数据帧中必须包含的,因此选项B错误。
22、ESP32 for Arduino,电路如图所示,当按键按下时触发中断,对应的中断触发模式有?( )
A、ONLOW
B、CHANGE
C、RISING
D、FALLING
解析:【喵呜刷题小喵解析】:根据题目中的电路图,当按键按下时触发中断,这表示我们需要考虑按键从非按下状态到按下状态的转变。因此,中断触发模式应为上升沿触发,即选项C RISING。同时,由于按键的状态会发生变化,也可以选择选项B CHANGE,因为它表示状态变化时触发中断,无论是上升沿还是下降沿。所以,正确的选项是B和C。
23、ESP32主控芯片中,可实现模拟输出的外设有?( )
A、LEDC
B、SigmaDelta
C、DAC
D、ADC
解析:【喵呜刷题小喵解析】:ESP32主控芯片中,可实现模拟输出的外设包括LEDC、SigmaDelta和DAC。LEDC(Low-Edge Driven Counter)是ESP32的PWM(脉宽调制)控制器,可以用于模拟输出PWM信号。SigmaDelta是一种数字模拟转换器,用于将数字信号转换为模拟信号。DAC(数字模拟转换器)则是直接将数字信号转换为模拟信号。因此,选项A、B、C都是正确的。而ADC(模拟数字转换器)是将模拟信号转换为数字信号的设备,与题目要求不符,所以选项D是错误的。
24、与Arduino UNO/Nano主控板相比,下列选项中,ESP32主控芯片所独有的外设是?( )
A、触摸传感器
B、蓝牙
C、霍尔传感器
D、WiFi
解析:【喵呜刷题小喵解析】:ESP32主控芯片是一款集成了WiFi和蓝牙功能的芯片,因此它独有的外设包括蓝牙和WiFi。而Arduino UNO/Nano主控板并不具备蓝牙和WiFi功能,因此选项B蓝牙和D WiFi是ESP32主控芯片所独有的外设。至于选项A触摸传感器和选项C霍尔传感器,它们并不是ESP32主控芯片独有的外设,因为其他主控板也可能具备这些功能。因此,正确答案为B和D。
25、下列选项中,可实现将整形变量val的值翻倍的表达式有?( )
A、val += val;
B、val *= 2;
C、val <<= 1;
D、val >>= 1;
解析:【喵呜刷题小喵解析】:选项A:`val += val;` 是将 `val` 的值加上它自身,即 `val = val + val`,这实际上是将 `val` 的值翻倍。选项B:`val *= 2;` 是将 `val` 的值乘以2,这明确地将 `val` 的值翻倍。选项C:`val <<= 1;` 是将 `val` 的二进制表示向左移动一位,相当于将 `val` 乘以2。这是因为二进制数的左移相当于乘以2。选项D:`val >>= 1;` 是将 `val` 的二进制表示向右移动一位,相当于将 `val` 除以2。因此,这不是将 `val` 的值翻倍。所以,选项A、B和C都可以实现将 `val` 的值翻倍。
三、判断题
26、UART发送数据时,数据位是低位先发(LSB)。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在UART(通用异步接收/发送器)通信中,数据位通常是从低位(Least Significant Bit,LSB)开始发送的。这是因为在串行通信中,数据是以位为单位进行传输的,而最低位(LSB)是数据中的最不重要位,因此先发送它。因此,题目中的陈述是正确的。
27、可以通过快速的按键动作来消除抖动。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:抖动通常是由于按键过程中产生的机械振动或电信号波动导致的。快速按键动作本身并不能消除这种抖动,反而可能加剧抖动现象。因此,通过快速按键动作来消除抖动的说法是不正确的。
28、ESP32 for Arduino 的touchRead()函数返回指定引脚的电容传感器的值,当手接触该电容触摸引脚时,函数的返回值减小。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在ESP32 for Arduino中,`touchRead()`函数用于读取指定引脚的电容传感器的值。当手或其他导电物体接触该电容触摸引脚时,由于电容的变化,`touchRead()`函数的返回值会减小。因此,题目的描述是正确的。
29、ESP32主控芯片和Arduino UNO/Nano主控芯片的工作频率均为16MHz。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:题目中声称ESP32和Arduino UNO/Nano的主控芯片的工作频率均为16MHz,但实际上,这两个芯片的工作频率可能并不完全相同。ESP32是一款功能强大的系统级芯片,它通常运行在更高频率,例如240MHz,而Arduino UNO/Nano通常使用Atmega328p微控制器,其工作频率通常是16MHz。因此,题目的说法是错误的。
30、millis()函数返回当前程序自开始运行起至当前的时间。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:根据对题目信息的理解,`millis()`函数是Arduino编程语言中的一个函数,用于返回从Arduino板启动后的毫秒数。所以,`millis()`函数确实返回了程序自开始运行至当前的时间。因此,题目中的陈述是正确的,所以答案是A。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!