内容正文:
4.1程序设计语言的基础知识2024—2025学年高中信息技术粤教版(2019)必修1
一、选择题
1.将 micro:bit 板与计算机相连,并通过 BXY Python Editor 软件将以下程序“烧录”进板,并查看输出结果。
#micro:bit
from microbit import *
import random
while True:
display.scroll(str(random.randint(1,5)))
sleep(5000)
以下有关上述操作的描述正确的是 ( )
A.显示器中隔 5 分钟输出一次随机数
B.在 BXY Python Editor 编辑器里不断随机显示“1-4”四个数字中的其中一个
C.在 micro:bit 板的 LED 上滚动随机显示“1-5”五个数字中的其中一个
D.不可以将从串口获取的数据保存到文本文件中
2.在python语言中,下列运算符优先级别最低的是( )
A.= B.% C.* D.!=
3.元旦活动,为了提高全班同学的参与感,班长决定在节目表演间隙加入游戏环节,参与游戏的同学名单由随机点名小程序随机生成,如图,是班长设计的随机点名小程序的算法。结合材料内容,完成小题。
names=存储全班学生的名字
f='yes'
while(f≠'no') #当输入'no'时,点名结束
n=统计当前学生总人数
i=随机生成一个学生序号
print(显示:序号为i的学生名字)
names. remove(将被点名的学生从names中移除)
if n=1. #当前总人数是否为1
print(显示:所有同学均已全部参与!)
break #跳出循环
print(显示:是否继续?输入no退出!)
f=input() #用户输入“yes”或“no”
print(显示:点名结束)
由于Python语言的简洁性、易读性以及可扩展性,已成为最受欢迎的编程语言。在下列运行环境中可以编辑、调试Python语言的是( )
①Visual C++ ②Jupyter Notebook ③PyCharm ④IDLE
A.①②③ B.①②④ C.①③④ D.②③④
4.下列Python表达式的值等于98的是( )
A.abs(-99)+1 B.ord("b") C.len("97")+1 D.chr(98)
5.函数range(5)可以生成( )结果。
A.5 B.[1,2,3,4,5] C.[0,1,2,3,4] D.[0,1,2,3,4, 5]
6.Python表达式a==b中“==”表示的意思是( )
A.交换“==”左右两边变量的值 B.把“==”左边变量的值赋值给右边变量
C.把“==”右边变量的值赋值给左边变量 D.判断“==”左右两边的值是否相等
7.以下循环语句的循环体执行次数为10次的是( )
A.for i in range(10)
B.for i in range(1,10)
C.for i in range(2,20,2)
D.for i in range(10,21)
8.某次世界杯数据存在文件“sjb.xlsx”中,部分数据如图所示。编写Python程序,统计同个组别中,进球数最多的 5 个球队,并排序。
import pandas as pd
df=pd.read_excel("sjb.xlsx")
print(df_s[0:5])
方框中代码由下列语句中的部分语句组成:
①df_g=df.groupby('组别',as_index=False).max()
②df_g=df_s.groupby('进球',as_index=False).max()
③df_s=df.sort_values('进球',ascending=True)
④df_s=df_g.sort_values('进球',ascending=False)
要实现上述功能,下列选项正确的是( )
A.①④ B.①③ C.②④ D.③②
9.编写Python程序,模拟“石头剪刀布”的游戏,实现电脑随机输出“石头”、“剪刀”、“布”。函数功能表如下:
名称
含义
random. random()
随机生成一个[0,1)范围内的实数
random. randint(a, b)
随机生成一个[a,b]范围内的整数
random. sample(seq, k)
从序列中随机挑选k个元素
random. shuffle(seq)
将序列的所有元素随机排序
下列代码段中能够实现该功能的是( )
①
②
import random
a={0:"石头",1:"剪刀",2:"布"}
b=int(random.random()*2)
print(a[b])
import random
a={0:"石头",1:"剪刀",2:"布"}
b=random. randint(0,2)
print(a[b])
③
④
import random
a=["石头","剪刀","布"]
b=random. sample(a,1)
print(b[1])
import random
a=["石头","剪刀","布"]
random. shuffle(a)
print(a[1])
A.①③ B.①④ C.②③ D.②④
10.有如下Python程序段:
a=[5,14,3,12,6,7,3,9,20,1]
l=min(a);r=max(a)
#min 取列表最小值,max 取列表最大值
maxi=3
while l<=r:
mid=(l+r)//2
cnt=0
for i in a:
if mid < i:
cnt+=1
if cnt < maxi:
r=mid-1
else:
l=mid+1
上述程序段执行结束,下列说法正确的是:( )
A.a列表中第3大的数r B.cnt的值为2
C.l的值为12 D.mid=(l+r)//2代码执行3次
11.下列表达式结果为True的是( )
A.False or True and False B.False or True C.True and False D.False and False
12.下列哪个选项不是Python中的比较运算符( )
A.== B.!= C.>= D.<+
13.在Python程序设计语言中,表达式3+5*2-2**3%5的结果为( )
A.10 B.5 C.3 D.0
14.某兴趣小组调查研究近年来气温变化情况时,需要统计并计算二月份的平均气温,用于存储平均气温的变量数据类型最合理的是( )
A.布尔型 B.整型 C.浮点型 D.复数型
15.为了给变量 a、b、c赋初值1,合法的Python赋值语句是( )
A.a=b=c=1 B.a,b,c=1,2,3
C.a=1; b=1; c=1 D.a=1,b=1,c=1
16.Python是一种( )
A.编译型语言 B.面向过程的语言 C.汇编语言 D.解释型语言
17.小敏制作了一个简单的Flask程序,编写路由和视图函数如下所示:
from flask import Flask #导入Flask框架模块
app= Flask(_name_) #创建应用实例
@app.route(" ") #路由
def hello (): #视图函数
return "Hello,World"
执行程序后,在浏览器中输入网址127.0.0.1:5000/hello,网页显示的内容为"Hello,World",划线处应填入的代码为( )
A./ B.hello C./hello D.Hello,World
18.有如下Python程序段:
a=[27,5,25,36,78]
f=[False]*5
i=0
while i<4 and not f[i]:
for j in range(4,i,-1):
if a[j]<a[j-1]:
a[j],a[j-1]=a[j-1],a[j]
f[i]=True
i+=1
执行该程序段后,数组f中值为True的元素个数是( )
A.1 B.2 C.3 D.4
19.Pyhon中下列哪个变量命名是非法的( )
A.8a B.a8 C. a8 D. 8a
20.小陈用某种语言编写了一段计算网络传输时间的代码,如配图所示。以下叙述正确的是( )
A.这是让计算机执行某个操作的命令,是程序的源代码
B.这是让计算机执行某个操作的命令,是指令的源代码
C.这是为解决某一问题而设计的指令序列,是程序的源代码
D.这是为解决某一问题而设计的程序序列,是指令的源代码
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题主要考查Python程序的调试。分析程序可知,显示器中隔 5 秒钟输出一次随机数;在 micro:bit 板的 LED 上滚动随机显示“1-5”五个数字中的其中一个;可以将从串口获取的数据保存到文本文件中,故本题选C选项。
2.A
【详解】本题主要考查Python运算符优先级。*、/、//、%优先级相同且优先级高于==、!=、>、>=、<、<= 。=的优先级别最低,故本题选A选项。
3.D
【详解】本题主要考查Python语言的描述。Jupyter Notebook 、PyCharm 、IDLE可以编辑、调试Python语言。Visual C++ 可以编辑、调试C/C++语言,故本题选D选项。
4.B
【详解】本题主要考查Python表达式的运算。abs(-99)+1=99+1=100,ord("b")=98,len("97")+1=2+1=3,chr(98)="b",故本题选B选项。
5.C
【详解】本题主要考查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]结果,故本题选C选项。
6.D
【详解】本题主要考查Python关系表达式。Python表达式a==b中“==”表示的意思是判断“==”左右两边的值是否相等,故本题选D选项。
7.A
【详解】本题主要考查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)。for i in range(10)执行次数为10次,选项B、C、D的执行次数分别是9、9、11,故本题选A选项。
8.A
【详解】本题考查Python程序。首先,我们需要按组别对数据进行分组,并找到每组中进球数的最大值。选项①使用df.groupby('组别',as_index=False).max()可以正确地按组别进行分组并获取最大值,这一步骤是关键且正确的。接下来,我们需要对获取到的结果按照进球数进行排序,以找到进球数最多的前5个球队。选项④df_g.sort_values('进球',ascending=False)能够实现对分组后的结果按进球数降序排序,从而得到我们想要的结果。选项②按“进球”分组是错误的方向,我们要按组别来分析。选项③的排序是升序排序,不符合要求我们的是进球数最多的情况,应该是降序排序。故答案为:A。
9.D
【详解】本题主要考查Python随机函数。random. random()随机生成一个[0,1)范围内的实数,b=int(random.random()*2),则b可以取0和1;random. randint(a, b)随机生成一个[a,b]范围内的整数,b=random. randint(0,2),则b可以取0、1、2,故②可行;random. sample(seq, k)从序列中随机挑选k个元素,b=random. sample(a,1),则b中只有1个元素,b[1]会存在溢出的错误;random. shuffle(seq)将序列的所有元素随机排序,random. shuffle(a),a[1]是存在的,故④可行,故本题选D选项。
10.C
【详解】本题主要考查Python程序的执行与调试。l=1,r=20,maxi=3
第一遍循环,mid=10,cnt=3,l=mid+1=11;
第二遍循环,mid=15,cnt=1,r=mid-1=14;
第三遍循环,mid=12,cnt=2,r=mid-1=11;
第四遍循环,mid=11,cnt=3,l=mid+1=12,循环结束,故l的值为12,故本题选C选项。
11.B
【详解】本题考查的是逻辑表达式。And(与)运算,只有两边同时成立,其值才为 True。Or(或)运算,只有两边同时不成立,其值才为 False。False or True and False=False,False or True=True,True and False=False,False and False= False。故选项B正确。
12.D
【详解】本题考查Python运算符。在Python中,常见的比较运算符有==(等于)、!=(不等于)、>=(大于等于)等。而<+并不是Python中的合法比较运算符。故答案为:D。
13.A
【详解】本题主要考查Python表达式的运算。表达式3+5*2-2**3%5=3+10-8%5=13-3=10,故本题选A选项。
14.C
【详解】本题主要考查Python数据类型。气温数据会存在小数,故用于存储平均气温的变量数据类型最合理的是浮点型,故本题选C选项。
15.AC
【详解】本题考查Python赋值语句。为了给变量 a、b、c赋初值1,选项A、C均正确,选项B,给a、b、c分别赋值1、2、3,不符合题意;选项D应使用半角分号分隔。故选AC。
16.D
【详解】本题主要考查Python语言。Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节,故本题选D选项。
17.C
【详解】本题主要考查Python程序Flask框架。“@app.route()”和“hello()”是一对路由和视图函数,而路由又与URL相关联,当用户访问127.0.0.1:5000/hello时,视图函数hello( )的代码就会被运行,网页显示内容Hello,World,则路由应为/hello,故本题选C选项。
18.B
【详解】本题考查Python程序。这个程序段对数组 a 执行了一种冒泡排序的变种。它使用了一个布尔数组 f 来表示每次内循环是否有交换操作,如果没有则为 False,有则置为 True。在外部的 while 循环中,i 从 0 开始递增,f[i] 表示第 i 次循环中是否发生了交换。只要 i 小于 4 并且 f[i] 为 False,就会继续循环。内部的 for 循环执行了冒泡排序的比较和交换操作,然后根据是否有交换操作来更新 f[i] 的值。执行程序后,对数组 a 进行排序。程序中的外部循环 i 执行了 2 次,因为在第二次循环中不再有交换操作,所以 f[0] 和 f[1] 都为 True。这表示在第一个和第二次循环中都发生了交换。因此,数组 f 中值为 True 的元素个数为 2,所以答案是 2。故答案为B选项。
19.A
【详解】本题考查的知识点是Python变量命名。Python程序设计语言规定变量名由字母(A~Z,a~z)、数字(0~9)、下划线组成,并且其第一个字符必须是字母或下划线,而不能是数字,如s1,k,num,pai等。在标识符中,字母大小写是有区别的,如“value”与“Value”是两个不同的标识符。8a_数字开头非法。故答案为A选项。
20.C
【详解】本题主要考查Python程序的描述。由代码可知,这是为解决某一问题而设计的指令序列,是程序的源代码,故本题选C选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$