一、单选题
1、1940年由科幻作家阿西莫夫所提出的“机器人三原则”中不包括以下选项中的哪一条??
A、机器人不得伤害人类,或看到人类受到伤害而袖手旁观
B、机器人必须服从人类的命令,除非这条命令与第一条相矛盾
C、机器人必须保护自己,除非这种保护与以上两条相矛盾
D、机器人必须受人类控制,除非人类犯下弥天大错
解析:【喵呜刷题小喵解析】“机器人三原则”是阿西莫夫在他的科幻作品中提出的,用以规范机器人行为的三个基本原则。这三个原则分别是:A. 机器人不得伤害人类,或看到人类受到伤害而袖手旁观;B. 机器人必须服从人类的命令,除非这条命令与第一条相矛盾;C. 机器人必须保护自己,除非这种保护与以上两条相矛盾。这三个原则中并没有包括选项D“机器人必须受人类控制,除非人类犯下弥天大错”。因此,正确答案是D。
2、机器人一般由执行机构、驱动装置、检测装置和控制系统以及复杂机械等组成。Arduino主控板属于其中的哪一部分?
A、执行机构
B、驱动装置
C、检测装置
D、控制系统
解析:【喵呜刷题小喵解析】:在机器人的组成部分中,执行机构是机器人的物理部分,负责执行具体的操作或动作;驱动装置是使执行机构产生动作的动力来源;检测装置负责检测机器人的状态或外部环境;控制系统是机器人的大脑,负责协调各部分的运作,并根据检测装置提供的信息调整机器人的行为。Arduino主控板是机器人的控制中心,负责接收用户指令,协调各部分的工作,并根据检测装置提供的信息调整机器人的行为,因此它属于控制系统。所以正确答案是D,即控制系统。
3、以下选项中,属于浮点类型的是?
A、1
B、‘1.0’
C、“1.0”
D、1.0
解析:【喵呜刷题小喵解析】在选项中,A是整数类型,B和C都是字符串类型,只有D是浮点类型。在大多数编程语言中,1.0会被解释为双精度浮点数,所以选项D是浮点类型。
4、Arduino C语言中,十进制数的前缀是?
A、0
B、无前缀
C、0b
D、0x
解析:【喵呜刷题小喵解析】:在Arduino C语言中,十进制数通常没有前缀,因此答案是“无前缀”。在表示八进制数时,会使用0作为前缀;在表示十六进制数时,会使用0x作为前缀;在表示二进制数时,通常使用0b作为前缀,但Arduino C语言并没有强制要求使用0b前缀来表示二进制数。因此,正确答案是“无前缀”。
5、Arduino UNO程序编写时,下列数据类型对应字节数正确的是?
A、字符型char 2字节
B、单精度浮点型float 4字节
C、字节型Byte 2字节
D、布尔型int 2字节
解析:【喵呜刷题小喵解析】在Arduino UNO中,数据类型对应的字节数如下:A. 字符型char:1字节B. 单精度浮点型float:4字节C. 字节型Byte:1字节D. 布尔型bool:1字节因此,选项B是正确的,单精度浮点型float是4字节。选项A、C和D的描述都是错误的。
6、以下四个符号中哪个是逻辑运算符?
A、==
B、&&
C、++
D、--
解析:【喵呜刷题小喵解析】在给出的四个符号中,A==是赋值运算符,用于将右侧的值赋给左侧的变量;C++和D--都是增量运算符,用于增加或减少变量的值;B&&是逻辑运算符,用于逻辑与运算,当两个操作数都为真时,结果才为真。因此,正确答案是B。
7、程序Serial.print(17, BIN)输出的结果是?
A、10001
B、11000
C、10010
D、10011
解析:【喵呜刷题小喵解析】在C++中,`Serial.print(17, BIN)` 语句会打印出整数17的二进制表示。整数17的二进制表示是0001 0001,但是`Serial.print()`函数在打印时会忽略前导零,所以只会打印出0001 0001的最低位,即0001,也就是十进制的1。因此,输出的结果是"1",选项A正确。
8、运算符“=”是?
A、逻辑运算符
B、比较运算符
C、赋值运算符
D、算术运算符
解析:【喵呜刷题小喵解析】:在编程中,运算符“=”是一个赋值运算符,用于将右侧的值赋给左侧的变量。因此,正确选项是C,即赋值运算符。
9、下图程序执行完后,会在串口监视器中打印出?
A
B
C
D
解析:【喵呜刷题小喵解析】:根据提供的图片,我们可以观察到程序中的关键部分。程序首先定义了一个变量`a`,并将其初始化为`10`。接着,程序执行了一个`if`语句,判断`a`是否大于`5`。由于`a`的值为`10`,大于`5`,因此`if`语句内的代码块会被执行。在`if`语句的代码块中,程序首先打印出字符串`"a > 5"`,然后执行了一个`for`循环。`for`循环从`1`迭代到`5`,每次迭代都会打印出当前的迭代值。因此,循环会打印出`1`到`5`这五个数字。综合以上分析,程序执行完后,会在串口监视器中打印出`"a > 51234"`。这与选项B中的图片内容一致,因此答案是B。
10、以下C语言指令中,正确的是?
A、int 2a=10;
B、serital.println(11);
C、for(int i=0,i<10,i++){}
D、if(i<10) i++;
解析:【喵呜刷题小喵解析】A选项:`int 2a=10;` 是不正确的。在C语言中,变量名不能以数字开头。B选项:`serital.println(11);` 是不正确的。首先,`serial` 并不是C语言中的标准库。可能这是在其他语言(如Arduino)中的代码。其次,`println`也不是C语言的标准函数。C选项:`for(int i=0,i<10,i++){}` 是不正确的。`for`循环的语法应该是`for(initialization; condition; increment)`。这里,初始化部分和递增部分都缺失了分号。D选项:`if(i<10) i++;` 是不完整的,但在这个选项中,`if`语句的语法是正确的。然而,它不能单独作为一个完整的语句存在,除非它是在一个函数体内,并且`i`已经在此前被声明和初始化。所以,从给定的选项中,没有一个是完全正确的。但考虑到题目的选项设置,D选项的`if`语句部分是正确的,尽管它本身不是一个完整的语句。因此,从给定的选项中,D选项是最接近正确的。然而,需要注意的是,在实际编程中,这样的代码片段通常不会单独存在,它需要在完整的函数或程序上下文中才有意义。
11、Arduino的板载小灯是和几号引脚相连的?
A、0号引脚
B、1号引脚
C、12号引脚
D、13号引脚
解析:【喵呜刷题小喵解析】:Arduino的板载小灯通常连接的是13号引脚,也就是数字引脚D13。这是Arduino Uno和Arduino Leonardo等常见板型的标准配置。因此,正确答案是D,即13号引脚。
12、超声波传感器是从哪个引脚接受触发信号,开始工作的?
A、Vcc
B、Trig
C、Echo
D、Gnd
解析:【喵呜刷题小喵解析】:在提供的题目中,我们可以看到超声波传感器有4个引脚,分别是A、B、C、D。题目询问的是从哪个引脚接受触发信号,开始工作。从给出的选项和超声波传感器的常识来看,常见的超声波传感器通常有两个主要的引脚,一个是用于触发(Trig)的,另一个是用于接收(Echo)的。在给出的引脚标记中,A和D通常分别是电源(Vcc)和地(Gnd),它们不是用于触发或接收信号的。因此,我们需要在B和C中进行选择。由于题目问的是“接受触发信号”,这意味着我们应该选择用于触发的引脚。常见的命名约定中,"Trig"代表"Trigger"(触发),因此nB引脚是接受触发信号,开始工作的引脚。所以,正确答案是B。
13、关于上拉电阻和下拉电阻的说法错误的是?
A、上拉电阻需要与Vcc相连
B、下拉电阻需要与Gnd相连
C、上拉电阻和下拉电阻都是将用电器固定在高电平
D、上拉电阻是对器件注入电流,下拉电阻是从器件输出电流
解析:【喵呜刷题小喵解析】:上拉电阻和下拉电阻是电子电路中常用的两种电阻。上拉电阻通常与Vcc(电源正极)相连,而下拉电阻通常与Gnd(电源负极)相连。上拉电阻的作用是将用电器固定在高电平,而下拉电阻的作用是将用电器固定在低电平。因此,选项C“上拉电阻和下拉电阻都是将用电器固定在高电平”的说法是错误的。选项A和B描述了上拉电阻和下拉电阻的常规连接方式,选项D描述了上拉电阻和下拉电阻的工作机制,都是正确的。
14、有关二极管的说法,错误的是?
A、二极管是一种单向导通的电子元件
B、二极管是半导体元件
C、二极管的接脚不区分极性
D、二极管的流入电压和流出电压不相等
解析:【喵呜刷题小喵解析】:对于给出的选项:nA "二极管是一种单向导通的电子元件" - 这是正确的,二极管具有单向导电性,即只允许电流在一个方向上流动。nB "二极管是半导体元件" - 这也是正确的,二极管是由半导体材料制成的,利用PN结的特性实现单向导电。nC "二极管的接脚不区分极性" - 这是错误的。二极管的接脚是有极性的,分为阳极(正极)和阴极(负极)。nD "二极管的流入电压和流出电压不相等" - 这是正确的,二极管具有电压降,当电流通过时,阳极和阴极之间的电压会发生变化,导致流入和流出的电压不相等。因此,选项C "二极管的接脚不区分极性" 是错误的。
15、如果一盏红色LED小灯,它的工作参数如下? 我们想用Aduino控制该LED小灯,则理论上,串联的电阻不能低于?
A、220Ω
B、100Ω
C、97Ω
D、48Ω
解析:【喵呜刷题小喵解析】串联电阻的选择取决于LED小灯的工作电压和Arduino的输出电压。如果LED小灯的工作电压为V,Arduino的输出电压为V_arduino,那么串联电阻两端的电压为V_arduino - V。串联电阻的作用是限制电流,以保护LED小灯和Arduino,因此电阻值不能太低,否则电流过大可能会烧毁LED小灯或Arduino。由于题目中没有给出LED小灯和Arduino的具体参数,我们只能根据题目中给出的选项来推断。从选项中可以看出,97Ω的电阻值相对较大,能够较好地限制电流,因此串联的电阻不能低于97Ω,即选项C。具体电阻值还需要根据LED小灯和Arduino的实际参数来确定。
16、关于图中的晶体管符号,说法错误的是?
A、它是NPN型三极管
B、它的导通需要在基极施加一个高电平
C、它的三根接脚分别是基极,集电极,发射极
D、它的集电极要接地
解析:【喵呜刷题小喵解析】:图中的晶体管符号为NPN型三极管。在NPN型三极管中,基极与发射极之间的正向电压可以使三极管导通,但通常需要在基极施加一个较小的正向电压,而不是高电平。因此,选项B“它的导通需要在基极施加一个高电平”是错误的。选项A“它是NPN型三极管”是正确的,因为图中的符号表示了NPN型三极管。选项C“它的三根接脚分别是基极,集电极,发射极”也是正确的,因为NPN型三极管确实有基极、集电极和发射极三根接脚。选项D“它的集电极要接地”并没有在图中或题目中明确说明,因此无法判断其正确性。因此,说法错误的是D选项。
17、电路搭建如图所示,当按下按钮时Arduino板载小灯被点亮,在之后的程序中,if(?)里面的代码可以是?
A、!val
B、val
C、val=1
D、val=0
解析:【喵呜刷题小喵解析】在题目中,电路搭建是一个按钮控制的Arduino板载小灯,当按下按钮时,小灯被点亮。这意味着,在按下按钮时,某个条件或状态发生了变化,可能是一个变量或标志位的值从0变为1或从1变为0。在选项中,我们逐个分析:A. `!val`:如果`val`的初始值为0,那么`!val`的值为1,这表示小灯被点亮。但是,如果`val`的初始值为1,那么`!val`的值为0,小灯不会被点亮,这与题目描述不符。B. `val`:如果`val`的初始值为0,那么小灯不会被点亮,因为条件不满足。但是,如果`val`的初始值为1,那么小灯会被点亮,因为条件满足。这与题目描述相符。C. `val=1`:这不是一个有效的条件表达式,因为它不是一个布尔表达式。D. `val=0`:同样,这不是一个有效的条件表达式。因此,最符合题目描述的条件是`val`,即选项B。当`val`的值为1时,小灯被点亮,符合题目描述。
18、电路搭建如图所示,为Arduino上传程序后,LED小灯的效果是?
A、LED小灯全部点亮
B、LED小灯全部点亮后熄灭,间隔0.1秒循环
C、LED小灯依次点亮熄灭,间隔0.1秒循环
D、LED小灯随机点亮熄灭,间隔0.1秒循环
解析:【喵呜刷题小喵解析】根据电路图,Arduino通过数字引脚控制LED小灯。电路图中的LED小灯通过电阻与Arduino的数字引脚相连,且每个LED小灯之间并没有并联,而是串联在一起。因此,当Arduino上传程序后,LED小灯会依次点亮熄灭,间隔0.1秒循环。选项A表示LED小灯全部点亮,与电路图不符;选项B表示LED小灯全部点亮后熄灭,间隔0.1秒循环,也与电路图不符;选项D表示LED小灯随机点亮熄灭,间隔0.1秒循环,与电路图中的串联关系不符。因此,正确答案是选项C,即LED小灯依次点亮熄灭,间隔0.1秒循环。
19、通过电位器控制舵机的转动角度,部分程序如下,当电位器的返回值为0时,舵机的角度位置为?
A、0
B、180
C、60
D、120
解析:【喵呜刷题小喵解析】:根据题目中的信息,电位器的返回值与舵机的角度位置之间似乎存在某种关系。给出的四个选项分别对应电位器的返回值和舵机的角度位置。其中,当电位器的返回值为0时,舵机的角度位置为60,对应选项C。因此,正确答案是C。需要注意的是,题目中提供的图片似乎包含一些额外的信息,但题目只问了当电位器的返回值为0时,舵机的角度位置是什么,所以只需要根据这个条件来回答问题。同时,题目中的“/nA 0/nB 180/nC 60/nD 120”可能是某种编码或格式,但在这个问题中,我们只需要关注与电位器返回值0对应的舵机角度位置。
20、电路搭建如下,当光照射光敏电阻时,随着光照强度的增强,analogRead(A0)的返回值会如何变化?
A、没有变化
B、无规律变化
C、随着光照强度增大而减小
D、随着光照强度增大而增大
解析:【喵呜刷题小喵解析】光敏电阻是一种根据光照强度变化而阻值发生变化的电阻。当光照强度增强时,光敏电阻的阻值会减小。在电路搭建中,analogRead(A0)函数通常用于读取模拟输入的值,如传感器的输出。因此,当光敏电阻的光照强度增强,阻值减小,analogRead(A0)的返回值会随着光照强度的增大而增大。因此,正确答案为选项C:随着光照强度增大而减小。但这里有个小错误,正确的选项描述应该是“随着光照强度增大而增大”,所以可能是题目或选项的描述出现了错误。
二、多选题
21、以下对C语言的描述,正确的是?
A、C语言是强类型语言,声明变量需要指定数据类型
B、C语言的变量严格区分大小写
C、C语言是一种结构化语言。它层次清晰,易于调试和维护
D、C语言是一种脚本语言,不需要“编译”过程
解析:【喵呜刷题小喵解析】:A选项描述C语言是强类型语言,声明变量需要指定数据类型,这是正确的。在C语言中,变量的类型必须在声明时指定,不能自动推断。B选项描述C语言的变量严格区分大小写,这是错误的。在C语言中,变量名是区分大小写的,即变量名“myVar”和“myvar”是两个不同的变量。但“C语言”本身并不严格区分大小写,因为C语言的关键字(如int、float等)不区分大小写。C选项描述C语言是一种结构化语言,它层次清晰,易于调试和维护,这是正确的。C语言确实是一种结构化语言,它的程序结构清晰,有利于调试和维护。D选项描述C语言是一种脚本语言,不需要“编译”过程,这是错误的。C语言是一种编译型语言,它的程序需要先编译成机器码,然后才能在计算机上运行。与脚本语言(如Python、JavaScript等)不同,脚本语言可以直接解释执行。
22、在C语言编程中,将变量i的值增加1的方法有?
A、i+1;
B、i++;
C、i=i+1;
D、i+=1;
解析:【喵呜刷题小喵解析】:在C语言中,变量值的增加有多种方式。选项A "i+1" 是将变量i的值与1相加,但结果并未赋值给i,所以这种方式不会改变i的值。选项B "i++" 是后置自增运算符,它的作用是将变量i的值增加1,然后再返回i的原值。选项C "i=i+1" 是将变量i的值与1相加,然后将结果赋值给i,从而改变了i的值。选项D "i+=1" 是等价于 "i=i+1" 的简写形式,同样是将变量i的值增加1。因此,正确答案是B、C和D。
23、以下C语言的系统关键字中,用于“分支结构”的有?
A、if
B、switch
C、while
D、for
解析:【喵呜刷题小喵解析】:在C语言中,用于“分支结构”的系统关键字有“if”和“switch”。其中,“if”用于条件判断,根据条件执行不同的代码块;“switch”则用于多分支选择,根据表达式的值执行不同的代码块。而“while”和“for”是用于循环结构的系统关键字,不是用于分支结构的。因此,正确答案为A和B。
24、下列晶体三极管负载连接电路图中,正确的有哪些?
A、a
B、b
C、c
D、d
解析:【喵呜刷题小喵解析】首先,我们需要识别题目中的关键信息。题目询问的是晶体三极管负载连接电路图中,哪些是正确的。题目中给出了四个选项,每个选项对应一个电路图,我们需要判断这些电路图的正确性。在电路设计中,晶体三极管负载连接电路图通常用于放大或开关电路。对于晶体三极管,其负载连接通常涉及发射极、基极和集电极。对于选项A,电路图中显示的是一个典型的共射极放大电路,其中晶体三极管的发射极接地,基极通过电阻连接到输入信号,集电极通过电阻连接到负载。这种连接方式是正确的,因为它符合共射极放大电路的基本结构。对于选项B,电路图中的三极管连接方式并不符合典型的晶体三极管负载连接。基极和集电极直接连接,这不符合晶体三极管的基本工作原理。对于选项C,电路图显示的是另一个共射极放大电路,其中晶体三极管的发射极接地,基极通过电阻连接到输入信号,集电极通过电阻连接到负载。这种连接方式是正确的,因为它也符合共射极放大电路的基本结构。对于选项D,电路图中的三极管连接方式同样不符合典型的晶体三极管负载连接。基极和集电极通过一个电容连接,这不符合晶体三极管的基本工作原理。综上所述,正确的选项是A和C。这两个选项都显示了正确的晶体三极管负载连接电路图,符合共射极放大电路的基本结构。因此,答案是AC。
25、程序analogRead(A0)返回了650,请问在A0口上接的电子设备有可能是?
A、光敏传感器
B、温度传感器
C、电位器
D、按钮
解析:【喵呜刷题小喵解析】:在Arduino编程中,`analogRead(A0)`函数用于读取连接到A0模拟输入引脚的设备的模拟值。题目中返回了650,这表示A0口上连接的电子设备产生的模拟值约为650。A. 光敏传感器:光敏传感器通常根据光线的强度产生不同的电阻值,进而产生不同的模拟值。当光线较强时,其电阻值可能较低,产生的模拟值可能较高。B. 温度传感器:温度传感器(如热敏电阻)会根据温度的变化产生不同的电阻值,进而产生不同的模拟值。当温度较高时,其电阻值可能较低,产生的模拟值可能较高。C. 电位器:电位器是一个可变电阻,通过旋转可以改变其电阻值,进而产生不同的模拟值。当电位器被旋转到一个特定的位置时,其产生的模拟值可能与题目中给出的650相符。D. 按钮:按钮在按下时通常会产生数字信号(如高电平或低电平),而不是模拟值。因此,题目中的650与按钮不太可能相关。综上所述,最有可能连接在A0口上产生650模拟值的电子设备是光敏传感器、温度传感器和电位器。因此,答案是A、B和C。
三、判断题
26、0xFF02FD是一个16进制数据?
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在十六进制(hexadecimal)中,数字0到9和字母A到F(或a到f)被用来表示数值。0xFF02FD是一个由6个字符组成的十六进制数,每个字符都是有效的十六进制字符,因此,它是一个合法的十六进制数。所以,选项A“正确”是正确的。
27、Arduino编程中setup()函数会在控制板上电后只运行一次?
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在Arduino编程中,`setup()`函数会在控制板上电后只运行一次。这个函数通常用于初始化设备,例如设置引脚模式、启动串行通信等。一旦`setup()`函数执行完毕,程序将进入`loop()`函数,这个函数会不断重复执行,直到电源被切断。因此,选项A是正确的。
28、Arduino主控板的ATmega328P芯片内部有上拉和下拉功能?
A 正确
B 错误
解析:【喵呜刷题小喵解析】:Arduino主控板上的ATmega328P芯片并没有内部的上拉和下拉功能。这些功能通常是通过外部电路实现的,比如使用电阻器作为上拉或下拉电阻。因此,该题目答案为B,即错误。
29、Ardunio主控板的MCU内部0和1是通过高低电平来表示的?
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在电子工程中,高低电平通常用于表示逻辑值0和1。对于Arduino主控板来说,其内部的MCU(微控制器)同样遵循这一规则。因此,通过高低电平来表示0和1是正确的。
30、如果执行程序analogWrite(3,128)后,用万用表测量3号引脚的电压,可能是2.5V?
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在Arduino编程中,analogWrite函数用于产生PWM(脉冲宽度调制)信号。在Arduino Uno等基于ATmega328P的板上,每个模拟输出引脚(如3号引脚)都可以用作PWM输出。analogWrite(3,128)表示将3号引脚设置为PWM输出,并设置占空比为128/255(因为Arduino的analogWrite函数的参数范围是0-255)。对于5V供电的Arduino Uno,当PWM占空比为50%(即128/255)时,输出的平均电压应为2.5V。这是因为PWM信号是一个方波,其平均电压等于峰值的一半。因此,执行analogWrite(3,128)后,用万用表测量3号引脚的电压,可能是2.5V,所以答案是A,正确。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!