




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《物联网系统设计》试题库一、单选题1、关于ESP32硬件所使用的Arduino开发环境安装,说法错误的是?A.官网下载地址https://www.arduino.cc/en/softwareB.需要在文件->首选项中,输入esp32开发板的管理器网址C.只能在开发板管理器中在线下载esp32内核包安装,不能离线下载内核包安装D.需要将相关的驱动库文件放在安装目录的libraries文件夹中,如ArduinoJson和pubsubclient,才能使用Json解析、MQTT通信功能2、以下关于Arduino语言,说法正确的是?CA.使用Python编写程序B.没有引进面向对象的思想C.通常所说的Arduino语言,是指Arduino核心库文件提供的各种API的集合D.通过封装好的API,可以增强开发者对繁复寄存器配置的深入理解3、关于Arduino的程序结构,以下说法正确的是?BA.Arduino程序中需要编写main()函数B.Arduino使用setup()和loop()两个函数C.setup()函数用来完成Arduino的初始化配置,会执行多次D.loop()函数可以驱动各种模块、采集数据等,只执行一次4、任何复杂的算法都可以由三种结构组成,以下不属于三种结构的是?DA.顺序B.循环C.选择D.反向5、Arduino程序中,setup函数运行的次数()?AA.1B.2C.3D.无数次6、Arduino程序中,以下哪一项创建数组的实例是错误的?CA.array1[5];B.array2[]={1,2,3,4,5};C.array3[6]=[1,3,5,7,9,11];D.chararray4[7]=“ESP32”;7、在Arduino编程中,设置数字引脚的工作方式,需要使用哪个函数?CA.setMode()B.DigitalMode()C.pinMode()D.digitalMode()8、关于ESP32板上的输入/输出引脚,描述错误的是:AA.各个引脚的功能都相同,可以随便选。B.不是所有模拟量的输出,都可用PWM引脚功能实现。C.模拟输入引脚可以作为数字输入引脚,反之不行。D.输入模式下,可以通过IO来读取外部数字信号。9、关于PWM的描述,错误的是:BA.PWM全称是PULSEWIDTHMODULATION。B.PWM是模拟量转换为数字输出的一种实现方式。C.PWM中文是脉冲宽度调制。D.PWM输出占空比可调的方波。10、使用ESP32实现点亮LED时,语句“digitalwrite(25,high);”是什么意思?AA.Arduino开发板上的25号引脚输出高电平B.Arduino开发板上的25号引脚输出电平C.Arduino开发板上的25号引脚输入高电平D.Arduino开发板上的25号引脚输入低电平11、引脚的初始状态设置应该写在什么地方?AA.setup()函数中B.loop()函数中C.自定义的子函数user_function()中D.A、B、C均可12、通过语句"analogWrite(5,50);"产生的PWM信号的占空比为()AA.19.6%B.39.2%C.0%D.5%13、使用ESP32实现点亮LED时,语句“delay(500)”是什么意思?BA.延时500秒B.延时500毫秒C.延时500微秒D.延时500纳秒14、关于ESP32的串口,以下说法错误的是?BA.ESP32共有3个串口B.其中UART0在Arduino程序中的对象名是Serial0C.UART0经常用来打印调试信息使用D.UART0的发送数据引脚为pin115、关于ESP32的串口,以下说法正确的是?DA.ESP32共有2个串口B.其中UART0在Arduino程序中的对象名是Serial0C.UART1经常用来打印调试信息使用D.UART0的接收数据引脚为pin316、关于语句“Serial.begin(115200);”,下列说法正确的是:AA.所使用的开发板在一秒钟内发送了115200比特的数据B.所使用的开发板在一秒钟内发送了115200字节的数据C.所使用的开发板在一包内发送了115200比特的数据D.所使用的开发板在一包内发送了115200字节的数据17、关于Arduino中的串口打印函数,说法正确的是?AA.Serial.print()通过UART0输出数据,打印的值是任意类型的B.Serial.print()通过UART0输出数据,后面会自动带一个换行符C.Serial2.print()通过UART2输出数据,后面会自动带一个换行符D.Serial2.print()通过UART2输出数据,后面不会自动带一个换行符18、关于Arduino中的串口函数,说法正确的是?BA.Serial0.available()用来判断UART0串口缓冲区的状态B.如果要判断UART2串口缓冲区的状态,应该使用Serial2.available()C.Serial.read()读取UART0的串口数据,一次可读取多个字符D.如果要从UART2读取的串口数据,应该使用函数Serial.read()19、关于串口处理函数SerialEvent(),代码如下:voidserialEvent(){while(Serial.available()){//getthenewbyte:charinChar=(char)Serial.read();//addittotheinputString:inputString+=inChar;//iftheincomingcharacterisanewline,setaflagsothemainloopcan//dosomethingaboutit:if(inChar=='\n'){stringComplete=true;}}}以下说法错误的是?CA.SerialEvent()函数需要在loop()函数中调用B.函数会判断缓冲器是否有串口数据,如有会读取一个字符加入到字符串inputString里C.语句inputString+=inChar中的加号是做算术运算的D.程序中以换行符为结束符20、JSON对象使用什么符号来表示?CA.""B.[]C.{}D.:21、Arduino开发环境有ArduinoJson库,可以用来解析JSON数据,示例如下:charjson[]="{\"hello\":\"world\"}";StaticJsonBuffer<200>jsonBuffer;JsonObject&object=jsonBuffer.parseObject(json);Constchar*=object["hello"];以下说法错误的是?DA、JsonBuffer作为ArduinoJson库的入口,包含DynamicJsonBuffer和StaticJsonBuffer两个实现类B、可通过parseObject()方法将字符串转换为json对象,故参数必须是字符串C.如果parseObject()方法的参数是字符串,也不一定能够转换成功,可通过object.success()方法判断是否成功D.程序中object["hello"]的参数是"hello",是用来提取"hello"字段的值,参数也可能不是字符串22、如果ESP32接收针对2个灯的控制命令并解析执行,如:{"RedStatus":1,"BlueStatus":0},{"RedStatus":1,"BlueStatus":1},{"RedStatus":0,"BlueStatus":0},{"RedStatus":0,"BlueStatus":1},关于解析过程需要注意的地方,描述错误的是?AA.如果控制红灯的话,只需要解析一次"RedStatus"字段的值,然后控制就可以了B.如果控制蓝灯的话,需要解析两次"BlueStatus"字段的值,然后控制就可以了C.不管控制红灯还是蓝灯,都需要解析两次D.如果只解析一次就执行,就会发生收到红灯命令却控制蓝灯,或者收到蓝灯命令却控制红灯的错误23、如果ESP32接收针对2个灯的控制命令并解析执行,如:{"RedStatus":1,"BlueStatus":0},{"RedStatus":1,"BlueStatus":1},{"RedStatus":0,"BlueStatus":0},{"RedStatus":0,"BlueStatus":1},关于解析过程需要注意的地方,描述正确的是?DA.如果控制红灯的话,只需要解析一次"RedStatus"字段的值,然后控制就可以了B.如果控制蓝灯的话,需要解析一次"BlueStatus"字段的值,然后控制就可以了C.不管控制红灯还是蓝灯,都只需要解析一次D.如果只解析一次就执行,就会发生收到红灯命令却控制蓝灯,或者收到蓝灯命令却控制红灯的错误24、在Arduino中对按键检测,以下说法错误的是?DA.有轮询和中断2种检测方式B.轮询方式检测按键需要考虑延时消抖C.轮询方式检测按键需要考虑等待释放D.只能通过软件,而不能够通过硬件设计实现延时消抖25、在Arduino中对按键检测,以下说法正确的是?DA.只能通过中断方式检测B.轮询方式检测按键不需要考虑延时消抖C.轮询方式检测按键不需要考虑等待释放D.中断方式下,不需要考虑等待按键释放的问题,但需要考虑消抖的问题26、下列关于按键的说法正确的是:DA.具有四个引脚的独立按键两个短针脚之间默认是导通的B.按键在未按下时默认是高电平C.按键在按下时默认是低电平D.按键在未按下时默认电平需要根据硬件电路确定27、下列哪个函数与定时器无关:DA.delay()B.delayMicroseconds()C.millis()D.digitalWrite()28、()是在电子装置中应用最广泛的一种元件,主要作用有限流、降压、分压、分流、匹配、负载、阻尼及取样等。AA.电阻B.电容C.电感D.二极管29、以下不属于红外传感器常用功能的是?DA.避障B.测距C.遥控D.测温度30、以下关于Android起源,描述错误的是?AA.Android是一款基于Windows平台的开源操作系统B.主要用于移动设备中C.由谷歌公司和开放手机联盟领导及开发D.Android本意指“机器人”,Google公司将Android的标识设计为一个绿色机器人,代表Android系统符合环保概念31、关于AndroidStudio开发环境的安装,以下描述正确的是?AA.AndroidStudio安装,所需JDK版本最低为1.7B.AndroidSDK所在目录可以有空格C.AndroidSDK所在目录可以有中文D.AndroidStudio只能安装在Windows操作系统的计算机中32、下列选项中,AndroidStudio工具中创建项目时的按钮的是()。AA.StartanewAndroidStudioprojectB.ImportanAndroidcodesampleC.ProfileordebugAPKD.OpenanexistingAndroidStudioproject33、Android真机调试时,需要在手机中开启什么模式?()CA.调试者模式B.USB模式C.开发者模式D.不需要任何操作34、关于Android真机调试时,以下说法正确的是?AA.需要在AndroidSDK的SDKTools安装GoogleUSBDriverB.手机在开发者模式下,不允许USB下载和调试C.手机关闭开发者模式D.插上USB线后会询问“是否允许USB调试?”,选择不同意35、关于使用EMQX软件部署MQTT服务器,以下说法错误的是?DA.操作系统可以是WindowsB.操作系统可以是CentOSC.需要开放1883和18083端口D.MQTT客户端登录部署的服务器,必须输入用户名和密码36、下面关于模拟器的说法,正确的是()。AA.模拟器属于虚拟设备B.在模拟器上不可以预览和测试Android应用程序C.只可以在模拟器上测试Android程序D.只可以在模拟器上预览Android应用程序37、关于Java命名规范,以下说法正确的是?CA.包名全部采用大写字母B.类和接口应采用小驼峰命名C.变量采用小写驼峰命名D.常量全部小写38、关于Java排版规范,以下说法正确的是?CA.程序块采用缩进风格,缩进的空格数是2个B.if语句和执行语句写在一行,执行语句不用加上花括号C.对齐时使用Tab键D.相对独立的程序块之间不应该加上空行39、以下关于LogCat的使用,错误的是?DA.LogCat是Android中的命令行工具,用于获取程序从启动到关闭的日志信息B.日志内容Verbose、Debug、Info、Warning、Error的级别是从低到高排列的C.Verbose用于显示全部信息D.Warning用于显示错误信息40、以下关于LogCat的使用,错误的是?DA.LogCat是Android中的命令行工具,用于获取程序从启动到关闭的日志信息B.日志内容Verbose、Debug、Info、Warning、Error的级别是从低到高排列的C.Verbose用于显示全部信息D.error用于显示警告信息41、下面哪个是添加网络权限的代码?BA.<uses-permissionandroid:name="android.permission.ACCEPT_HANDOVER"/>B.<uses-permissionandroid:name="android.permission.INTERNET"/>C.<uses-permissionandroid:name="android.permission.ACCESS_CHECKIN_PROPERTIES"/>D.<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>42、用于设置子元素在该容器内对齐方式的Android属性是()。CA.android:layout_weightB.android:layout_widthC.android:gravityD.android:layout_gravity43、应用资源是指应用中与源代码分离的资源,下面哪个不属于资源文件?AA.活动B.布局C.字符串D.图片44、创建意图代码中:Intentintent=new(this,Target.class);第一个参数this表示什么?A.当前布局B.当前时间C.当前活动D.以上都不是45、关于线性布局中layout_weight属性描述错误的是?CA.为视图分配权重B.通过属性值确定占多大比重的空间C.属性值可以为小于零的数D.如果要使用这个属性,那么通常会将android:width设为0dp46、Android会为每个图像指定一个ID,形式为()。BA.R.app.img_nameB.R.drawable.img_nameC.R.img_nameD.R.android.img_name47、EditText哪个属性可以限制输入类型?BA.android:textColorHintB.android:inputTypeC.android:maxLengthD.android:singleLine48、关于控件宽高值的单位,以下说法错误的是?A.px代表像素B.pt代表磅数C.dp是一种基于屏幕密度的抽象单位D.sp代表不可伸缩像素49、关于文本框控件,以下说法错误的是?DA.控件名称为TextViewB.用于显示文本信息C.android:text用于设置文本内容D.android:textSize用于设置文字大小,推荐单位为dp50、关于Button控件,以下说法错误的是?CA.用于响应用户的一系列点击事件B.点击方式共有三种C.不需要设置android:id属性D.需要在对应的Activity中实现逻辑51、关于Android系统的样式和主题,以下描述错误的是?BA.样式是针对某个View,例如TextView控件B.实际开发中,不能自己创建样式文件C.主题是针对整个Activity界面或整个应用程序D.当主题和样式中的属性发生冲突时,样式的优先级要高于主题D.当主题和样式中的属性发生冲突时,样式的优先级要低于主题52、在哪里可以设置应用主题?AA.AndroidManifest.xmlB.build.gradleC.settings.gradleD.MainActivity.java53、关于Android中的ViewBinding框架,以下说法错误的是?CA.ViewBinding框架会为每个xml布局生成一个绑定类B.绑定类的实例包含对在相应布局中具有ID的所有视图的直接引用C.ViewBinding绑定类会将XML文件的名称转换为小驼峰名称,并在末尾添加“Binding”一词D.通过ViewBinding绑定类.控件ID,找到需要的控件54、关与OkHttp框架的同步请求和异步请求,以下说法错误的是?BA.前三步一样,包括创建OkHttpClient对象,构建Request对象,创建Call对象B.同步请求和异步请求区别是第四步执行Call对象的方法也一样C.同步请求的第四步调用Call对象的execute()方法,,直接请求D.异步请求的第四步调用Call对象的enqueue()方法,将请求加入到队列中55、关与OkHttp框架的同步请求和异步请求,以下说法错误的是?DA.第一步都是创建OkHttpClient对象B.第二步都是构建Request对象C.第三步都是创建Call对象D.同步请求和异步请求的第四步都是调用Call对象的execute()方法56、关与OkHttp框架的GET请求和POST请求,说法错误的是?DA.GET请求参数直接拼接在url后面,第一个参数用?连接,后面的每一个参数都用&连接B.POST请求可将RequestBody对象作为post()方法的参数C.相对而言,GET安全性低D.相对而言,POST安全性低57、关与OkHttp框架的GET请求和POST请求,说法错误的是?CA.GET请求参数直接拼接在url后面,第一个参数用?连接,后面的每一个参数都用&连接B.POST请求可将RequestBody对象作为post()方法的参数C.相对而言,GET安全性高D.相对而言,POST安全性高58、下面哪个方法不属于活动生命周期中的方法?DA.onCreate()B.onStart()C.onResume()D.startActivity()59、Android是如何组织Activity的()DA.以树型方式组织ActivityB.以链式方式组织ActivityC.以堆的方式组织ActivityD.以栈的方式组织Activity60、关于Android中的Activity,以下描述错误的是?DA.Activity组件为用户提供可视化界面及操作B.一个应用程序通常包含多个Activity,每个Activity负责管理一个用户界面C.一个Activity可以添加多个控件,每个控件负责实现不同功能D.只有第一个Activity需要在AndroidManifest.xml(清单文件)中注册61、关于Activity的生命周期,以下描述错误的是?DA.生命周期指一个Activity从创建到销毁的全过程B.Activity的生命周期状态共有5种:启动、运行、暂停、停止、销毁C.在暂停状态下,Activity对用户来讲仍然可见D.Activity在销毁状态,不会被清理出内存62、关于Activity之间的跳转,以下说法错误的是?DA.Activity之间的跳转需要用到IntentB.Intent可以指定当前组件要执行的动作C.Intent可以实现在不同组件之间的数据传递D.隐式意图需要明确指定要开启哪个目标组件63、关于Android中的ViewBinding框架,以下说法正确的是?BA.ViewBinding框架只会为一个xml布局生成绑定类B.绑定类的实例包含对在相应布局中具有ID的所有视图的直接引用C.ViewBinding绑定类会将XML文件的名称转换为小驼峰名称,并在末尾添加“Binding”一词D.通过ViewBinding绑定类->控件ID,找到需要的控件64、关于线程的说法不正确的是DA.在android中,我们可以在主线程中,创建一个新的线程B.创建的Handler对象,它隶属于创建它的线程C.新线程可以和Handler共同使用D.在创建的新线程中,它可以操作UI组件65、关于Android的线程,以下说法错误的是?BA.应用程序启动时,Android会开启一个主线程,即UI线程B.UI线程适合执行耗时操作,比如访问网络读取数据C.访问网络读取数据的操作可以放在子线程中进行D.子线程执行耗时操作后,可以更新界面UI,但属于不规范操作66、关于Android的Handler机制,以下说法错误的是?AA.Android提供了一种同步回调机制Handler,来负责与子线程通信B.Handler机制包括4个关键对象:Message、Handler、MessageQueue、LooperC.Message是在线程之间传递的消息D.一般使用Handler对象的sendMessage()方法发送消息,并传递到handlerMessage()方法中67、关于Handler的Message对象,以下说法错误的是?DA.Message是在线程之间传递的消息B.Message的what字段携带整型数据C.Message的obj字段携带一个Object对象D.如果要将Message的obj字段不能被转换为字符串68、关于Handler的方法,以下描述错误的是?A.一般使用Handler对象的sendMessage()方法发送消息DB.消息会发送到handlerMessage()方法中进行处理C.handlerMessage()会判断what字段的值进行处理D.只能通过switchcase语句对what字段的值进行判断处理69、关于Android中的MQTT配置,说法正确的是?BA.两个不同APP中的的MQTT客户端id可以重复B.APP和网关中的MQTT客户端id不能重复C.APP和网关中的MQTT客户端id可以重复D.一个客户端不允许订阅并接受自己发布的消息70、分析以下Android工程的函数,说法正确的是?Bpublicvoiddisconnect(){try{if(client!=null){if(client.isConnected())client.unsubscribe(mqtt_sub_topic);client.disconnect();client.close();client=null;}}catch(Exceptione){e.printStackTrace();}}A.如果页面跳转,不应该调用此函数B.函数功能是:取消订阅,断开连接,关闭MQTT客户端C.如果页面跳转,不调用此函数,重新进入页面会不再开启一个重名客户端D.如果页面跳转,不调用此函数,重新进入页面会再开启一个不重名客户端71、关于MQTT消息的接收,以下说法正确的是?CA.如果要接受消息,不以订阅消息为前提B.消息是其它客户端直接发过来的C.消息是代理服务器转发过来的D.客户端不可以订阅自己发布的消息72、字符串:{"Temp":16},如果要通过substring方法截取出"Temp"字段的值,共有2个参数,其中起始索引值和结束索引值分别是多少?CA.9,9B.9,10C.9,11D.10,1173、Web技术的架构是以下哪一类AA.B/S架构B.A/S架构C.D/S架构D.C/S架构74、关于HTTP协议的介绍,错误的是?BA、全称是HyperTextTransferProtocolB.HTTP请求常用的服务器端口是12830C.客户端向服务器端发送的请求,称为HTTP请求D.规定了浏览器和服务器之间的互相通信的规则75、关于HTTP请求方式,以下描述错误的是?DA.常用的两种方式是GET和POSTB.GET方式提交的参数跟在请求URL后面C.POST方式提交的参数跟在请求实体中D.GET方式要比POST方式安全,因为用户在在浏览器中看不到向服务器提交的请求参数76、以下关于JSON数据描述错误的是?BA.JSON即JavaScriptObjectNotation(对象表示法)B.是一种重量级的数据交换格式C.是基于纯文本的数据格式D.包括JSON对象和JSON数组2中数据结构77、以下那种数据满足JSON对象结构?AA.{"city":"beijing","temp":21}B.["city":"beijing","temp":21]C.{"city":"beijing";"temp":21}D.["city":"beijing";"temp":21]78、以下那种数据满足JSON数组结构?DA.{{"name":"北京","id":"101010100"};{"name":"朝阳","id":"101010300"}}B.[{"name":"北京","id":"101010100"};{"name":"朝阳","id":"101010300"}]C.{{"name":"北京","id":"101010100"},{"name":"朝阳","id":"101010300"}}D.[{"name":"北京","id":"101010100"},{"name":"朝阳","id":"101010300"}]79、以下那种数据是JSON数组和JSON对象的正确组合?DA.{{"name":"北京";"id":"101010100"},{"name":"朝阳";"id":"101010300"}}B.[{"name":"北京";"id":"101010100"},{"name":"朝阳";"id":"101010300"}]C.{{"name":"北京","id":"101010100"};{"name":"朝阳","id":"101010300"}}D.[{"name":"北京","id":"101010100"},{"name":"朝阳","id":"101010300"}]80、关于JSON对象描述错误的是?DA.以"{"开始,以"}"结束B.键值对之间用","分割C.键和值之间用":"分割D.值不能是JSON对象81、关于JSON数组描述错误的是?CA.以"["开始,以"]"结束B.成员之间用","分割C.成员不能是JSON对象D.JSON数组可以作为JSON对象某个键的值82、关于JSON数据的解析,可以使用optString()方法,如获取JSONObject里面某个字段(键)的值、获取JSONArray里面某个元素(与索引对应)的值,以下说法错误的是?CA、获取JSONObject某个键的值,optString()方法的参数是键B.获取JSONArray某个元素的值,optString()方法的参数是索引C.optString()方法的参数如果是键,参数的类型应该整型D.optString()方法的参数如果是是索引,参数的类型应该整型83、关于JSON数据的解析,可以使用optString()方法,如获取JSONObject里面某个字段(键)的值、获取JSONArray里面某个元素(与索引对应)的值,以下说法错误的是?DA、获取JSONObject某个键的值,optString()方法的参数是键B.获取JSONArray某个元素的值,optString()方法的参数是索引C.optString()方法的参数如果是键,参数的类型应该字符串D.optString()方法的参数如果是是索引,参数的类型应该浮点型84、安卓使用的数据库叫什么名字?CA.MySQLB.SQLServerC.SQLiteD.MongoDB85、关于在Windows环境下NodeRed的部署,以下说法错误的是?DA.需要先安装Node.js,再安装Node-RedB.可输入npminstall-g--unsafe-permnode-red安装NodeRedC.在cmd输入:node-red,即可启动NodeRedD.本机登录,浏览器输入:80/ui,即可登录NodeRed86、关于NodeRed的debug节点,以下说法错误的是?DA.如果输出为msg.payload,会打印输入节点传入的payloadB.会在debug窗口打印调试信息C.如果payload是JSON对象,可通过msg.payload.字段名,获取字段的值D.可勾选右侧的单选框,使节点有效87、NodeRed的Dashboard里面,Web页面分为3级,以下不属于的是?DA.tab(菜单)B.group(组)C.spacer(部件)D.info(索引)88、如果msg.payload是JSON对象,关于如何解析字段的值,以下说法正确的是?AA.通过msg.payload.字段名B.通过msg.payload->字段名C.通过msg->payload["字段名"]D.通过msg->payload->字段名89、如果需要在Web页面展示上报的MQTT温度消息。关于解析过程,以下说法正确的是?BA.直接解析展示B.应该先解析判断字段值是否为空,非空的话再次解析展示C.解析方法只能通过msg.payload.字段名D.解析方法只能通过msg.payload["字段名"]90、查看所有数据库的命令是()BA.SHOWDATABASE;B.SHOWDATABASES;C.DESCRIBETABLES;D.DESCRIBETABLE;91、查看商品类别表t_goods_category的表结构信息的命令是()BA.SHOWt_goods_category;B.DESCRIBEt_goods_category;C.SELECT*FROMt_goods_category;D.ALTER*FROMt_goods_category;92、按价格降序排列检索出商品列表中的所有信息,下面SQL语句正确的是()。CA.SELECT*FROM商品列表ORDERBY价格;B.SELECT*FROM商品列表GROUPBY价格;C.SELECT*FROM商品列表ORDERBY价格DESC;D.SELECT*FROM商品列表ORDERBY价格;93、进行MySQL的配置,最重要的是修改()文件DA.lib.iniB.bin.iniC.my-template.iniD.my.ini94、可以通过()命令来启动MySQL服务A.NETSTOPMySQL80B.NETSTARTMySQL80C.NETSTARTD.NETSTOP95、为了避免不支持中文字符串查询或者发生中文字符串乱码等问题,不应该考虑使用()字符集。BA.gb2312B.latin1C.gbkD.utf896、在成绩表中,查询数学成绩第二名到第五名的学生姓名,正确的语句是()。AA.SELECT姓名FROM成绩表ORDERBY科学DESCLIMIT1,4;B.SELECT姓名FROM成绩表ORDERBY科学DESCLIMIT1,3;C.SELECT姓名FROM成绩表ORDERBY科学DESCLIMIT0,4;D.SELECT姓名FROM成绩表ORDERBY科学DESCLIMIT0,3;97、在一个查询中嵌套一个或多个查询,被嵌套的查询称为()。AA.子查询B.主查询C.相关查询D.非相关查询98、安装MySQL数据库后,系统自动创建的数据库不包括()。CA.performance_schemaB.information_schemaC.chooseD.mysql99、SQL语言中,删除一个数据库对象的命令是()。AA.DROPB.DELETEC.CLEARD.REMOVE100、关于MySQL中的字符串类型,说法错误的是?DA.CHAR和VARCHAR均用于存储较短的字符串B.CHAR类型的长度固定C.VARCHAR类型的长度可变D.在不明确字段需要多少个字符时,推荐使用CHAR类型101、MySQL5.7.8开始,可以支持JSON数据类型了,以下说法错误的是?BA.MySQL支持JSON数组和JSON对象2种格式B.JSON数组只能存放字符串类型的数据C.JSON数组以"["开始,以"]"结束D.JSON数组的2个数据之间使用","隔开102、关于使用SQL语句创建表,说法错误的是?CA.不同字段之间的定义使用","隔开B.最后一个字段后面没有","C.表名可以与数据库的关键字重名D.字段的数据类型需要指定103、关于主键约束,以下说法错误的是?CA.主键约束即primarykeyB.主键约束可以唯一标识一条记录C.设置为主键的字段取值可以重复D.设置为主键的字段取值不能为空104、关于非空约束,以下说法正确的是?CA.空字符串""就是NULLB.0就是NULLC.非空约束的关键字是"notnull"D.不能为表中的多个字段添加非空约束105、关于自增约束,以下说法正确的是?CA.自增约束可以使表中的某个字段的值自动减少B.一个表中可以有多个自增字段C.自增约束通常配合主键使用,并且只适用于整数类型D.一般情况下,自增约束字段的值从0开始,每增加一条记录值加1106、关于对查询结果进行排序,SQL语法为:selectcolumn_name1,column_name2,…fromtable_nameorderbyorder_name[asc|desc];以下说法错误的是()?DA.order_name表示按照该字段进行排序B.asc代表升序C.desc代表降序D.如果没有指定排序,默认按照降序排序107、关于MySQL支持的比较运算符,以下说法正确的是?BA."=="表示等于B."="表示等于C."<>"表示不等于D."!="表示不等于108、使用视图的原因,以下说法正确的是?DA.可以让用户更关心表的结构、查询条件等B.用户的权限会更高,访问数据库更加自由C.提供了一定程度的数据逻辑独立性D.在修改基础表字段时,不需要修改视图109、关于Node-RED使用QQ邮件服务器发送邮件配置,说法错误的是?DA.发送邮件节点配置:包括收件箱地址,邮件服务器和端口号,发件箱地址和授权码B.需要在QQ邮箱中设置IMAP(接收)/SMTP(发送)服务C.使用SMTP的SSL端口为465D.NodeRed的发送邮件节点中的password,指的是发件箱的邮箱登陆密码110、关于Node-RED使用QQ邮件服务器发送邮件配置,说法错误的是?CA.node-red的发送邮件节点,把msg.payload作为邮件内容,把msg.topic作为邮件主题B.需要在QQ邮箱中设置IMAP(接收)/SMTP(发送)服务C.使用SMTP的SSL端口为466D.NodeRed的发送邮件节点中的password,指的是发件箱的授权码二、填空题1、Arduino软件部分是一套程序开发环境,通过在()中编写程序代码。IDE2、Arduino软件以Precessing,avr-gcc及其他开源软件为基础,其语法与()相似,将常用的一些AVR函数进行封装,使用起来非常方便。C/C++3、Arduino的标准程序必须包含2个函数,其中()函数是主要用于初始化,()函数是一个循环函数。setup,loop4、数组中第一个数据的索引为()。05、模拟输入接口可将模拟量转换为(),便于单片机进行处理。数字量6、Arduino函数analogWrite(pin,value),其中参数value是给一个模拟接口写入模拟值,范围为()。0-2557、波特率越(),说明串口通信的速率越高,需要注意的是,通信双方设置的波特率要()。大,相同8、Serial.read函数的作用是,从串口缓冲区读取传入串口的数据,调用一次只能读取()的数据,而且会将读取的数据从缓冲区删除。一个字节9、当光照越强时,光敏电阻器的阻值就越()。低10、DHT11温湿度传感器的分辨率为:湿度()%RH,温度()℃。1,111、DHT11数字信号线在空闲状态下为()电平。高12、ESP32的UART0的TX引脚为(),RX引脚为(),在Arduino程序中的对象名称为()。pin1,pin3,Serial13、对按键的查询方式检测,需要考虑干扰情况,即延时();再考虑按键长按的情况,即等待()。消抖,释放14.创建工程时,可以指定工程最()的SDK版本。小15、相对独立的程序块之间必须加上()。空行16、在线性布局中,当控件()排列时,显示顺序依次为从左到右;当控件()排列时,显示顺序为从上到下。水平,垂直17.用于显示图片组件是()。ImageView18.表示按钮的组件是()。Button19.()属性可以设置TextView中的文本显示的大小。android:textSize20、调用构造器对象的()方法创建AlertDialog对象。create21、AlertDialog对象调用()方法,让对话框在界面上显示。show22、Android使用()来实现消息的传递。handler23、物联网的()是物联网应用开发的一个挑战。碎片化24、Java集合的Iterator方法中,hasNext()方法用来查看是否有下一个元素,有则返回(),没有则返回()。true,false25、MQTT三种不同层次QoS,其中QoS()表示接收方确保能收到而且只收到一次。226、ESP32进行WiFi连接所用的频段为()。2.4GHz27、MQTT客户端要接收消息,必须要先()消息。订阅28、NodeRed的Web页面分为3级,分别是:菜单(),组group,部件()。tab,spacer29、唯一性约束用于保证表中某个字段的值不重复且值不能为(),一个表能定义多个唯一性约束。null30、连接查询中,使用()指定两个表的连接字段。ON31、MySQL提供的数据类型有(),(),(),()。数值类型,复合类型,字符串类型,日期类型32、SELECT对查询结果进行排序的方式有()种。233、要查询一个表的所有字段数据,除了写出所有字段名之外,还可以使用()匹配。*34、自增约束可以使表中的某个字段的值自动(),自增约束通常配合主键使用,并且只适用于()类型。增加,整数35、MySQL中,当把''当做字符输入时,要在它的前面加上"\",该操作称为()处理。转义36、Node-RED使用QQ邮件服务器发送邮件,使用SMTP的SSL端口为()。46537、Node-RED使用QQ邮件服务器发送邮件,发送邮件节点中的password,指的是发件箱的()。授权码三、程序设计题1、编写代码,实现LED闪烁:1)引脚为26;2)采用宏定义的方法,引脚别名:LED_PIN。答案:#defineLED_PIN26voidsetup(){pinMode(LED_PIN,OUTPUT);}voidloop(){digitalWrite(LED_PIN,HIGH);delay(1000);digitalWrite(LED_PIN,LOW);delay(1000);}2、串口处理函数SerialEvent(),代码如下:voidserialEvent(){while(Serial.available()){//getthenewbyte:charinChar=(char)Serial.read();//addittotheinputString:inputString+=inChar;//iftheincomingcharacterisanewline,setaflagsothemainloopcan//dosomethingaboutit:if(inChar=='\n'){stringComplete=true;}}}修改程序,实现大写变小写,以及小写变大写。voidserialEvent(){while(Serial.available()){//getthenewbyte:charinChar=(char)Serial.read();if(inChar>='A'&&inChar<='Z'){inChar=inChar+32;}elseif(inChar>='a'&&inChar<='z'){inChar=inChar-32;}//addittotheinputString:inputString+=inChar;//iftheincomingcharacterisanewline,setaflagsothemainloopcan//dosomethingaboutit:if(inChar=='\n'){stringComplete=true;}}}3、串口接收json对象格式数据,本例对由一个键值对组成的json对象数据进行解析,期望串口收到{"LightStatus":1},点亮灯;收到{"LightStatus":0},熄灭灯代码,代码片段如下://引脚定义#defineLIGHT25//产品标识符StringIdentifier="LightStatus";voidloop(){//printthestringwhenanewlinearrives:if(stringComplete){Serial.println(inputString);StaticJsonBuffer<200>jsonBuffer;JsonObject&root=jsonBuffer.parseObject(inputString);if(!root.success()){Serial.println("parseObject()failed");inputString="";stringComplete=false;return;}constchar*val=root[Identifier];if(val!=NULL){constuint16_tLightStatus=root[Identifier];if(LightStatus==1){digitalWrite(LIGHT,HIGH);}else{digitalWrite(LIGHT,LOW);}}//clearthestring:inputString="";stringComplete=false;}serialEvent();}如果LED接在pin26,期望收到的串口数据:"{"Light":1}"实现关关灯,"{"Light":0}"实现开灯,如何修改程序?//引脚定义#defineLIGHT26//产品标识符StringIdentifier="Light";constuint16_tLight=root[Identifier];if(Light==0){digitalWrite(LIGHT,HIGH);}else{digitalWrite(LIGHT,LOW);}}4、串口0处理函数SerialEvent(),代码如下:voidserialEvent(){while(Serial.available()){//getthenewbyte:charinChar=(char)Serial.read();//addittotheinputString:inputString+=inChar;//iftheincomingcharacterisanewline,setaflagsothemainloopcan//dosomethingaboutit:if(inChar=='\n'){stringComplete=true;}}}如果使用串口2,编写事件处理函数SerialEvent()。答案:voidserial2Event(){while(Serial2.available()){//getthenewbyte:charinChar=(char)Serial2.read();//addittotheinputString:inputString+=inChar;//iftheincomingcharacterisanewline,setaflagsothemainloopcan//dosomethingaboutit:if(inChar=='\n'){stringComplete=true;}}}5、以下实现了对话框功能:finalEditTextet=newEditText(MainActivity.this);et.setText("很好");AlertDialogalertDialog=newAlertDialog.Builder(MainActivity.this).setIcon(R.drawable.open)//设置图标.setTitle("请提交建议")//设置标题.setView(et)//设置输入框.setPositiveButton("确定",newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialogInterface,inti){StringeditText=et.getText().toString();//获取输入内容Toast.makeText(MainActivity.this,"editText:"+editText,Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消",null).show();修改代码,将对话框中内容区默认文本内容改为"请输入建议",标题改为"建议",PositiveButton的文本改为"提交"。参考答案:finalEditTextet=newEditText(MainActivity.this);et.setText("请输入建议");AlertDialogalertDialog=newAlertDialog.Builder(MainActivity.this).setIcon(R.drawable.open)//设置图标.setTitle("建议")//设置标题.setView(et)//设置输入框.setPositiveButton("提交",newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialogInterface,inti){StringeditText=et.getText().toString();//获取输入内容Toast.makeText(MainActivity.this,"editText:"+editText,Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消",null).show();6、以下是同步请求GET方法的函数://同步请求函数
privatevoidtestGet_s(){
//创建请求对象
Requestrequest=newRequest.Builder()
.url("/v7/weather/now?location=101010100&key=d7ac748d2e2447cdb8d42e13451a646d")
.build();
//开启子线程,因操作耗时不能在主线程中执行
newThread(newRunnable(){
@Override
publicvoidrun(){
try{
//创建响应对象,客户端的newCall就是发起请求的方法,execute是直接执行即同步请求,返回即是响应
Responseresponse=okHttpClient.newCall(request).execute();
//获取响应的数据部分
Stringresult=response.body().string();
//在主线程更新UI,即在textView1文本框中显示
runOnUiThread(newRunnable(){
@Override
publicvoidrun(){
binding.textView1.setText(result);
}
});
}catch(IOExceptione){
e.printStackTrace();
}
}
}).start();
}将API修改为:/v2/city/lookup?location=%E5%8C%97%E4%BA%AC&key=d7ac748d2e2447cdb8d42e13451a646d编写程序,并将结果展示出来。参考代码://同步请求函数privatevoidtestGet_s(){//创建请求对象Requestrequest=newRequest.Builder().url("/v7/weather/now?location=101010100&key=d7ac748d2e2447cdb8d42e13451a646d").build();//开启子线程,因操作耗时不能在主线程中执行newThread(newRunnable(){@Overridepublicvoidrun(){try{//创建响应对象,客户端的newCall就是发起请求的方法,execute是直接执行即同步请求,返回即是响应Responseresponse=okHttpClient.newCall(request).execute();//获取响应的数据部分Stringresult=response.body().string();//在主线程更新UI,即在textView1文本框中显示runOnUiThread(newRunnable(){@Overridepublicvoidrun(){binding.textView1.setText(result);}});}catch(IOExceptione){e.printStackTrace();}}}).start();}7、以下代码功能是:判断收到的字符串里面有没有字符串"LedStatus",即APP是否要设置LED灯;有的话,然后用字符串截取函数取出LedStatus的值,再控制灯的亮灭。voidcallback(char*topic,byte*payload,unsignedintlen){Stringmsg="";StringLedStatus="";Serial.print("Recevice[");Serial.print(topic);Serial.print("]");for(inti=0;i<len;i++){msg+=(char)payload[i];//msg即收到的消息内容}Serial.println(msg);if(msg.indexOf("LedStatus")){//判断消息中是否有字符串"LedStatus",即APP是否要设置LED灯//通过字符串截取函数取出LedStatus的值,是字符串类型LedStatus=msg.substring(msg.indexOf("LedStatus\":")+11,msg.indexOf("}"));digitalWrite(LED_PIN,LedStatus.toInt());}}假如APP发送的命令为:"{"Led":1}",或{"Led":0},ESP32收到后,控制LED亮灭,修改代码。参考答案:voidcallback(char*topic,byte*payload,unsignedintlen){Stringmsg="";StringLedStatus="";Serial.print("Recevice[");Serial.print(topic);Serial.print("]");for(inti=0;i<len;i++){msg+=(char)payload[i];//msg即收到的消息内容}Serial.println(msg);if(msg.indexOf("Led")){//判断消息中是否有字符串"Led",即APP是否要设置LED灯//通过字符串截取函数取出Led的值,是字符串类型LedStatus=msg.substring(msg.indexOf("Led\":")+5,msg.indexOf("}"));digitalWrite(LED_PIN,LedStatus.toInt());}}8、根据API返回的数据,编写了获取北京城市ID的关键代码:Stringlocation=jsonObject1.optString(_____);//参数是键JSONArrayjsonArray=newJSONArray(_____);Stringlocation0=jsonArray.optString(_____);//参数是索引JSONObjectjsonObject_location0=newJSONObject(_____);locationID=jsonObject_location0.optString(_____);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北汽车工业学院《社区服务和家政》2023-2024学年第二学期期末试卷
- 湖北生态工程职业技术学院《精准医学和癌症》2023-2024学年第二学期期末试卷
- 长春职业技术学院《皮肤生理学》2023-2024学年第一学期期末试卷
- 新疆科技学院《C程序设计及医学应用》2023-2024学年第二学期期末试卷
- 闽南师范大学《影视后期编辑实践》2023-2024学年第二学期期末试卷
- 湖南工程职业技术学院《教育概论》2023-2024学年第二学期期末试卷
- 河北艺术职业学院《阿拉伯语语法二》2023-2024学年第一学期期末试卷
- 汝州职业技术学院《大学英语Ⅳ》2023-2024学年第一学期期末试卷
- 南阳职业学院《毕业论文(设计)写作与文献检索》2023-2024学年第二学期期末试卷
- 塔里木职业技术学院《影视作品鉴赏》2023-2024学年第一学期期末试卷
- 有机溶剂作业场所个人职业病防护用品使用规范
- 上海市长宁区2022届初三中考二模英语试卷+答案
- 嵌入式系统基础
- 商洛市宝恒矿业有限公司商洛市商州区东窑沟铅锌矿矿山地质环境保护与土地复垦方案
- 安全施工及应急措施方案
- 国际化学品安全告知卡(二甲胺)
- YS/T 1109-2016有机硅用硅粉
- 第三讲 酒店组织管理
- GB/T 27021.10-2021合格评定管理体系审核认证机构要求第10部分:职业健康安全管理体系审核与认证能力要求
- GB/T 24267-2009建筑用阻燃密封胶
- ge680ct用户学习-技术手册
评论
0/150
提交评论