内容正文:
2.3 程序设计基本知识
一、选择题
1.下列Python表达式中,变量a的值为True的是( )
A.a=1>2 B.a,b=False,True
C.a=max([1,2,3])==3 D.a=TrueandnotTrue
2.定义如下函数:
def f(s,n):
print(s[n-1],end=' ')
if n==1:
return
else:
return f(s,n-1)
s='abcd'
f(s,4)
程序运行结果是( )
A.a b c B.a b c d C.d c b D.d c b a
3.正序读和逆序读值相等的就是回文字符串。例如s='ABCCBA'即为回文字符串,若s='ABCCBB'则不是回文字符串。
s=input()
st=[]
for i in range(len(s)//2):
st.append(s[i])
p=len(s)//2+len(s)%2
for i in range(p,len(s)):
if len(st)==0:
print(s+'是回文字符串')
else:
print(s+'不是回文字符串')
要实现对回文字符串的判断,补充加框处代码段,下列选项中正确的是( )
A.
if s[i]!=st.pop():
break
B.
if s[i]!=st.pop():
st.append(i)
break
C.
if s[i]!=st.pop():
st.append(st.pop())
break
D.
if s[i]==st[-1]:
break
st.pop()
A.A B.B C.C D.D
4.下列Python程序段的功能是:输入两个整数,通过计算,最终输出较大整数除以较小整数的余数。
a,b=eval(input("请输入两个整数:"))
if a<b:
a,b=b,a
while a>=b:
print(a)
则程序段划线处应填入的语句为( )
A.a=a+b B.a=a-b C.b=a%b D.a=a∥b
5.有如下Python程序段:
a=[6,9,4,10,5,3,7,2]
n=len(a)
m=int(input('请输入m: '))
ans=0
for i in range(n):
if a[i]<m:
m=a[i]
ans+=m
print(ans)
执行该程序段时,输入m的值为5,则输出的结果为( )
A.9 B.16 C.30 D.33
6.已知a=3,b=4,c=5,则下列Python表达式的结果与其他三项不同的是( )
A.a>b or b<c and c>a B.not a%2==b%2
C.int(a*c//b)!=a D.c>=a<=b
7.居民身份证号码由十八位数字组成。例如“330486200501060018”,其中有八位数字代表出生日期(“20050106”)。现有某身份证号码字符串存储在变量t中,要求提取出生日期存储于变量day中,则下列选项中正确的是( )
A.day=t[6:13] B.day=t[7:14] C.day=t[6:14] D.day=t[7:15]
8.某Python程序如下:
import random
lis, ans="ABCDEF",""
i=0
while i<6:
x=random. randint(1, 6)
if i%2!=0:
ans+=lis[x//3]
elif x%2==0:
ans=lis[i+1]+ans
i+=1
执行上述程序段后,变量ans的值可能的是( )
A."FDBBCB" B."BDCBA" C."CDAB" D."BDC"
9.以下属于关系运算符的是( )
A./= B. == C.** D.%
10.现有包含数字0~9的字符串s,编写程序去除s中开头和结尾的连续0并输出结果,例如s=“00102000”,输出“102”。
s = input()
L = R = -1
for i in range(len(s)):
if s[i] != "0":
if ① :
L = i
R = i
print(s[② ])
则划线①②处的代码应为( )
A.①L != -1 ②L:R B.①L == -1 ②L:R C.①L != -1 ②L:R+1 D.①L == -1 ②L:R+1
11.字符串类型在Python中经常用到,以下关于字符串的表述不正确的是( )
A.Python中只有“字符串”而无“字符”类型 B.Python中""和" "是同一个字符串
C.Python中内置了许多字符串处理方法 D.字符串可以用“+”运算符进行连接运算
12.用Python程序编写程序代码如下,其中第三行语句“a=a+4”执行的次数是( )
1 a=76
2 while a<=90:
3 a=a+4
4 print(a)
A.1 B.2 C.3 D.4
13.从离地500米的空中自由落下一个小球,求从开始落下的时刻起,小球在最后1秒下落的位移是多少(重力加速度g以9.8米/秒)?为解决这一问题编写的Python程序如下所示,下列说法错误的是( )
A.该程序代码中使用了库,库的名称是math
B.该程序代码中使用了变量hh,它的数据类型是整型
C.第4行中“math.sqrt(2*h/g)”是求出2*h/g的平方根
D.该程序使用了物理公式计算空中自由落下小球的位移,采用的算法是解析算法
14.运行如下所示Python程序段所得到的结果是( )
A.1 B.2 C.3 D.4
15.下列不属于赋值语句的是( )
A.a==5 B.x=15 C.t=25%5 D.s=a+b
16.使用如下Python语句来定义数组b:b=[i*2 for i in range(10)]。则执行语句print(b[5]),输出的结果是( )
A.0 B.8 C.10 D.12
17.下列python语句中,不能实现2个整型变量a、b的值进行交换的是( )
A.a,b=b,a B.t=a;a=b;b=t
C.a=a* b;b=a/b;a=a/b D.a=a+b;b=a-b;a=a-b
二、填空题
18.在Python中, 可以用来实现代码的复用。
19.执行如下程序,写出运行结果。
a=input()
b=input()
c=int(a+b)
d=int(a)+int(b)
print(c,d)
键盘依次输入33和44,则输出结果为 。
20.在程序的开始位置输入语句 numpy,即可导入Numpy模块。
21.编程语言中的 是一种数据类型,用于存储和操作文本信息。
22.Python中读写文本文件的方法,其中打开用 把外存储器里的文本文件(.txt)打开;存储用 将内存中的数据存储到外存储器的文件中;关闭文件时一定要用 关闭文件。
23.Python语言中,当a=4,b=2时,not(a==b)的值是 。
三、判断题
24.如果在函数中有语句 return 3,那么该函数一定会返回整数3。( )
25.在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。( )
26.已知x = 3,那么执行语句x+=6之后,x的内存地址不变。( )
27.在 Python 语言中,条件表达式使用“=”判断两个操作数是否相等。( )
28.NAME、name、Name、NaMe是不同的变量。( )
四、操作题
29.疫情防控期间,小明统计了本校高二年级学生疫苗接种及核酸检测信息,为了分析学生的健康情况,设计如下程序:
A
B
C
D
E
F
G
H
I
高二年级学生疫苗接种及核酸检测信息
年级
班级
学号
姓名
接种1针
接种2针
接种3针
接种数
核酸检测结果
高一
101
2
王伟
是
是
是
3
阴性
高一
102
3
成威
是
是
否
2
阴性
高一
101
1
徐洁
是
是
否
2
阴性
高二
210
1
贺杉杉
是
是
是
3
阴性
高三
307
12
张敏
是
是
是
3
阴性
高三
301
4
许雷
是
是
是
3
阴性
高三
301
9
赵——
是
是
是
3
阴性
高三
308
22
李辉
是
是
是
3
阴性
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("data.xlsx")
g=df.sort_values("班级") #将每个年级的班级进行升序排序
result=g[① ].count() #统计未接种第三针的人数
#绘制柱形图
plt.rcParams['font.sans-serif']=['SimHei'] #解决中文不能在图片中显示的问题
p=② #统计每个年级的平均接种数
p=plt.③ (p.年级,p.接种数,label="接种数") #绘制每个年级的接种数的柱形图
plt.title("各年级疫苗平均接种数")
plt.xlabel("年级")
plt.ylabel("接种数")
plt.legend()
plt.show()
(1)请在画线处填入合适的代码。
(2)上表中的数据为 (单选,填字母:A.结构化/B.非结构化/C.半结构化)数据。
30.用Python编辑器打开“Y:\382”文件夹中的文件“tk1.py”,进行以下操作并保存。
(1)删除<1>、<2>、<3>,在该处填写代码,完善程序,实现“求1~30所有偶数的和”(请不要更改、删除其他代码);
(2)编写完成后保存文件并关闭应用软件。
#求1~30所有偶数的和,在<1>、<2>、<3>处填入正确代码,不要修改其它代码
s = <1> #删除语句中的"<1>",并在此处填入正确代码
for i in range(2,<2> ,2): #删除语句中的"<2>",并在此处填入正确代码
s = s + <3> #删除语句中的"<3>",并在此处填入正确代码
print ("1~30所有偶数的和为",s)
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查Python表达式相关内容。A选项中1>2为False,a的值为False;B选项中a赋值为False;C选项中a值为[1,2,3]中的最大值3,a=max([1,2,3])==3结果为True;D选项中True and not True为False。故本题答案是C选项。
2.D
【详解】本题考查Python基础。
调用f(s,4),故先输出s[3],故字符d;调用f(s,3),故输出s[2],故字符c;调用f(s,2),故输出s[1],故输出字符b;调用f(s,1),故输出s[0],故字符a;故正确答案为:选项D。
3.B
【详解】本题考查程序分析。
st.pop()的作用是弹出并返回列表st中的最后一个元素,A选项中当s='ABCCBB',循环最后一次时,s[len(s)-1]='B',st.pop()返回值是'A',这时虽然执行了break,但st为空列表,因此会输出“'ABCCBB'是回文字符串”的错误结果;C选项,if s[i]!=st.pop():中的 st.pop()和st.append(st.pop())中的st.pop()并不是st中的同一个元素;D选项,"if s[i]==st[-1]:"应该改成"if s[i]!=st[-1]:"。故正确答案为:选项B。
4.B
【详解】本题考查Python基础。
本题程序的功能是实现a%b的结果,其算法是让a不断地减去b,直到a<b,此时a的值即为它们相除后的余数,因此正确答案为:选项B。
5.C
【详解】本题考查Python基础。
本题的功能是将列表中的每个元素与m比较大小,将小的数保存在变量m中,并累加到ans中,因此ans=5+5+4+4+4+3+3+2=30,故正确答案为:选项C。
6.C
【详解】本题考查Python表达式。选项A:a>b为假,b<c and c>a为真。逻辑运算中,or只要有一个为真结果就为真,and只有两个都为真结果才为真。所以表达式的结果为真。选项B:a%2==1,b%2==0,所以a%2==b%2为假,not取反后结果为真。选项C:a*c//b=3*5//4=3,int(a*c//b)=3,a=3,所以int(a*c//b)!=a为假。选项D:c>=a为真,a<=b为真,所以c>=a<=b为真。故答案为:C。
7.C
【详解】本题考查字符串。居民身份证号码由十八位数字组成,其中代表出生日期的八位数字从第7位开始。在Python中,字符串的索引从0开始,切片操作时,左闭右开。所以要提取代表出生日期的八位数字,应使用t[6:14]。故答案为:C。
8.A
【详解】本题考查Python程序。程序中的变量和逻辑解释如下:lis初始化为字符串"ABCDEF"。ans初始化为空字符串,用于存储结果。i初始化为0,作为循环计数器。程序执行过程:进入while循环,条件是i<6。在循环内部,使用random.randint(1,6)随机生成一个整数x,范围是1到6。如果i是奇数(即i%2!=0):将x除以3后取整数部分作为索引,从lis中取对应位置的字符,并将其添加到ans的末尾。否则,如果x是偶数(即x%2==0):将lis[i+1]的字符添加到ans的开头。每次循环结束,将i自增1。根据程序执行的特性和随机数生成的可能性,分析每次循环可能出现的情况,最终得出ans的可能取值。根据以上步骤,可得出ans的值可能为"FDBBCB"。故答案为:A。
9.B
【详解】本题考查的是Python关系运算符。在Python中常见的关系运算符:==、>、<、>=、<=、!=。/=是除法赋值,**是幂乘,%是求余。故选B。
10.D
【详解】本题考查Python程序。划线处①应该是判断L是否等于-1,如果L等于-1,表示当前字符不是0,则将L更新为当前索引值i,故填入L == -1。而划线处②应该输出从L到R位置(包括R)的子字符串,故填L:R+1。故答案为:D。
11.B
【详解】本题考查字符串。“”:是空字符串;“ ”:是空格;二者是不一样的。故答案为:B。
12.D
【详解】本题考查Python程序调试。a初值是76,每次循环a递增4,当循环3次时,此时a=76+4*3=88,再循环一次,a=88+4=92,不再满足循环条件,退出循环,因此第三行语句“a=a+4”执行的次数是4。故选D。
13.B
【详解】本题考查程序设计相关内容。A选项,由“import math”知,该程序代码中使用了库,库的名称是math,选项说法正确。B选项,由h为整型、hx为浮点型,可以推出h-hx的结果为浮点型,所以hh为浮点型,不是整型,选项说法错误。C选项,sqrt()方法返回数字x的平方根,选项说法正确。D选项,解析算法是通过数学公式或逻辑推理来直接计算或推导问题的解,选项说法正确。故本题答案是B选项。
14.B
【详解】本题考查Python程序设计相关内容。分析程序段,调用fm函数,将x值传入,执行函数体,x列表长度为5,len(x)==1不成立,执行:return x[1],返回x[1],即2。故本题答案是B选项。
15.A
【详解】本题考查的是赋值语句。赋值语句格式:变量名=表达式。a==5是关系表达式,判断a与5是否相等。故本题应选A。
16.C
【详解】本题考查Python数据类型。给定的语句b=[i*2 for i in range(10)] 是一个列表推导式,用于生成包含0到9的整数的数组,每个元素都是原整数乘以2。因此,数组b的元素是[0,2,4,6,8,10,12,14,16,18]。执行语句print(b[5])时,索引为5的元素是10。故答案为:C。
17.C
【详解】本题考查Python表达式。/表示除运算,//表示整除运算,因此a=a* b;b=a/b;a=a/b不能实现2个整型变量a、b的值进行交换,故选C。
18.函数和模块
【详解】本题考查Python函数的描述。在Python中,函数和模块是实现代码复用的主要方式。函数通过定义可重复使用的代码块来实现复用,而模块通过将相关的函数、类和变量组织在一起,方便在不同的程序中导入和使用。
19.3344 77
【详解】本题考查Python基础。input函数接收字符型数据,故a+b的结果是拼接字符串。如果数值型相加,故先转换成整型数据。键盘依次输入33和44,故结果为3344和77。
20.import
【详解】本题考查模块。在Python中,要使用某个模块,需要使用import语句来导入。Numpy是Python中的一个重要的科学计算库,要使用它,就在程序开始位置输入import numpy来导入。故答案为:import。
21.字符串
【详解】本题考查编程语言。编程语言中的字符串(String)是一种数据类型,用于存储和操作文本信息。字符串可以包含字母、数字、符号和其他字符。故正确答案为:字符串。
22. open函数 write方法 close方法
【详解】本题考查Python相关知识。Python中读写文本文件的方法,其中打开用open函数把外存储器里的文本文件(.txt)打开;存储用write方法将内存中的数据存储到外存储器的文件中;关闭文件时一定要用close方法关闭文件。
23.True
【详解】本题考查的是Python表达式。当a=4,b=2时,a==b值为:False,not取反,故not(a==b)的值是True。
24.错误
【详解】本题考查Python基础。
题目中的说法过于绝对。在Python中,如果在这个 return 语句之前遇到另一个 return 语句,那么这个函数不一定会返回整数3。故错误。
25.正确
【详解】本题考查Python基础。
在Python中,定义函数时参数名字前面带有两个*符号(例如,**kwargs)确实表示该函数可以接受任意数量的关键字参数(keyword arguments),并将这些参数存储在一个字典中。这种参数被称为可变关键字参数。这种机制在编写需要高度灵活性的函数时非常有用,因为它允许调用者传递任意数量的关键字参数,而函数内部可以以一种统一的方式处理这些参数。故正确。
26.错误
【详解】本题考查Python基础。在Python中,变量(如x)实际上是对对象的引用(或指针),而不是对象本身。当你执行x = 3时,x是对整数对象3的引用。整数对象在Python中是不可变的(immutable),这意味着一旦创建,其值就不能改变。然而,当你执行x += 6时,这实际上是一个简写形式,等同于x = x + 6。在这个操作中,x + 6首先会计算出一个新的整数对象(在这个例子中是9),然后x这个变量名会被重新绑定到这个新的整数对象上,这时地址会发生变化。故错误。
27.错误
【详解】本题考查Python关系表达式。=是赋值号,==表示相等,故表述错误。
28.正确
【详解】本题考查Python变量的描述。Python变量区分字母的大小写,故表述正确。
29. g.接种3针=='否' df.groupby('年级')['接种数'].mean() bar A
【详解】本题考查Python程序设计相关内容。分析程序段,推知:
(1)①处,选取列元素的方法:对象名.列名(或者对象名["列名"]),未接种第三针,可以通过g.接种3针=='否'表达式判断,故此处答案是:g.接种3针=='否'。②处,统计每个年级的平均接种数需要先按“年级”分组,再根据“接种数”计算平均值,故此处答案是:df.groupby('年级')['接种数'].mean()。③处,plt.bar()函数是Matplotlib库中用于绘制垂直条形图的函数,在坐标轴上以垂直的方式表示不同类别的数据,并可以通过调整参数来自定义图表的外观,故此处答案是:bar。
(2)结构化数据是一种以特定格式组织和存储的数据,这种格式可以很容易地被计算机程序理解和处理,并且可以使用表格、电子表格或数据库来表示。非结构化数据是一种不具有特定格式或结构的数据,它的特点通常是缺乏组织,可以包括文本、图像、音频和视频文件、社交媒体帖子、电子邮件和其他数据源,非结构化数据通常由人类创建,很难使用传统的数据分析工具进行处理和分析。半结构化数据是一种具有一定结构但不完全适合结构化或非结构化数据类别的数据类型,这些数据具有一定程度的组织,但缺乏结构化数据的严格和预定义模式。表格中的数据格式与长度规范统一,属于结构化数据。故本题答案是:A。
30. 0 31 i
【详解】本题考查Python程序设计。初始化变量s为0,用于存储所有偶数的和。故①处代码为:0。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函数,实现“求1~30所有偶数的和”,故②处代码为:31。在循环中,将当前的偶数i加到s上。故③处代码为:i。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$