内容正文:
第2章 算法与程序实现
一、选择题
1.下列属于浮点型数据的是( )
A.False B.-6 C."2.0" D.3.0
2.算法是求解某一问题的步骤和方法。算法的输出结果至少应有( )。
A.0个 B.1个 C.2个 D.3个
3.智能农业大棚中的自动温度控制系统,通过温度传感器每隔一定时间采集大棚中的温度,一旦监测到环境温度超过预设的最高温度40℃,控制系统会启动通风和喷水子系统实现降温;如果温度低于预设的最低温度18℃,控制系统会启动加热器,给大棚升温。下列Python程序段功能为:列表1st中存放的是某温度传感器某时段内采集的温度值,找出其中最大值max和最小值min。
1st=[20.5,21,20.8,19.8,21.5]
max=min=lst[0]
for i in range((1) ):
if (2) :
max=lst[i]
elif min>lst[i]:
min=lst[i]
print("最大值是:",max,"最小值是:",min)
上述程序段中划线处可选语句为( )
①1,len(1st)-1 ②1,len(1st) ③max<1st[i] ④max>1st[i]
A.①③ B.②③ C.①④ D.②④
4.下图所示是一个选择(分支)结构算法流程图,下列选项中描述正确的是( )
A.A操作一定会被执行 B.A操作一定先于B操作被执行
C.判断条件P可以有2个以上的结果 D.A操作有可能不被执行
5.Python表达式20 % 3+3 * 2的运算结果是( )
A.12 B.8 C.11 D.15
6.变量a,b,c分别为’one’,’two’,’three’,执行以下程序后,a,b,c的值分别为( )
c=a
a=b
b=c
A.’two’,’three’,’one’ B.’two’,’one’,’three’
C.’one’,’two’,’three’ D.’two’,’one’,’one’
7.某DataFrame对象df中包含“准考证号”“姓名”“学校”“语文”“数学”等数据列,下列语句中,可以以学校为单位,统计各校学生“语文”成绩平均值的是( )
A.df.groupby("学校").mean() B.df.groupby("准考证号").mean()
C.df.groupby("语文").mean() D.df.groupby("语文").学校.mean()
8.用流程图表示条件“A>B”是否成立,要用到以下哪个图形? ( )
A.D B.B C.C D.A
9.在Python中,10/4**0.5*2的计算结果是( )
A.1.0 B.2.25 C.5.0 D.10.0
10.某算法的部分流程图如图所示,执行这部分流程,若输入m的值为20,n的值为3,则输出c的值是( )
A.18 B.28 C.29 D.47
11.下列Python表达式的值为6的是( )
A.int(max("6","56","100")) B.len(["123456"])
C.str(6) D.abs(float(-6))
12.计算机解题的一般过程分4步:①需求分析;②设计算法;③( );④上机调试
A.信息反馈 B.编写程序 C.整体设计 D.系统集成
13.有如下Python程序段:
import pandas as pd
s2 = pd. Series ([166, 180, 178], index = ["s01", "s02", "s03"])
下列选项中输出结果为180的是( )
A.s1 = s2. sort _ values (ascending = True) print (s1[0])
B.s1 = s2. sort _ values (ascending = False) print (s1. head (1))
C.print (s2. max ())
D.print (s2. values)
14.计算机程序设计的一般过程中,根据清晰可操作的算法描述,选择一种计算机语言工具实现算法,这一步骤属于( )
A.设计算法 B.调试运行 C.编写程序 D.结果检测
15.利用Python编写自定义函数完成阶乘的计算,代码如下所示,程序运行结果是( )
(1)def factoria1(n):#求n!
(2) s=1
(3) for i in range(2,n+1)::
(4) s=s*i
(5) return s
(6)print(factorial(4))
A.1 B.120 C.24 D.6
二、填空题
16.填空题:在算法分析中, 用来衡量算法执行的时间长度。
17.下面程序实现从100到1000以内的水仙花数,请补全空缺内容
for i in range(100,1000):
a=
b= (i//10)%10
c=i%10
if i==
print(i)
18.某校高二年级举行田径运动会,下表是小明和小红同学的项目报名数据。
姓名
100米
200米
1000米
铅球
跳远
小明
√
√
√
小红
√
√
请完成下面小题。
1. 若用Xm={"100米":1,"200米":0,"1000米":1,"铅球":1,"跳远":0}来存储小明的报名数据,现要取消小明的1000米报名,下列Python语句可行的是( )
A.Xm["1000米"]=0 B.Xm["1000米"][1]=0
C. Xm[2]=0 D.Xm."1000米"=0
2. 若用逻辑变量join1和join2(初值均为True,True表示参加)分别表示小明和小红是否参加某项比赛,下列逻辑表达式用于表达“两人都不参加比赛”,其中不可行的是( )
A.join1==False and join2==False B.not join1 and not join2
C. not (join1 or join2) D.not (join1 and join2)
19.现有字符串name='Tommy',在Python中运行print(name[1]),得到的结果是( )。
20.在计算机编程中, 是一种将高级语言编写的程序转换为机器语言的过程。
三、判断题
21.在函数内部,既可以使用global关键字来声明使用外部全局变量,也可以使用global关键字直接定义全局变量。( )
22.若有a=[1,2,3,4,5],则表达式a[2]+a[4]的值为6。( )
23.在使用Python语言编写程序时,注释不会影响程序结果,所以没有必要写。( )
24.在编写程序时,要养成添加注释的良好习惯,以提高程序的可读性。( )
四、操作题
25.某校师生对校园十件新闻进行投票,选出投票数最高的3件新闻。投票规则:每位师生投票项不能超过5项,超过5项作为废票。部分投票数据如图所示,表中“1”表示投了该新闻,“0”表示没有投该新闻。如第1行数据表示:投票人“20241309”投票了“新闻1,新闻3,新闻4,新闻8”。
(1)从上图可知,投票人序号是 投票数据无效,作为废票。
(2)小张根据需求编写Python程序如下,完善划线处的代码。
主程序如下:
```
从数据库导出的投票数据存列表tpdata中,代码略,格式如
tpdata=[[20241309','1','0,'1','1','0','0','0','1','0','0],…],列表每项表示每个投票人的投票数据
```
n=3 #选出投票数最高n件校园新闻
m=10 #10件待投票校园新闻
flag=[False]*10
count=[0]*10 #记录每件校园新闻的投票数
rst=[]
xws=['新闻1','新闻2','新闻3','新闻4','新闻5','新闻6','新闻7','新闻8','新闻9','新闻10']
for r in tpdata:
if check(r):
tjtp(r)
for i in range(n):
p=①
flag[p]=True
rst.append(xws[p]) #在列表rst末尾添加一个元素
#输出投票数最高的n件校园新闻,代码略
(3)自定义函数check(r),功能是判断投票数据是否符合投票规则,符合的返回True,请在划线处填入合适的代码。
def check(tp):
t=0
for i in range(1,m+1):
if tp[i]=='l':
②
if t>5:
return False
return True
(4)自定义函数getmax(),功能是在列表count中找到最大值的索引,请在划线处填入合适的代码。
def getmax():
maxtp=0
for i in range(m):
if③ and count[i]>maxtp:
maxtp=count[i]
maxp=i
return maxp
(5)自定义函数tjtp(r),功能是统计每件新闻的投票数,结果存列表count,count[0]表示“新闻1”的投票数,count[1]表示“新闻2”的投票数,依次类推。代码略。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题考查Python数据类型相关内容。A选项,False为布尔型。B选项,-6为整型。C选项,"2.0"为字符串型。D选项,3.0为浮点型。故本题答案是D选项。
2.B
【详解】本题主要考查算法的特点。算法可以没有输入,但至少要有一个输出,故本题选B选项。
3.B
【详解】本题考查Python程序设计相关内容。结合题目内容,分析程序段,该程序段算法思想是先假定列表lst第一个元素lst[0]为最大值max、最小值min,在[1,len(1st)-1]内,列表元素lst[i]分别与max、min进行比较,若max<lst[i]成立,则最大值为lst[i];若min>lst[i]成立,则最小值为lst[i]。结合range函数特点,②1,len(1st)、③max<1st[i]符合题意,故本题答案是B选项。
4.D
【详解】本题考查算法控制结构。选择结构表示程序的处理步骤出现了分支,需要根据某一特定的条件选择其中的一个分支执行。由图可知,A操作有可能不被执行。故选D。
5.B
【详解】本题主要考查Python表达式的运算。20 % 3+3 * 2=2+6=8,故本题选B选项。
6.D
【详解】本题主要考查语句的执行。a='one',b='two',c='three',c=a='one',a=b='two',b=c='one',因此执行以下程序后,a,b,c的值分别为'two','one','one',故本题选D选项。
7.A
【详解】本题考查Python。df.groupby("学校").mean()是以学校为单位,统计各校学生各列的成绩平均值,包括“语文”。故答案为:A。
8.D
【详解】本题主要考查算法流程图。菱形是条件判断框,平行四边形是数据输入/输出框,圆角矩形是开始/结束框,矩形是数据处理框。故用流程图表示条件“A>B”是否成立,要用到菱形框,故本题选D选项。
9.D
【详解】本题考查的是Python算术运算符。**运算等级大于/、*,故10/4**0.5*2=10/2*2=5.0*2=10.0。故本题应选D。
10.C
【详解】本题考查的是流程图识读。根据流程图可知只要a,b任意一个变量的值大于等于m循环就结束,关键就看哪一个变量优先大于m,则c的值就等于那个。a=3,b=4,m=20进行累加的时候先执行a=a+b再执行b=a+b,具体累加情况如下,得c=29。
m
n
a<m
b<m
c
20
3
3
4
7
11
18
29
29
故选:C。
11.A
【详解】本题主要考查Python表达式的运算。int(max("6","56","100"))=int("6")=6,len(["123456"])=1,str(6)= "6", abs(float(-6))=6.0,故本题选A选项。
12.B
【详解】本题考查的是计算机解决问题的一般过程。计算机解题的一般过程分4步:①需求分析;②设计算法;③编写程序;④上机调试。故应选B。
13.C
【详解】本题考查的是pandas数据处理。选项A,对s2中数据升序排序,存储到s1中s1[0]值为166;选项B,降序排序,但输出结果为“s02 180”;选项C,输出最大值为180;选项D,输出所有值。故选C。
14.C
【详解】本题主要考查计算机解决问题。计算机解决问题的步骤是:分析问题→设计算法→编写程序→调试运行调试。选择一种计算机语言工具实现算法,这个阶段属于编写程序,故本题选C选项。
15.C
【详解】本题考查的是Python自定义函数及循环语句。由print(factorial(4))可知,传递给自定义函数的参数是4,故返回值s=1*2*3*4=24。故本题应选C。
16.时间复杂度
【详解】本题考查算法相关内容。算法的时间复杂度是衡量算法执行效率的指标,表示随着输入规模增大,算法执行所需的时间增长率,通常使用大O表示法来描述时间复杂度,它指出算法执行时间的上界,时间复杂度分析有助于评估和比较不同算法的效率,并选择最优算法来解决特定问题。故本题答案是:时间复杂度。
17. i//100 a*a*a+b*b*b+c*c*c:或a**3+b**3+c**3:
【详解】本题主要考查Python程序的执行。水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身,第一空是取百位数,即a=i//100,第二空是判断是不是水仙花数即i==a*a*a+b*b*b+c*c*c:,故填a*a*a+b*b*b+c*c*c:。
18. A D
【详解】本题主要考查Python表达式。①分析题干可知,Xm键值为0表示取消报名,键值为1表示报名,Xm["1000米"]=0表示取消小明的1000米报名,选A选项。②not (join1 and join2)等价于 not join1 or not join2表示join1和join2至少有一个不参加,故本题选D选项。
19.o
【详解】本题考查的是Python数据类型。Python中字符串类型数据索引从0开始,故name='Tommy',print(name[1])输出的字符为o。
20.编译
【详解】本题考查计算机编程。在计算机编程中,编译是将使用高级编程语言编写的程序源代码,通过编译器进行分析、转换和优化,生成计算机能够直接理解和执行的机器语言指令序列的过程。编译过程包括词法分析、语法分析、语义分析、代码优化和代码生成等步骤,最终生成可执行的目标代码。故答案为:编译。
21.正确
【详解】本题考查Python基础。
global关键字的作用是告诉Python在函数内部使用全局变量而不是局部变量。如果在函数内部使用global关键字来声明变量,而在函数外部没有声明相同的变量,Python会创建一个新的全局变量。故正确。
22.错误
【详解】本题考查的是列表。列表的序号是从0开始编号的,所以a[2]+a[4]是3+5=8。故题干描述错误。
23.错误
【详解】本题主要考查Python注释语句。在Python程序中,注释语句可以增强程序的可读性,写注释非常有必要。题干说法错误。
24.正确
【详解】本题考查程序设计注释相关内容。注释的作用是为了让自己或他人更快地了解程序作者的思路和意图,提高代码的可读性,同时在多人协同开发时,也可以提高开发效率。说法正确。
25. 20241293或“20241293” getmax() t+=1或t=t+1或其余等价答案 flag[i]==False或其余等价答案
【详解】本题考查Python综合应用。
(1)从上图可知,投票人序号是20241293投票项超过5项,因此数据无效,作为废票。故答案为:20241293或“20241293”。
(2)我们调用了自定义的getmax()函数,该函数的作用是获取投票数最高的新闻索引。故答案为:getmax()。
(3)自定义函数check(tp)是用来检查投票数据是否符合规则的。在该函数中,我们需要遍历投票数据,如果某项投票为有效投票(即投票为"1"),则计数器t自增。如果最后计数器t的值超过了5,则返回False表示投票作废。故答案为:t+=1或t=t+1或其余等价答案。
(4)在getmax()函数中,我们需要找到投票数最高的新闻索引。首先,我们需要判断当前新闻是否已经被选出,即flag[i]是否为False。然后,我们还需要判断当前新闻的投票数是否大于当前最大值。故答案为:flag[i]==False。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$