内容正文:
第二章 算法与程序实现
一、选择题
1.高级语言更接近自然语言,并不特指某种语言,也不依赖于特定的计算机系统,因而更容易掌握和使用,通用性也更好,下列不属于高级语言的是( )
A.Java语言 B.Python语言 C.汇编语言 D.C语言
2.以下循环执行的次数是( )
k=10
while(k):
k=k-1
A.1 B.9 C.11 D.10
3.在Python语言中,下列选项中能实现绝对值函数是( )
A.input() B.print() C.show() D.abs()
4.以下选项中算法功能对应的流程图是( )
图1 图2 图3 图4
A.图3:求任意两个数的商 B.图4:求一个数与自然数的商
C.图1:求1+2+3+4+…+100的和 D.图2:求x的绝对值
5.有如Python程序段:
from random import randint
def find(x,y,key):
m=(x+y+1)//2
if a[m]==key:
return m
elif a[m]>key;
y=m–1
else:
x=m+1
if x>y:
return-1
return find(x,y,key)
a=[1,3,6,10,11,12,17,21]
x=randint(1,9)*2+1 #randint(a,b)函数的功能是产生[a,b]%范围的整数
print(find(0,len(a)-1,x))
上述程序执行完后,函数find被调用的的次数不可能的是( )
A.1次 B.2次 C.3次 D.4次
6.已知s="杭州亚运会",下列说法正确的是( )
A.s[1:4]的值是:"杭州亚运" B.s[1:4]的值是:"州亚运会"
C.s[-3:-5]的值是:"亚州" D.s[::-1]的值是:"会运亚州杭"
7.在Python中,下列合法的变量名是( )
A.if B.2ab C.year D.x#y
8.使用流程图描述算法时,图形的功能是( )
A.开始或结束 B.变量赋值 C.条件判断 D.变量输出
9.在Python语言中,已知x=[1,2]和y=[3,4],那么x+y的结果是( )
A.[1,2,3,4] B.7 C.[4,6] D.3
10.已知 s='zhejian',则 s[1:5:2]+s[-1:-7:-2]的值是( )
A.'zeeni' B.'zenie'
C.'hjeni' D.'hjnie'
11.计算s=1×2×3×…×n的算法流程图如图所示,虚线框中应填写的内容是( )
A. B. C. D.
12.描述算法的部分流程图如图所示,此算法的控制结构属于( )
A.顺序结构 B.分支结构 C.循环结构 D.树形结构
13.某 Python程序段如下:
s = "420play+2qQ"
res = ""
for i in range(len(s)):
if "0" <= s[i] <= "9":
res = s[i] + res
if i % 3 == 0 and "a" <= s[i] <= "z":
res = res + chr(ord(s[i]) - 32)
print(res)
执行该程序段后,输出的结果是( )
A.4202PYQ B.2024A C.PYQ4202 D.2024PYQ
14.某算法的部分流程图如图所示。执行这部分流程,输出s和i的值分别是( )
A.30 11 B.30 9 C.28 11 D.26 9
15.有如下Python程序段:
import pandas as pd
s1 = pd. Series (["学习", "运动", "睡觉", "吃饭"], index = ["01", "02", "03", "04"])
sl ["03"] = "休息"
bm = s1. index
sub = s1. values
time = [40,90,79,30]
num = [13,2,10,3]
col = ["活动", "时长", "次数"]
data = {"活动": sub, "时长": time,"次数": num}
df1= pd. DataFrame (data, index = bm, columns = col)
print (df1[df1 ["时长"]*df1["次数"]>120])
运行该程序段,输出显示的结果为( )
活动时长次数
A. B.
C. D.
二、填空题
16.下面代码的运行结果为 。
a=[5,2,8,7,3]
a[0]=6
del a[1 ]
a.append(9)
print (a)
17.python中,表达式5//2 = 。
18.以下算法的输出结果是: 。
19.用Python表达式补充完成如下程序,统计四位奇数中满足能被23和19整除的总数。
s=0
for i in range(1001,10000,2):
:
s=s+1
print(s)
20.一个算法中的每一步都应该是确定的、没有歧义的语句,这符合算法特征中的( )性。
三、判断题
21.执行语句x=y= z="pumpkin"后,变量x,y,z的值都是字符串“pumpkin”。( )
22.Python语言是高级语言,需要经过翻译才能被计算机执行。( )
23.Python语言的变量名要区分英文字母的大小写。( )
24.算法的每一个步骤可以对应程序中一条或多条语句,每条语句最多只能实现一个操作。( )
四、操作题
25.小林为亚运会游泳比赛搭建一个水质监测信息系统。该系统需要实时监测游泳池的水温和PH值,并且能够在水温或PH值出现异常时发出警报。已选择的硬件有:智能终端、水温和PH值传感器、执行器(用于报警)、服务器等,系统的硬件搭建方式是:服务器通过无线网络连接智能终端,智能终端连接传感器和执行器。此外,工作人员和相关管理人员可以通过浏览器查看实时监测结果和历史数据,以便及时进行调整和维护。回答下列问题:
(1)在程序编写完成后,需要运行水质监测信息系统,检测系统在运行过程中是否存在问题,这一过程属于软件测试中的 (单选,填字母:A.网络测试/B.动态测试/C.正确性证明)
(2)下列不是智能终端程序实现的功能为 (单选,填字母:A.具有数据处理的功能/B.具有处理浏览器访问请求的功能/C.具有网络通信的功能)。
(3)小林基于Flask Web框架编写服务器的程序,部分代码如下。编写完成后,若要通过浏览器获取视图函数index()的返回页面,则应访问的URL是 。
#导入Flask框架模块及其他相关模块,代码略
app=Flask(__name__)
@app.route('/read')
def index():
#从数据库中读取游泳池的水温和PH值,并返回页面,代码略
#服务器其他功能,代码略
if __name__=='__main__':
app.run(host='192.168.1.168',port=8080)
(4)信息系统的服务器在工作过程中可能面临安全风险,从病毒防治的角度,写出2项服务器的病毒防治措施 。
(5)小林将系统中6月1日到6月7日的数据导出到“data.xlsx”文件中,部分数据如图a所示(时间格式为**月**日**时**分),分析每天最大PH值的变化,线型图如图b所示,部分Python程序如下,请在程序中划线处填入合适的代码。
图a 图b
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Simhei']#显示中文
df=pd.read_excel("data.xlsx")
df.insert(1,"日期","") #插入日期列
for i in df.index:
t=df.at[i,"时间"]
①
g1=df.groupby("日期",as_index=False).max()
plt.plot(② )
plt.grid(True) #增加格点
plt.ylim(6.5,8.5)
plt.title("游泳池 PH 值峰值变化",fontsize=15)
plt.show()
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题主要考查程序设计语言。汇编语言属于低级语言,Java语言、 Python语言、C语言均属于高级语言,故本题选C选项。
2.D
【详解】本题考查Python程序设计相关内容。分析程序段,该程序采用了循环结构,通过 k值的变化来控制while循环的执行。若循环条件k为真,执行循环体,否则结束循环,即:k从10到1,循环体共执行了10次,当k=0时,结束循环。故本题答案是D选项。
3.D
【详解】本题考查Python函数相关内容。input()是一个内置函数,接受一个标准输入数据,返回为 string类型。print()用来输出指定的字符串或数值到标准输出装置的函数。show()是一个用于显示图形的函数,可以在Python程序中直接调用。abs()接受一个数字作为参数,并返回该数字的绝对值。故本题答案是D选项。
4.C
【详解】本题考查流程图。A选项错误,求任意两个数的商首先需要判断除数是否为0,流程图中缺少该步骤;B选项错误,求一个数与自然数的商,该自然数并未给出;C选项正确,通过(首项+末项)×项数÷2来计算1到100的和。D选项错误,该流程图没有输出。故答案为:C。
5.D
【详解】本题考查Python程序。给定的程序段实现了一个递归的二分查找函数find,用于在已排序的列表a中查找指定的key值。程序中使用了随机数生成一个奇数作为查找的目标值x,然后调用find函数来查找该值在列表a中的位置。在已排序的列表a=[1,3,6,10,11,12,17,21]中,使用二分查找,最坏情况下,函数find可能被调用多次来确定目标值的位置。由于每次递归调用都将问题规模减半,最坏情况下需要进行的递归调用次数大致为列表a的长度的对数,即log2(len(a))。观察给定的a列表和随机生成的x,最坏情况下可能需要多次递归调用find函数才能找到目标值x,这取决于x在列表中的位置。当x=11时,函数find被调用1次。当x=17时,函数find被调用2次。当x=13时,函数find被调用3次。而函数find不可能被调用4次。故答案为:D。
6.D
【详解】本题考查Python字符串处理相关内容。s="杭州亚运会",s[1:4]的值是:"州亚运"(截取序号1-3的字符),A、B选项错误;s[-3:-5]的值是:""(从右往左编号:-1、-2、-3...。s[-3:-5]即为从右侧序号-3开始往右截取,但-3右侧是-2、-1,不会出现-5,无法截取字符),C选项错误;s[::-1]的值是:"会运亚州杭"(从右侧第一个字符开始,逆序),D选项正确。故本题答案是D选项。
7.C
【详解】本题考查Python基础。选项A,为关键字。选项B,数字开头。选项D,#号不能出现在变量名中。选项A、B、D为非法变量名,故选择C。
8.C
【详解】本题主要考查算法流程图。菱形是条件判断框,平行四边形是数据输入/输出框,圆角矩形是开始/结束框,矩形是数据处理框(用于变量的计算与赋值)。故选C。
9.A
【详解】本题考查的是列表相关知识。在Python语言中,“+”用于组合列表,x=[1,2],y=[3,4],x+y=[1,2,3,4]。故选A。
10.D
【详解】本题考查的是Python切片。切片操作基本表达式:object[start_index : end_index : step],step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认为1,即从左往右以增量1取值。start_index:表示起始索引(包含该索引本身);该参数省略时,表示从对象“端点”开始取值,至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为正从“起点”开始,为负从“终点”开始。end_index:表示终止索引(不包含该索引本身);该参数省略时,表示一直取到数据”端点“,至于是到”起点“还是到”终点“,同样由step参数的正负决定,step为正时直到”终点“,为负时直到”起点“。已知 s='zhejian',则 s[1:5:2]+s[-1:-7:-2]='hj'+'nie'='hjnie'。故本题应选D。
11.C
【详解】本题考查的是流程图识读。计算s=1×2×3×…×n,初始i=1,终值是n,故虚线框中应填写的内容是i<=n,选项C正确。
12.C
【详解】本题考查流程图与程序结构相关内容。程序结构有三种基本结构:顺序结构、分支结构、循环结构。通过观察流程图:在x>y条件成立的情况下,执行x=x-1,y=y+1;后,流程又转回到判断x>y条件是否成立。可以得知,该流程图描述的是循环结构。D选项树型结构是数据结构中的一种非线性结构,不属于程序结构,选项错误。故本题答案是C选项。
13.D
【详解】本题考查程序分析能力。当字符是数字时候,将数字向前累计拼接到res上。当索引能被3整除且是小写字母时候,则转化成大写字符并向后拼接累计到res后面。故正确答案为D选项。
14.A
【详解】本题考查的是流程图识读。阅读程序可知s=0+1*2+3*0+5*2+7*0+9*2+……,直到s>15时,输出s和i,故最终s=30,i=11。选项A正确。
15.B
【详解】本题考查的是程序调试与运行。根据最后一行语句可知,筛选的是时长和次数之积大于120的数据。根据倒数第二行语句可知,索引是bm,列标题是col。故本题应选B。
16.[6,8,7,3,9]
【详解】本题考查Python程序设计相关内容。分析程序段,a为列表,初始值为[5,2,8,7,3],执行a[0]=6,a值为[6,2,8,7,3];执行del a[1](删除a[1]),a值为[6,8,7,3];执行a.append(9)(在列表末尾添加元素值9),a值为[6,8,7,3,9]。故本题答案是:[6,8,7,3,9]。
17.2
【详解】本题考查Python基础。表达式 5 // 2 使用了整数除法运算符 //,故为2。
18.62
【详解】本题考查的是流程图的执行过程。a=256,b=6,c=2,a=6*10+2=62,故输出的结果为62。
19.if i %23==0 and i %19 ==0
【详解】本题考查的是Python循环与选择语句。通过循环变量i遍历所有四位数的奇数,判断能否被23和19整除,只要看除完后的余数是否为0,故画线处代码为:if i %23 == 0 and i %19== 0。
20.确定
【详解】本题考查的是算法特征。确定性:算法执行的每一个步骤必须有确切的定义,不能出现模棱两可的情况。
21.正确
【详解】本题考查Python程序设计相关内容。“=”是Python中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量。Python可以进行连续赋值,可以使用连续赋值方式将多个变量设置为相同的值。故本题答案是:正确。
22.正确
【详解】本题考查Python。Python语言是高级编程语言,它不能被计算机直接识别和执行,需要通过解释器或编译器将其翻译成计算机能够理解的机器语言后才能执行。故说法正确。
23.正确
【详解】本题考查Python。Python语言的变量名是区分英文字母大小写的,这意味着在Python中,变量名var和Var被视为两个不同的变量。故说法正确。
24.正确
【详解】本题考查的是算法相关知识。算法的每一个步骤可以对应程序中一条或多条语句,每条语句最多只能实现一个操作。题干中说法正确。
25. B B http://192.168.1.168:8080/read ①安装并开启防火墙 ②安装应用系统补丁 ③安装病毒软件 ④经常对系统和重要的数据进行备份或其他合理答案 df.at[i,"日期"]=t[3:5]或 df["日期"][i]=t[3:5] g1.日期,g1.PH 值
【详解】本题考查信息系统相关内容。
(1)软件测试按照测试技术分为静态测试和动态测试。静态测试是指不运行程序,通过人工方式对程序和文档进行分析与检查; 动态测试是指通过运行被测程序来检查运行结果与预期结果的差异,并分析运行效率和健壮性等指标。由“,需要运行水质监测信息系统,检测系统在运行过程中是否存在问题”可知,该测试为动态测试,故此处填写:B。
(2)智能终端解决传感器与执行器的操作问题,而浏览器的请求响应则由服务器解决,浏览器的请求与智能终端无直接的关系。故此处应填写:B。
(3)完整的URL由协议+IP+端口+路由组成,必要时可以设置GET的参数。由代码:app.run(host='192.168.1.168',port=8080),可知答案应为:http://192.168.1.168:8080/read。
(4)服务器是互联网个体以及企业都必须要接触的载体,服务器的安全关系到其业务的正常运营,一旦发生入侵,服务器上的资料和程序将可能受到严重的损坏,服务器安全防护措施一定要提前做好。服务器的病毒防治措施有:①安装并开启防火墙、②安装应用系统补丁、③安装病毒软件、④经常对系统和重要的数据进行备份或其他合理答案。
(5)结合题目内容及程序段,⑤处,由图a、图b知,构建线型图要以日期、PH值为参照系,此处需定位到时间中的日期,其所在为:t[3:5],故此处应填写:df.at[i,"日期"]=t[3:5]或 df["日期"][i]=t[3:5]。⑥处,plot函数可绘制线型图,x轴为日期,y轴为PH值,故此处应填写:g1.日期,g1.PH 值。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$