内容正文:
3.2 Python语言程序设计
一、选择题
1.Python中,用于求列表长度的函数是( )
A.size( ) B.len ( ) C.length( ) D.str( )
2.python文件的扩展名是( )
A.py B.pye C.vbp D.pyr
3.在Python中,bin()函数将十进制数转二进制数,int(numb,r)函数将r进制的整数num转换为十进制,oct()函数十进制数转为八进制数,hex()函数十进制数转十六进制数,下列结果错误的是( )
A. B.
C. D.
4.Python表达式abs(2**3-10)+len('txyz2021')的值为( )
A.12 B.10 C.8 D.6
5.有如下Python程序段:
n=2
s=0
while n<10:
n=n+2
s=s+n
print(s)
该程序段运行后,s的值是( )
A.16 B.20 C.23 D.28
6.某对分查找算法的 Python 程序段如下:
a = [8, 17, 24, 30, 36, 40, 55, 58, 61, 66]
L, R = 0, 9
s = []
key = int(input("请输入要查找的数据:"))
while L <= R:
m = (L + R + 1) // 2
if a[m] == key:
break
elif a[m] > key:
R = m - 1
else:
L = m + 1
s.append(a[m])
print(s)
执行该程序段,当输入的值为30时,程序输出的结果是
A.[40, 24] B.[40, 24, 36] C.[24, 36] D.[36, 17, 24]
7.判断a是否在区间[m,n]上,可以使用的条件表达式( )
①m<=a<=n ②a>=m and a<=n ③a>=m or a<=n ④not(a<m or a>n)
A.①②③ B.②③④
C.①③④ D.①②④
8.以下程序共执行了( )次循环。
for i in range(2,10,2):
print(i)
A.5 B.10 C.4 D.0
9.整型变量a中存放了一个两位数,要将这个两位数的个位数字和十位数字交换位置,例如,15变成51,正确的表达式是( )
A.a%10*10+a//10 B.a%10//10+a//10 C.a/10%10+a//10 D.a%10*10+a%10
10.某二分查找算法的 python 程序段如下, 运行该段代码后, 输出的结果不可能是( )
import random
a = [10,20,30,40,50,60,70,80]
key = random.choice(a); i,j = 0,len(a)-1 ; s = ""
while i<=j:
m = (i+j)//2
if key == a[m]:
s = s+"M"; break
elif key < a[m]:
j = m-1; s = s+"L"
else:
i = m+1; s = s+"R"
print(s)
A.LLM B.LRM C.RRRM D.RRLM
11.列表是Python中常用的序列类型,和变量样是可变的。以下关于列表的描述正确的是( )
A.列表中的元素索引不能为负值 B.列表中元素的值可以修改
C.列表中的元素不能是列表类型 D.列表中元素的数据类型必须是一样的
12.下列可以作为Python变量名的是( )
A."d3" B.6sd C.True D.stf_1
13.利用冗余压缩的方法对字符串进行压缩,例如字符串“aabbbcccd”,压缩后为“a2b3c3d1”。实现上述压缩功能的Python程序如下:
s=input("请输入长度大于1的待压缩字符串:")
ys=s[0]; k=1
for i in range(1,len(s)):
print("压缩后的结果为:",ys)
在程序方框处应填入的代码是( )
A. B. C. D.
A.A B.B C.C D.D
14.有如下python程序段:
def f(m):
a=m%10
b=m//10%10
c=m//100
if c**3+b**3+a**3==m:
return "YES"
else:
return “NO”
m=int(input())
print(f(m))
执行该程序段后,若输出结果为“YES”,则输入变量m值可能为( )
A.121 B.134 C.153 D.142
15.下列选项中,属于Python输出函数的是( )。
A.random() B.print() C.sqrt() D.input()
16.下列程序段执行后,结果与其他三项不同的是( )
A. B. C. D.
17.有如下程序段:
import random
a = [0] * 6
for i in range(0,6):
a[i] = random.randint(1,5) * 2 + 1
i = 0
while i < 5:
if a[i] > a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
else:
a[i] += 1
i += 1
print(a)
执行以上程序后,列表变量 a 可能的是( )
A.[1, 6, 10, 10, 10, 9] B.[3, 8, 7, 13, 3, 9]
C.[5, 10, 7, 7, 12, 11] D.[5, 10, 10, 7, 10, 8]
二、填空题
18.在程序设计中字符串是一种表示文本的数据类型, Python语言中的字符使用单引号、 表示。
19.Python 语言使用 语句导入模块。
20.小申同学得到的关于共享单车使用情况的数据文件中,发现有如下图中方框中的数据属于 ① 值,可以对此类数据进行处理可用pandas库中的 ② 函数。其语句可以为:df.②(subset=[‘bike_id’,’datetime’],keep=’first’,inplace= ③ )。图中圈出数据记录中有 ④ 值,识别该值的方法是使用 ⑤ 函数,若返回值是Tru13÷500e,则说明此处有缺失值,若要删除缺失值记录可采用的方法是 ⑥ 函数。
A.drop_ duplicates ( ) B.dropna ( ) C.isnull( ) D.notnull ( )E.重复值 F.缺失值 G.异常值 H.True I.False
21.创建GUI应用程序的方法:先 。如“from tkinter import *” 导入tkinter模块。然后运用相应代码 。如: 、 、 、 。
22.根据以下程序代码完成下列小题。
程序描述: 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。
程序要求输入一个正整数(不为1),将经过处理得到1的过程输出来。代码如下:
x=int(input('输入一个正整数:'))
while ①
if ②
x=x/2
③
el se:
④
③
if x==1: ⑤
①处的语句是( ), ②处的语句是( ),③处的语句是( ),④处的语句是( ),⑤处的语句是( )。
(1)A.x>1 B.x>2 C. x!=1: D.x!=0:
(2)A.x%3=0: B.x%2=0: C. x%3==0: D.x%2==0:
(3)A.print(‘x/2’) B.print(‘x’) C. print(x) D.print(x/2)
(4)A.x= x/2 B.x= x/2+1 C. x=x*3+1 D.x=3x+1
(5)A.pass B.exit C. continue D.break
23. 模块用于科学计算(随机数、数组运算等); 模块基于numpy实现,主要用于数据的处理和分析; 用于绘图库。
三、判断题
24.每种高级程序设计语言定义的数据类型都相同。( )
25.在Python语言中,表达式(2>4)and(8>9)的结果是True。( )
26.“num”和“NUM”会被Python解释器视为相同的变量。( )
27.计算机程序能重复使用。( )
28.在Python3.x语言中,input()函数的返回值类型是字符串。( )
四、操作题
29.利用for循环,分别计算1--100中奇数的和、偶数的和。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查Python函数相关内容。在Python中,size()函数通常用于获取对象的大小,这个函数并不是Python的内置函数,而是来自第三方库pympler。在Python语言中,可以使用内置的len()函数来获取字符串、元组、列表、字典或任何其他数据类型的长度。Python中的str()函数是一个内置函数,用于将对象转换为字符串。故本题答案是B选项。
2.A
【详解】本题主要考查Python文件。python文件的扩展名是py,故本题选A选项。
3.C
【详解】本题考查Python函数相关内容。bin(218)-->'0b11011010'。ABD选项结果正确,C选项结果错误。故本题答案是C选项。
4.B
【详解】本题主要考查Python表达式的运算。abs()是求绝对值函数,len()函数用于返回字符串或列表等对象的长度,abs(2**3-10)+len('txyz2021')=abs(-2)+8=2+8=10,故本题选B选项。
5.D
【详解】本题主要考查Python程序的执行。分析程序可知,初值n=2,s=0,每次循环n递增2,故s=0+4+6+8+10=28,故本题选D选项。
6.B
【详解】本题主要考查对分查找算法及Python程序实现。当输入的值为30时,第一次循环,m = (L + R + 1) // 2=5,a[5]=40>key,R=m-1=4, s.append(a[m])=[40];第二次循环,m = (L + R + 1) // 2=2,a[2]=24<key,L=m+1=3, s.append(a[m])=[40,24];第三次循环,m = (L + R + 1) // 2=4,a[4]=36>key,R=m-1=3,s.append(a[m])=[40,24,36];第四次循环,m = (L + R + 1) // 2=3,a[3]=30=key,循环结束,故程序输出的结果是[40, 24, 36],故本题选B选项。
7.D
【详解】本题主要考查Python表达式的运算。判断a是否在区间[m,n]上,可以使用的条件表达式有①m<=a<=n②a>=m and a<=m④not(a<m or a>n),故本题选D选项。
8.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)。i依次取2、4、6、8,因此一共执行4次循环,故本题选C选项。
9.A
【详解】本题考查的是Python表达式。对于两位数,通过a%10取个位上的数字,通过a//10取十位上的数字,故要将这个两位数的个位数字和十位数字交换位置,可以个位上的数字乘10加上十位上的数字,即a%10*10+a//10。故选A。
10.D
【详解】本题主要考查二分查找及Python程序实现。random.choice()方法用于返回一个列表、元组或字符串中的随机项。该二叉树如下图,分析程序可知,当遍历左子树执行,s = s+"L";当遍历右子树执行,s = s+"R";当查找到该树时,执行s = s+"M",并退出循环。由图可知,70节点没有左子树,故输出的结果不可能是RRLM,故本题选D选项。
11.B
【详解】本题考查的是列表相关知识。列表中的元素索引可以为负值,负值表示从末尾开始的位置,故选项A说法错误;列表中元素的值可以修改,选项B说法正确;列表中的元素可以是列表类型,选项C说法错误;列表中元素的数据类型可以不一样的,故选项D说法错误。
12.D
【详解】本题考查的是VB变量名。变量名只能是字母(a-z A-Z),数字(0-9),下划线的组合,并且数字不能放在变量名首位,不能使用编程语言的保留字。True是编程语言的保留字不能作变量。故本题应选D。
【点睛】
13.B
【详解】本题考查Python程序设计相关内容。结合题目要求,分析给定4个程序段,可知:B选项能够实现功能要求,正确。A选项,错误之处在于将条件判断(i==len(s)-1)放在了else语句内,无法实现功能要求。CD选项,无法实现功能要求:判条件判断(i!=len(s)-1)与条件判断(s[i]==s[i-1])并无相关性,只有判断完字符是否冗余并执行相应操作后才需要去判断是否到字符串末尾。故本题答案是B选项。
14.C
【详解】本题主要考查Python程序的执行。执行该程序段后,若输出结果为“YES”,说明满足c**3+b**3+a**3==m,结合选项,只有13+53+33=153,给本题选C选项。
15.B
【详解】本题考查的是Python函数。print()是Python输出函数;input()是Python输入函数。故选项B正确。
16.C
【详解】本题考查Python程序执行与调试。分析程序,可知A、B、D实现求sum=a[0]+a[2]+a[4]=1+3+5=9。选项C,只有满足if判断条件,i才递增1,因此当i=1时,会陷入死循环。故选C。
17.C
【详解】本题主要考查Python综合程序调试。a[i] = random.randint(1,5) * 2 + 1,a[i]是随机生成3、5、7、9、11之间的数,分析程序可知,第一次循环,a[0]是3、5、7、9、11之间的数,数组a的其余元素是0,while循环结束后,a[5]的值变为刚生成a[0]的值,其余元素值为0,排除选项D;对于选项B,若生成的a[2]=3,则while循环执行后,a[4]的值应是3+1=4,与选项不符,排除选项B;其次当a[0]<a[1]时,则a[0]递增1,a[1]的值大于2,故a[0]的值一定大于1,排除选项A,故本题选C选项。
18.双引号
【详解】本题主要考查Python数据类型。在程序设计中字符串是一种表示文本的数据类型, Python语言中的字符使用单引号、双引号表示。
19.import 模块名
【详解】本题考查Python模块的导入。Python 语言使用import 模块名语句导入模块,如import math。
20. E A H F C B
【详解】本题主要考查Python程序设计。下图中方框中的数据属于重复值,可以对此类数据进行处理可用pandas库中的drop_ duplicates ( ) 函数(去重函数)。其语句可以为:df.drop_ duplicates ( )(subset=[‘bike_id’,’datetime’],keep=’first’,inplace=False )。图中圈出数据记录中有缺失值,识别该值的方法是使用isnull( )函数(判断是否为空函数),若返回值是Tru13÷500e,则说明此处有缺失值,若要删除缺失值记录可采用的方法是dropna ( )函数。
21. 导入模块 创建交互对象 矩形容器(Frame) 文本框(Entry) 命令按钮(Button) 文本标签(Label)
【详解】本题考查是GUI应用程序的创建。创建GUI应用程序的方法:先导入模块。如“from tkinter import *”导入thinter模块。然后运用相应代码创建交互对象。如:文本框(Entry)、命令按钮(Button)、文本标签(Label)、矩形容器(Frame)。
22. C D C C D
【详解】本题主要考查Python条件分支结构。对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。故①处的循环条件是x不等于1,选C选项。②处的语句是判断x是不是偶数,即x%2==0:。③处的语句是输出x,即print(x),选C选项。④处的语句是,如果x是奇数,则执行x=x*3+1,选C选项。⑤处如果x等于1,则退出循环,语句为break,选D选项。
23. numpy pandas matpoltlib
【详解】本题考查的是Python库相关知识。numpy模块用于科学计算(随机数、数组运算等);pandas模块基于numpy实现,主要用于数据的处理和分析;matpoltlib用于绘图库。
24.错误
【详解】本题主要考查程序设计语言的描述。每种高级程序设计语言定义的数据类型并不都相同,故表述错误。
25.错误
【详解】本题考查Python表达式的运算。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。因此表达式(2>4)and(8>9)的结果是False。故表述错误。
26.错误
【详解】本题考查变量。Python中的变量严格区分大小写。num和NUM不是相同变量,故错误。
27.正确
【详解】本题考查计算机程序相关内容。计算机软件(程序)复用指的是在开发软件时,重复利用已有的代码和模块,以提高开发效率,并减少开发成本。故本题答案是:正确。
28.正确
【详解】本题考查Python函数。input()函数用于从标准输入读取一行,并将其作为字符串返回。无论用户输入什么内容,input()函数返回的值始终是字符串类型。故说法正确。
29.sum1=0
sum2=0
for i in range(1,101):
if i%2==0 :
sum1+=i
else:
sum2+=i
print(sum1,sum2)
【详解】本题主要考查程序设计。可以使用Python程序设计语言实现题干要求,通过if条件分支结构可以实现分别计算奇数的和、偶数的和,具体代码如下:
sum1=0
sum2=0
for i in range(1,101):
if i%2==0 :
sum1+=i
else:
sum2+=i
print(sum1,sum2)
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$