内容正文:
第2章 算法与程序实现
一、选择题
1.算法与程序的关系( )
A.算法是对程序的描述 B.算法决定程序,是程序设计的核心
C.算法与程序之间无关系 D.程序决定算法,是算法设计的核心
2.列表list1=[2,3,5,10,18,22,29],现在想要得到列表的最后一个元素29,下列选项中不能实现该功能的是( )
A.list1[6] B.list1[7] C.list1[-1] D.list1[6:7]
3.以下不属于算法描述方法的是( )
A.自然语言 B.代码 C.流程图 D.伪代码
4.下面的程序段,通过键盘输入8,则运算结果是( )
A=input( )
print(A*5)
A.40 B.88888 C.8*5 D.8.5
5.在BXY中编辑有这样一段程序:
from microbit import *
while True:
if button_a.is_pressed():
display.show(Image.HAPPY)
elif button_b.is_pressed():
break
else:
display.show(Image.SAD)
sleep(1000)
在micro:bit硬件支持下,以下说法正确的是 ( )
A.开始运行,不按开发板上的任何按钮,开发板显示“笑脸”
B.开始运行,按开发板上的B按钮后,开发板上的LED灯全部关闭
C.开始运行,不按开发板上的任何按钮,开发板进入死循环,无法正常运行
D.开始运行,按开发板上的A按钮后,开发板显示“笑脸”,一秒钟后显示“哭脸”
6.已知列表:s1=[1,['a','b'],True],执行以下程序:
s1=[1,['a','b'],True]
s1[0]=s1[0]*2
s1.append(('apple','banana'))
print(s1[1: ])
执行后输出的结果为:( )
A.[True, ('apple', 'banana')]
B.[ ['a', 'b'], True, ('apple', 'banana')]
C.[2,['a', 'b'], True, 1, ['a', 'b'], True]
D.[1, ['a', 'b'], True, ('apple', 'banana')]
7.已知 a、b为大于0的整数,下列表达式的值一定为True的是( )
A.a%b==b%a B.a>b or b>a
C.a+b<=a*b D.(a-b)*(b-a)<=0
8.下列哪种方法不属于分治策略( )
A.归并排序 B.快速排序 C.冒泡排序 D.二分查找
9.有如下 VB 程序段:
a(0) = 0 i = 1
Do While i <= 6
a(i) = Int(Rnd * 5) * 2 + 1
If Not flag(a(i)) Or a(i) > a(i - 1) Then
flag(a(i)) = True
i = i + 1
End If
Loop
已知数组 flag 各元素的初值为 False,该程序段运行后,数组元素 a(1)到 a(6)的值可能为( )
A.5,1,7,4,9,3 B.7,5,9,5,3,1 C.1,5,9,3,5,9 D.3,5,9,7,7,1
10.某算法的部分流程图如图所示,执行这部分流程后,输出s,n的值分别是( )
A.8,3 B.19,4 C.3,8 D.4,19
11.下列运算结果值最大的是( )
A.len(“123”) B.2**3 C.int(7.8) D.3%7
12.下列Python表达式中,与表达式abs(int(-4.62))的值不相等的是( )
A.len([True, 4, "score", [3, 2.7]]) B.int("324"[1])*2
C.round(24/7, 0) D.["red", True, 4][-1]
13.某算法的部分流程图如图所示,执行这部分后,下列说法不正确的是( )
A.a的值为9
B.b的值为19
C.循环条件b<=13?共执行了5次
D.当第3次执行循环条件b<=13?时,b的值为13
14.有如下VB程序段:
For i= 1 To 6
a(i)= Int(Rnd* 15)
If i >= 3 Then
lf a(i) = a(i- 1)+ a(i - 2)Then
a(i)= a(i) Mod 2
Else
a(i) = a(i)\ 2
End If
End If
Next i
执行该程序段后,在下列选项中,a(1)-a(6)各元素值不可能的是( )
A.7 13 2 1 1 3 B.9 3 2 3 0 2
C.2 8 10 3 5 7 D.14 11 7 2 4 1
15.在下面程序中,分别输入两个数2和3,运行的结果是( )
A.‘222’ B.6 C.3 D.2
二、填空题
16.在计算机编程中, 是指程序能够重复执行一段代码直到满足特定条件。
17.实现互联网数据采集的流程有三个步骤:获取网页、解析网页(提取数据)和保存数据。能实现获取网页源代码的Python第三方库是 ① ;解析网页提取数据需要用到的Python库是 ② 。
A.pandas B.requests C.BeautifulSoup D.Numpy
18.现有字符串s="ww is an boy" ,在Python中执行print(s.replace('an', 'a')),得到的结果是( )。
19.在伪代码中, 用于表示程序的开始和结束。
20.算法的常用表示方法有3种: 、 、 。
三、判断题
21.在计算机中算法执行的每一步都有确定的含义,不会出现二义性。( )
22.算法只能用自然语言来描述。( )
23.在使用Python语言编写程序时,注释不会影响程序结果,所以没有必要写。( )
24.在编写程序时,要养成添加注释的良好习惯,以提高程序的可读性。( )
四、操作题
25.小亮为家庭小花园设计一套自动浇水系统,该系统结构示意图如图所示。传感器采集的数据由智能终端经IoT模块发送到Web服务器,服务器接收数据后进行处理,并将控制阀门开关指令发送给智能终端。用户可通过浏览器查看历史记录。请回答下列问题:
(1)图中虚线框内①②③对应的设备是 (单选,填字母:A.智能终端、传感器、执行器;B.传感器、智能终端、执行器;C.执行器、智能终端、传感器)。
(2)该系统每天早、中、晚三个时间点进行土壤湿度检测,若连续三次湿度值均低于阈值s,则打开阀门,再根据土壤湿度值hum<100为重旱,100≤hum<200为中旱,200≤hum<300为轻旱,实施浇水时间分别是6分钟,4分钟,2分钟。若连续三次湿度值均高于阈值,则关闭阀门。部分Python代码如下:
#导入Falsk框架模块及其他相关模块,代码略
cnt=0
@app.route("/")
def view():
#显示土壤湿度值的历史记录,代码略
@app.route("/input")
def login():
global cnt #申明cnt为全局变量,可以调用主程序中的同名变量
hum=float(request.args.get("huml"))
#将土壤湿度值存入数据库,并从数据库中读取湿度阈值存入变量s中,代码略
if hum<s:
else:
cnt=0
if cnt==3:
cnt=0
state=1 #设置开关指令为“打开”
else:
state=0 #设置开关指令为“关闭”
return str(state)+str(t)
if_name_=="_main_"
app.run(host="0.0.0.0",port=80)
①请在程序中划线处填入合适的代码。
②加框处填写符合要求的Python程度段是 。
A. B. C. D.
(3)若需要查看土壤湿度值的历史记录,则在客户端浏览器输入的网址是http://
(4)自动浇水系统的控制阀门开关程序既可以由服务器端也可以由智能终端来处理,请分析两者各自的优点 。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查算法相关内容。算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法决定程序,是程序设计的核心,算法不是唯一的,故本题答案是B选项。
2.B
【详解】本题主要考查Python列表数据类型。列表索引是从0开始,列表list1=[2,3,5,10,18,22,29],索引是从0~6,list1[7]会出现下标溢出错误。list1[6]=29;list1[-1]表示从右端往左截取一个字符,故list1[-1]=29;list1[6:7]表示截取索引6~7(不包括7)的字符,所以list1[6:7]=29,故本题选B选项。
3.B
【详解】本题主要考查算法的描述方法。常见的算法描述方法有:自然语言、流程图、伪代码。代码不属于算法描述方法,故本题选B选项。
4.B
【详解】本题主要考查Python语句执行。A="8",A*5="88888",故本题选B选项。
5.D
【详解】本题主要考查Python程序的执行与调试。开始运行,不按开发板上的任何按钮,开发板显示“哭脸”;开始运行,按开发板上的B按钮后,跳出循环;开始运行,按开发板上的A按钮后,开发板显示“笑脸”,一秒钟后显示“哭脸”,故本题选D选项。
6.B
【详解】本题主要考查Python列表。前三行语句执行完,列表s1的元素值分别是2,['a', 'b'], True ,('apple', 'banana'),最后执行语句print(s1[1: ]),输出列表s1除去第一个元素剩下的所有元素,故执行后输出的结果为:[ ['a', 'b'], True, ('apple', 'banana')],故本题选B选项。
7.D
【详解】本题主要考查Python表达式的运算。当a、b相等时,表达式a%b==b%a的值为True,当a、b不相等时,表达式a%b==b%a的值为False,故选项A错误;当a、b相等时,表达式a>b or b>a的值为False,故选项B错误;如a=1,b=1时,表达式a+b<=a*b的值为False,故选项C错误;无论a、b取何值,表达式(a-b)*(b-a)<=0的值均为True,故本题选D选项。
8.C
【详解】本题考查算法。冒泡排序是一种简单的排序算法,它通过相邻元素之间的比较和交换来实现排序,而不属于分治策略。故答案为:C。
9.C
【详解】本题考查VB程序相关的知识点
由语句“a(i)=Int(Rnd*5)*2+1”可知产生的随机数为1、3、5、7、9,故排除A选项。条件Not flag(a(i))表示数组元素a(i)未产生,a(i)>a(i-1)表示a(i)与前一个数形成升序,则a(i)能保留,否则重新生成随机数。B选项a(4)=5时,两个条件都不能满足。D选项a(5)=7时,两个条件都不能满足。
10.B
【详解】本题考查的是流程图识读。本题流程图是循环结构。根据循环条件,循环共执行3次,第1次循环后s=3,n=2;第2次循环后s=8,n=3;第3次循环后s=19,n=4,此时退出循环,最终s=19,n=4,故选项B正确。
11.B
【详解】本题考查的是Python表达式。len()返回字符串的长度,**表示幂乘,int()返回整数,%表示求余。len("123")=3,2**3=8,int(7.8)=7,3%7=3,故选B。
12.C
【详解】本题主要考查Python函数表达式的运算。题干中abs(int(-4.62))的值为4(-4.62先取整,得-4,然后再取绝对值,结果为4)。选项A,len([True,4,"score",[3,2.7]])中,len()是一种内建函数,用于计算某个序列(list、tuple、string等)中元素的个数,[True,4,"score",[3,2.7]]列表中共4个元素,所以运算结果为4;选项B,int("324"[1])*2中,先取出"324"中的第2个元素'2',将其转换成整型值2,再乘以2,其结果为4。选项C,round(24/7,0)于将一个数字四舍五入为指定的小数位数或整数位数,此处保留0位小数,24/7=3.4,四舍五入,其结果为3.0,与题干表达式结果不同;选项D,["red", True, 4][-1]表示取["red", True, 4]中的第一个数,其值为4;故本题答案为C选项。
13.D
【详解】本题考查的是流程图。
第i次
1
2
3
4
5
a
1
3
5
7
9
b
0
1
7
13
19
第3次执行循环条件b<=13?时,b的值为7。故选项D正确。
14.C
【详解】本题考查的知识点是VB程序的解读。a(i)= Int(Rnd* 15)可知a(i)的值为0~14之间的正整数,程序完毕后,a(1)、a(2)的值为0~14之间的正整数,a(3)~a(6)的值0~7之间的正整数,选项C中如果a(3)的值为10,则a(3)减半之前的数为20,所以不可能,故答案选C。
15.A
【详解】本题考查的是Python输入输出语句。input接收的是字符数据,int是转换为整数。分别输入两个数2和3,则a*b表示连续输出3个a里面的字符,即‘222’,选项A正确。
16.循环结构
【详解】本题考查计算机编程相关内容。循环结构:用来描述重复执行某段算法的问题,是最能发挥计算机特长的程序结构。故本题答案是:循环结构。
17. B C
【详解】本题主要考查Python数据采集相关的库。实现互联网数据采集的流程有三个步骤:获取网页、解析网页(提取数据)和保存数据。能实现获取网页源代码的Python第三方库是requests ;解析网页提取数据需要用到的Python库是BeautifulSoup。
18.ww is a boy
【详解】本题主要考查Python字符串操作。现有字符串s="ww is an boy" ,replace是替换函数,在Python中执行print(s.replace('an', 'a')),则得到的结果是ww is a boy。
19.begin和end
【详解】本题考查的是算法的描述。在伪代码中,begin和end用于表示程序的开始和结束。
20. 流程图
自然语言 伪代码
【详解】本题考查的是算法描述。算法的常用表示方法有3种:流程图、自然语言、伪代码。
21.正确
【详解】本题考查算法特征相关内容。算法的五大特征:有穷性、确定性、能行性(可行性)、有0个或多个输入、有一个或多个输出。每一步都有确切的含义,不会出现二义性,这体现了算法的确定性。故本题答案是:正确。
22.错误
【详解】本题考查算法。算法可以用多种方式来描述,常见的有自然语言、流程图、程序设计语言等。自然语言描述较为通俗易懂,但可能存在模糊和歧义;流程图直观清晰,能更形象地展示算法的流程和逻辑;程序设计语言则可以直接实现算法。故说法错误。
23.错误
【详解】本题主要考查Python注释语句。在Python程序中,注释语句可以增强程序的可读性,写注释非常有必要。题干说法错误。
24.正确
【详解】本题考查程序设计注释相关内容。注释的作用是为了让自己或他人更快地了解程序作者的思路和意图,提高代码的可读性,同时在多人协同开发时,也可以提高开发效率。说法正确。
25. B cnt+=1或cnt=cnt+1 AC 10.168.23.54:80或10.168.23.54:80/ 智能终端处理优点:控制开关响应速度快;或其他符合的答案
服务器处理优点:容易统一进行系统维护和升级;能够执行更复杂的数据分析与存储。
【详解】本题考查程序分析。(1)根据图示可知数据流向,①流向②说明①为数据采集设备,故为传感器。可排除选项A、C。故正确答案为选项B。(2)①若连续三次湿度值均低于阈值s,则打开阀门。变量cnt统计次数,故填写cnt+=1或cnt=cnt+1。②选项B,当hum=200,t应该为2,但是t=4。故错误。选项D,当hum=200,t应该为2,但是t=4,故错误。正确答案为选项A、C。(3)根据图示可知,Web服务器的ip地址为:10.168.23.54。根据代码app.run(host="0.0.0.0",port=80)可知端口号为:80。根据路由函数view的注释可知,该路由函数显示历史记录且路径为/。故RUL为:10.168.23.54:80或10.168.23.54:80/。(4)智能终端处理优点:控制开关响应速度快且减轻服务器压力。服务器处理优点:容易统一进行系统维护和升级;能够执行更复杂的数据分析与存储,并且减轻智能终端压力。分析结果合理即可。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$