内容正文:
3.3 简单算法及其程序实现同步作业2024—2025学年高中信息技术 浙教版(2019)必修1
一、选择题
1.在Python中,以下代码执行后输出的结果是( )
x=1
for i in range(5):
x=x*i
print(x)
A.0 B.15 C.24 D.120
2.某算法的部分流程图如图所示,执行这部分流程,若输入n的值为25,则输出a、b的值分别是( )
A.15,14 B.10,14 C.10,7 D.15,7
3.某算法的流程图如图所示,执行该流程后,输出sum,n的值分别是( )
A.28,10 B.280,10 C.280,13 D.28,13
4.以下哪个算法不是基于贪心策略?( )
A.Kruskal算法 B.Prim算法 C.Dijkstra算法 D.Floyd算法
5.近期学校进行了一次技术学考模拟考试,学生的成绩数据保存在文件“jscj.xlsx”中,部分数据如图所示。编写Python程序,统计本次考试各班级的优秀(A等级)人数。
import pandas as pd #导入pandas模块
import matplotlib.pyplot as plt #导入matplotlib的pyplot子库
df=pd.read_excel("jscj.xlsx") #读文件中的数据
plt.bar(g.index,g.等级)
plt.show()
方框中代码由下列语句中的部分语句组成:
①df=df[df.等级=="A"]
②df=df["等级"=="A"]
③g=df.groupby("班级", as_index=True).sum()
④g=df.groupby("班级", as_index=True).count()
要实现上述功能,下列选项中正确的是( )
A.①④ B.①③ C.②④ D.②③
6.用高级语言编写的程序必须经过( )翻译成机器语言程序,计算机才能执行。
A.低级语言 B.汇编程序 C.汇编语言 D.编译程序
7.用火柴棍拼数字,各数字的拼法如下图所示,10根火柴棍(可以剩余)能拼成的最大两位数是( )
A.87 B.94 C.97 D.98
8.有如下Python程序段:
s=input()
word=[]
for i in range(len(s)):
for j in range(i+1,len(s)):
if s[i:j]not in word:
word.append(s[i:j])
ifs[i:]not in word:
word.append(s[i:])
n=len(word)
执行该程序段,输入“ababa”,则n的值是( )
A.7 B.8 C.9 D.10
9.有如下Python 程序段
s="Li20An24K04ao"; i=0
while i<len(s):
if"A"<=s[i]<="Z":
s=s[:i]+s[i+1:]
elif"0"<=s[i]<="9":
s=s[:i]+str((int(s[i])+8)%10)+s[i+1:]
else:
s=s[:i]+chr((ord(s[i])-95)%26+97)+s[i+1:]
i=i+1
执行上述程序后,s 的值为( )
A.k08p0202co B.i08n0202cq C.i08p0202cq D.h28w22g82o
10.某算法的部分流程图如图所示,输入a的值为26,若用Python语言描述,则下列正确的是()
A. B.
C. D.
11.有如下Python程序段,可以实现从班级学生中随机抽取五名学生参与班会活动。
名称
含义
random.randint(a,b)
随机生成一个[a,b]范围内的整数
random.random()
随机生成一个[0,1)范围内的实数
random.choice(seq)
从序列seq的元素中随机挑选一个元素
import random#random模块中的常用函数如上表所示
#导入学生名单到列表a中,a=["张*","李*",...,丁*"]
name_list=[] #列表name list存放随机生成的学生名单
for i in range(5):
t=①
②
a.pop(t) #从列表a中删除已被抽取的学生,避免重复抽取
上述程序段中划线处依次可填入的语句是( )
A.①random.randint(0,len(a)-1) ②name_list+=a[t] B.①int(random.random()*len(a)) ②name_list+=a[t]
C.①random.randint(0,len(a)) ②name_list.append(a[t]) D.①random.randint(0,len(a)-1) ②name_list.append(a[t])
12.有如下程序段:
s=['']*len(a)
head=2;q=head;top=-1
while q!=-1:
top+=1
s[top]=a[q][0]
q=a[q][1]
print(s[top-2])
若a=[['a',3],['b',0],['c',1],['d',-1]],则输出的结果为( )
A.a B.b C.c D.d
13.某算法的流程图如图所示,若输入的n值为10987654321,则下列说法正确的是( )
A.该算法中包含两个循环结构 B.执行该流程后,输出的s值为30
C.语句“n>0?”与“r%2=0?”执行的次数相同 D.执行该流程后,变量r的值为1
14.某算法的流程图如图所示。执行这部分流程,
输入41,则输出的值是( )
A.0 B.19 C.22 D.32
15.根据国家标准,室内空气质量指数的正常范围为0.5~2.5,如果空气质量指数大于2.5,则表明空气质量较差,空气质量指数小于0.5,表明空气质量较好,下列选项能正确表示这三种情况的是( )
A.
if zs>2.5:
print ("较差")
elif 0.5<zs<2.5:
print ("正常")
else:
print ("较好")
B.
if 2.5>zs>0.5:
print ("正常")
elif zs<0.5:
print ("较好")
else:
print("较差")
C.
if zs>2.5:
print ("较差")
elif not zs > 0.5:
print ("较好")
else:
print ("正常")
D.
if zs<0.5:
print ("较好")
elif not zs > 2.5:
print ("正常")
else:
print ("较差")
A.A B.B C.C D.D
16.关于分支结构的叙述,正确的是( )。
A.有一个入口,三个出口 B.有一个入口,一个出口
C.有一个入口,两个出口 D.有两个入口,一个出口
17.在信息传递的过程中,通常会将一些敏感信息进行加密,以下是实现加密功能的Python程序段。
mw=input("请输入明文:")
mm="";key=2
for ch in mw:
if"0"<=ch<="9";
mm=str((int(ch)+key)%10)+mm
else:
mm+=chi
print(mm)
若输入的明文为“Hi,2024”,则执行代码后的输出结果为( )
A.,6424iH B.6424Hi C.6424Hi, D.Hi,6424
18.某Python 程序如下:
s=input("请输入字符串:")
ans=""
a=["1","2","3"]
for c in s:
if "0"<=c<="9":
ans+=a[int(c)%3]
elif "a"<=c<="z":
ans=c+ans
elif "A"<=c<="Z":
ans+=chr(ord(c)+32)
print(ans)
程序运行时,若输入“App7+”,则输出的结果是( )
A.ppa2+ B.app2+ C.ppa2 D.ppA1
19.读以下代码段,对其运行结果说法正确的是( )
A.1,2运行结果均输出9 B.1,3运行结果相同。2,4运行结果相同
C.2,3运行结果均为换行输出1 4 9 D.1,4运行结果相同2,3运行结果相同
20.有如下Python程序段:
s=″328ud*YourDay″
t=″″
for i in range(len(s)):
if s[i]>=″a″ and s[i]<=″z″:
t=t+s[i]
print(t)
该程序段的功能是( )
A.输出字符串t中的所有小写字母 B.输出字符串s中的小写字母个数
C.输出字符串s中的所有的非数字字符 D.输出字符串s中的所有小写字母
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查的是Python循环语句。range(5)生成0,1,2,3,4序列数, x=x*i将i累乘到x中,即x=1*0*1*2*3*4=0,故选A。
2.B
【详解】本题考查流程图分析能力。根据流程图显示,变量a,b,n经过以下过程:
a=0,b=0,n=25
a=5,b=0,n=20
a=5,b=7,n=13
a=10,b=7,n=8
a=10,b=14,n=1
故选项B正确。
3.C
【详解】本题考查程序分析。该程序运行过程:
初始:sum=1,n=1
1<100成立,执行sum=sum*n=1*1=1,n=n+3=1+3=4;
1<100成立,执行sum=sum*n=1*4=4,n=n+3=4+3=7;
4<100成立,执行sum=sum*n=4*7=28,n=n+3=7+3=10;
28<100成立,执行sum=sum*n=28*10=280,n=n+3=710+3=13;
280<100不成立,输出sum为280,n为13
故正确答案为选项C。
4.D
【详解】本题考查算法的描述。Kruskal算法、Prim算法和Dijkstra算法都是基于贪心策略的算法。Kruskal算法用于求解最小生成树,Prim算法也是用于求解最小生成树,而Dijkstra算法用于求解单源最短路径问题。Floyd算法则是用于求解所有顶点对之间的最短路径问题,它采用的是动态规划的策略,而不是贪心策略。故选D。
5.A
【详解】本题考查数据的处理与应用。筛选的语法为df[条件],筛选出等级为A的学生,语句为①。按班级分组,班级当做索引,统计各班级的优秀人数,用count()来表示,故答案为A选项。
6.D
【详解】本题主要考查程序设计语言的描述。用高级语言编写的程序也不能直接被计算机识别和执行,必须经过编译程序或解释程序将其翻译成机器语言。故选D。
7.C
【详解】本题考查算法相关内容。由图可知,要想两位数最大,首先十位上要尽可能大,选9,用去6根火柴棍,剩下4根,个位可以选7,最大是97。故本题答案是C选项。
8.C
【详解】本题考查计算机程序分析能力。根据程序两层for循环可知依次遍历切片字符串ababa,添加到空列表word中,不添加重复字符串。
i=0,j分别取1,2,3,4。
i=1,j分别取2,3,4。
i=2,j分别取3,4。
i=3,j分别取4。
根据代码 word.append(s[i:])可以将每次最后一个字符串添加上。
最终['a', 'ab', 'aba', 'abab', 'ababa', 'b', 'ba', 'bab', 'baba'],故C选项正确。
9.B
【详解】本题考查的是Python循环及多分支语句应用。由if语句可知,如果是大写字母,直接删除;由elif语句可知,如果是数字,0~9构成环,后移8位;由else语句可知,如果是小写字母,a~z构成环,后移2位。需要注意的是删除大写字母时,由于字符串s字符变少,会跳过大写字母后一个字符的处理。初始s="Li20An24K04ao",依据上述原则,处理后s="i08n0202cp",故选B。
10.A
【详解】本题考查的是流程图及Python语言。由流程图可知,循环的条件是a!=b,故排除BD,b=b-3这个语句不管a是否大于b都要执行,故排除C。本题应选A。
11.D
【详解】本题考查的是列表综合应用。列表索引从0开始,故随机数应为0~len(a)-1的整数,列表元素添加用append。故本题应选D。
12.B
【详解】本题考查Python列表相关操作。进入循环之前,head=2;q=head;top=-1;第一次进入循环:q=2,top=0,s[0]=a[2][0]=’c’,q= a[2][1]=1,继续;第二次进入循环:q=1,top=1,s[1]=a[1][0]=’b’,q= a[1][1]=0,继续;第三次进入循环:q=0,top=2,s[2]=a[0][0]=’a’,q= a[0][1]=3,继续;第四次进入循环:q=3,top=3,s[3]=a[3][0]=’d’,q= a[3][1]=-1,结束循环。最后输出s[2],即’b’。
13.D
【详解】本题考查的是流程图识读。该算法中包含一个循环结构;该算法的功能是将输入的n值中,数位上为偶数累加到s中,n值为10987654321,s=2+4+6+8+0=20;语句“n>0?”比“r%2=0?”执行多执行1次;r表示是n值中个位、十位……的数字,故执行该流程后,变量r的值为1。本题应选D。
14.B
【详解】
x
41
20
10
5
2
1
0
s
1
-1
-5
3
-13
19
k
2
4
8
16
32
64
最后可得s值19,故本题选B。
15.D
【详解】本题考查Python程序设计相关内容。分析4个选项:A选项中,elif条件错误,应为0.5<=zs<=2.5;B选项中,if条件错误,应为2.5>=zs>=0.5;C选项中,elif中条件错误,应为not zs>=0.5;D选项正确。故本题答案为D选项。
16.B
【详解】本题考查的是程序控制结构。程序有三种控制结构:顺序、分支、循环,不管哪种结构,只有一个入口和一个出口。故本题应选B。
17.C
【详解】本题考查程序分析。语句(int(ch)+key)%10的功能是把数字ch循环右移2位,即如果ch=0,循环右移2位结果是2,若ch=4,右移结果是6,若ch=2,右移结果是4。mm=str((int(ch)+key)%10)+mm的功能是把右移2位的结果逆序保存到mm中,如果ch不是数字,则按照顺序保存到mm中。故选C。
18.C
【详解】本题考查字符串处理知识。由代码分析可知,该段代码对字符串s进行遍历,如果是数字字符,则在列表a中取出a[int(c)%3];如果取出的是小写字符,则将字符倒排链接在ans中;如果取出的是大写字符,则将其转换成小写字母,链接在ans中。根据分析可知为C选项。
19.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。
20.D
【详解】本题Python循环语句。考查的是本题字符串t中输出的是字符串s中的所有小写字母,因此答案为D。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$