内容正文:
3.3 简单算法及其程序实现同步作业2024—2025学年高中信息技术 浙教版(2019)必修1
一、选择题
1.动态规划算法通常用于解决具有以下特性的问题( )
A.单一解 B.多阶段决策 C.无规律性 D.即时性
2.某加密程序的代码如下:
str1 = input("请输入明文:")
num = "1358821604"
str2 = " "
for ch in strl:
if "0" <= ch <= "9":
str2 += num[int(ch)]
elif "a" <= ch <= "z":
str2 += chr((ord(ch) - ord("a") + 2) % 26 + ord("a"))
else:
str2 += ch
print(str2)
运行该程序,输入str1的值为“I-520-Python”,则输出结果为( )
A.G-831-Ravjqp B.G-831-Nwrfml C.I-251-Pwrfml D.I-251-Pavjqp
3.某Python程序如下:
s="24SXqz"
e=""
for ch in s:
if ch>="0" and ch<="9":
c+=str(9-int(ch))
elif ch>="a" and ch<="z":
c+=chr((ord(ch) -ord("a")+3) %26+ord("a") )
else:
c=ch+c
print(c)
程序运行后,输出的结果是( )
A.XS24tc B.75SXtc C.XS75tc D.24SXtc
4.下列与数学表达式对应的python表达式,正确的是( )。
A.( - b + math. sqrt (b * b – 4 * a * c)) /a * a
B.- b + math. sqrt (b * b – 4 * a * c) /2*a
C.( -b + math. sqrt (b * 2 – 4 * a * c)) /(2 * a)
D.( -b + math. sqrt ( b * b – 4 * a * c)) / (2 * a)
5.有如下Python程序段,执行该程序段后,一共输出列表a中的多少个元素( )
a=[1,2,3,4,5,6,7]
for i in range(5):
print(a[i])
A.7 B.5 C.2 D.3
6.读以下代码段,对其运行结果说法正确的是( )
A.1,2运行结果均输出9 B.1,3运行结果相同。2,4运行结果相同
C.2,3运行结果均为换行输出1 4 9 D.1,4运行结果相同2,3运行结果相同
7.某算法的部分流程图如下图所示,执行这部分流程,则输出s的值是( )
A.6 B.10 C.15 D.21
8.有如下Python程序段:
a=b=""
k=0
s=input().strip()
for i in range(len(s)):
if "0"<=s[i]<="9":
k+=1
else:
b=s[i-k:i]
if a < b:
a=b
k=0
print(a)
运行后若输入“3.803.93.520.888”(不包括引号),则输出的结果是( )
A.803 B.93 C.520 D.888
9.用Python程序处理字符串,程序如下:
s="b2-c1-2"
t=0;sum=0
for ch in s:
if "0"<=ch<="9":
t=t*10+int(ch)
elif "a"<=ch<="z":
t=ord(ch)-ord("a")#函数ord计算字符的ASCII值
else:
sum+=t
t=0
执行该程序段后,sum的值是( )
A.12 B.35 C.33 D.21
10.某Python程序如下:
s='A3B57e';sl=";i=0
while i<len(s):
if'A'<=s[i]<='Z':
sl=s1+chr(ord(s[i])+32)
elif'0'<=s[i]<='9':
sl=s[i]+s1
i=i+1
print(s1)
运行后输出的结果是( )
A.753abe B.a3b57 C.753AB D.753ab
11.有如下Python程序段:
sl=''1324'';s2="abcdefgh''
j,m=0,0
c=""
for i in s2:
k=int(s1[j])
c+=s2[m+k]
j+=1
ifj>3:
j=1
m=m+2
print(c)
运行程序,输出结果是( )
A.acbdefeg B.bdcefegh C.bcdefegh D.bdceefgh
12.关于python语句功能描述正确的( )
A.ord(chr(x)+26) #若字符变量x是大写字母即变成小写字母
B.str(x)+str(y) #求两数之和
C."abcd"[2:4] #运行结果为"bcd"
D.2**3*2/2 % 5 #结果3
13.下列代码的输出结果是( )
def fact(n):
s=1
for i in range(1,n+1):
s*=i
return s
print(fact(5))
A.30 B.24 C.120 D.240
14.某Python程序如下:
s,n=0,9
while True:
s+=n
if s>15:
break
n-=3
print(n,s)
程序运行后,输出的结果是( )
A.0 18 B.3 18 C.6 15 D.6 18
15.随着科技的不断进步,智能家居设备正逐渐成为我们日常生活的一部分,通过各种传感器、控制器和执行器,智能家居系统能够实现对家中设备的智能控制。通过手机、平板等设备,与互联网连接,可以随时随地控制家中的灯光、空调、电视、扫地机器人等,让生活更加便捷。安全系统不仅能监控家庭安全,还能通过面部识别技术识别访客,甚至在紧急情况下自动报警。集成的全屋语音控制系统将使得控制家中的各种智能设备变得前所未有地简单,从播放音乐到调节温度,一切尽在语言之间。假设室内合适的温度是16-24℃,用tmin~tmax表示,通过传感器获取的室内环境温度存放在变量t内,系统根据获取的温度,控制空调调节温度,用k来表示空调调温,k为1时表示上调温度,为-1时表示下调温度,为0表示温度合适,关闭空调。以下代码不能正常调控的是( )
A. B. C. D.
16.用Python语言实现“每满100减20,每满200减50,可以累计上不封顶”的优惠金额算法,设s为购买商品的原价,计算优惠金额t,下面选项正确的是( )
A.
t=s//100*20
if s//200>0:
t+=s//200*50
B.
t=s//200*50
if s%200>=100;
t=t+20
C.
if s>=200:
t=s//200*50
else:
t=s//100*20
D.
if s>=100:
t=t//100*20
else:
t=t//200*50
A.A B.B C.C D.D
17.下列Python程序段:
a=[2,4,3,5,1]
min=a[0]
s=10
for i in range(1,5):
if a[i]<min:
min=a[i]
s-=min
print(s)
执行该程序段后,输出的结果是( )
A.1 B.3 C.6 D.9
18.如下Python程序段
x = -2.5
if x > 0 :
print (1)
elif x == 0 :
print (0)
else:
print( -1)
运行后的结果是( )
A.-2.5 B.0 C.1 D.-1
19.二分查找又称折半查找,是一种应用于有序数列的高效查找算法。下列数列中适合二分查找算法的是( )
A.11,99,5,17,2,39 B.67,32,38,3,151,5
C.85,78,59,52,18,19 D.30,52,63,71,78,81
20.城市出租车按里程收费,小明绘制了收费价格程序的流程图,如下所示,要测试所有程序分支是否正确,以下测试数据中,最恰当的一组是( )
A.2,10,12 B.10,2,6 C.-1,6,10 D.3,11,100
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查动态规划算法。动态规划算法通常用于解决多阶段决策问题。它通过将问题分解为更小的子问题,并利用这些子问题的解来构建原问题的解。动态规划特别适用于那些可以通过递归关系定义的问题,且这些问题通常具有重叠子问题和最优子结构的性质。选项A、C和D不符合动态规划的特性。故选B。
2.D
【详解】本题主要考查Python程序的执行。分析程序可知,ch依次是从字符串s1中取的字符,如果ch是数字时,则将其作为索引从字符串q中取对应的数字,故520对应的数字是251;如果ch是小写字母,则将其循环后移2位;如果ch是其他字符,则保持不变,故输入s1的值为"I-520-Python",则输出结果为I-251-Pavjqp,故本题选D选项。
3.C
【详解】本题考查程序分析。程序功能是遍历字符串每个字符,如果是数字字符,执行9减去该字符,转换成字符向后累计拼接到变量c。如果是小写字母字符,则按照26个字母周期向后移动3位,向后累计拼接到变量c。如果是大写字母字符,则向前累计拼接到变量c。故选项C为正确答案。
4.D
【详解】本题考查的是Python表达式。sqrt()求平方根,乘法运算符为“*”,除法为“/”,嵌套函数均使用小括号。表示为( -b + math. sqrt ( b * b – 4 * a * c)) / (2 * a)。
5.B
【详解】本题考查的是Python循环语句。range(start,stop,[step]),start:计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0,1,2,3,4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0,5,1)。 range(5)生成[0,1,2,3,4共5个序列数,故输出5个元素。选B。
6.D
【详解】本题考查程序分析。
第一步,通过缩进(行前空格),判断层次关系(下图各内框)。
①④print(s)在循环内,即每一个循环都要执行-遍print(s),输出s
②③print(s)在循环外,即循环结束后才会执行一次print(s),输出s
第二步,判断i所处列表
range(起始,结束,步长)
①②range(1,7,2)相当于列表[1,3,5](注意不包括7)
四个图的i都是枚举列表[1,3,5],也就是都要循环3遍
第三步,模拟运行输出结果
根据上述分析:
①换行输出1 4 9
②只输出一次9
③只输出一次9
④换行输出1 4 9
故选择D。
7.B
【详解】本题考查算法流程图知识,该流程图实质是计算“1+2+3+4”的值。故选B。
8.B
【详解】本题考查Python程序执行与调试。变量k统计了数字字符的个数,变量b保存了点号间的整个数字字符串,各字符串比较大小,将更大的字符串b保存于变量a中。因此输出结果是93。故选B。
9.C
【详解】本题考查字符串的应用,根据代码,运行如下表,最后各部分逆序连接。
分组字符
t
sum
“b2”
12
12
“cl”
21
33
“2”
2
不参加运算
故选择C。
10.D
【详解】本题考查程序分析。根据代码if'A'<=s[i]<='Z':和'0'<=s[i]<='9':可知,该程序遍历字符串s,取出字母和数字,将大写字符转换成小写,将数字直接加到字符前面,存储在变量s1中,输出s1。故正确答案为选项D。
11.B
【详解】本题考查程序分析。程序代码运行过程:
k=1 j=1 m=0 c=b
k=3 j=2 m=0 c=bd
k=2 j=3 m=0 c=bdc
k=4 j=1 m=2 c=bdce
k=3 j=2 m=2 c=bdcef
k=2 j=3 m=2 c=bdcefe
k=4 j=1 m=4 c=bdcefeg
k=3 j=2 m=4 c=bdcefegh
故程序运行的最后变量c的结果为bdcefegh,故正确答案为选项B。
12.D
【详解】本题考查表达式的运算。A选项,会导致类型错误。B选项,字符拼接,非求和。C选项,结果为“cd”。D选项正确,结果为3。故正确答案为选项D。
13.C
【详解】本题考查的是自定义函数。由自定函数 fact(n)可知计算的是n的阶乘。故fact(5)=1*2*3*4*5=120,故本题应选C。
14.B
【详解】本题考查的是循环控制,break是中断循环。阅读程序可知,依次将9、6、3……数累加至s中,如果s>15,循环结束。s=9+6+3=18,条件s>15成立,终止循环,n-=3不执行,故此时n为3。选项B正确。
15.C
【详解】本题考查的是Python分支语句。选项C中,如果t>tmax会执行第一个if,还会进入第二个if进行判断,满足else分支,执行k=0,不符合题意。故本题应选C。
16.B
【详解】本题考查分支语句的作用。由于优惠条件中,一个200元的优惠幅度比两个100元的更大,因此应该优先凑200元的整数,然后再看100元的。故选B。
17.B
【详解】本题考查的是Python列表及循环。阅读程序可知,只有当 a[i]<min成立时,min值才发生变化,列表a中,只要最后一个元素1比2大。由 range(1,5)可知,循环执行了4次,前三次min值都为2,最后一次min值为1,s初始值为10,故经过循环执行s-=min后,s值为:10-2-2-2-1=3。选项B正确。
18.D
【详解】本题考查的是Python多分支结构。x=-2.5,不满足x > 0,也不满足x = 0,故最后输出为-1。选项D正确。
19.D
【详解】本题考查二分查找算法。二分查找算法是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果查找元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。分析选项可知,只有D选项数列是有序的,从小到大排列,满足二分查找算法的前提。故答案为D选项。
20.A
【详解】本题考查流程图相关知识。要测试所有程序分支是否正确,则需要将所有分支都判断一遍。测试的三组数据应该是小于等于3,大于3并且小于等于10以及大于10。故本题最恰当的一组数据是选项A的数据。故本题选A。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$