内容正文:
3.2 Python语言程序设计
一、选择题
1.下列代码的输出结果是( )
m=[6,7, "你好!", "123"]
m. insert(2,3)
print(m)
A.[6,7, "你好!", "123", 2, 3] B.[6,3,7, "你好!", "123"] C.[6, 7, "你好!", "123", 3] D.[6,7,3, "你好!", "123"]
2.Python源程序执行的方式是( )
A.编译执行 B.解释执行 C.直接执行 D.边编译边执行
3.有如下Python程序段:
p="Lucky-789"
c=""
for ch in p:
if ch>="A" and ch<="Z":
c+=chr(ord(ch)-ord("A")+ord("a"))
if ch>="a" and ch<="z":
c+=chr((ord(ch)-ord("a")-1)%26 + ord("a"))
else:
c = ch +c
print(c)
程序段运行后,输出的结果是( )
A.987-ltbjx B.ltbjx-789 C.987-Lltbjx D.lLtbjx-789
4.在python中,以下表达式的运算结果为2的是( )
A.16/8 B.16%8 C.16//8 D.16**8
5.有如下Python程序段:
s=input("请输入字符串:")
k=1
ch=s[0]
for i in range(1,len(s)):
if k==0:
ch=s[i]
k=1
else:
if ch==s[i]:
k=k+1
else:
k=k-1
print(ch)
输入以下字符串,并运行程序段后,ch的值不为“K”的是:( )
A.KKSKT B.STTKK C.TKKSK D.TKTTK
6.有如下 python 程序段:
m=int(input())
def dex_oct(m):
if m>=8:
dex_oct(m//8)
print(m%8,end='')
else:
print(m,end='')
dex_oct(m)
运行该程序时,如果输入 15,则输出的结果是( )
A.81 B.71 C.17 D.18
7.编写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.②④
8.下列表达式中,运算结果为True的是( )
A.“A”<“e” B.“32”>“ab” C.3+4y>5-2y D.not(7>=0 and 30>=5)
9.在Python中,执行以下程序后,变量x的值可能范围是( )。
import random
x1=random.random()
x2=random.randint(0,10)
x=x1*x2
print(x)
A.[0,10] B.[0,10) C.[0,100] D.[0,100)
10.以下表达式结果为5的是( )
A.input(5.0) B.int(5.8) C.print('Haian') D.float(5)
11.有如下python程序段:
def fab(a,b):
if a%b==0:
return
elif a>b:
fab(a-b,b)
print(1,end="")
else:
fab(a,b-a)
print(2,end="")
fab(126,156)
程序运行后,输出的2的个数是( )
A.3 B.4 C.5 D.6
12.某二分查找算法的 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
13.某Python程序如下:
item={"竞技类":["铁人三项","电子竞技","霹雳舞"],"球类":["足球","篮球","乒乓球"],"对抗性":["拳击","跆拳道","卡巴迪","击剑"],"水上":["跳水","龙舟","帆船"]}
print(item["对抗性"][2][::-1])
执行该程序段后,输出的结果是( )
A.跆拳道 B.道拳跆 C.卡巴迪 D.迪巴卡
14.某Python程序如下:
s=input("请输入字符串:")
ans=""
a=[1,2,3]
for i in range(len(s)):
x=s[i]
key=a[i%3]
if"A"<=s[i]<="Z":
ans=ans+chr((ord(x)-65+key)%26+65)
else:
ans=ans+x
print(ans)
执行该程序后,输入"A1b2D3"输出的结果为( )
A.32b1BF B.B1b2F3 C.B3e3F6 D.6F3e3B
15.如图所示的车牌,经过如下Python程序处理后,“cp.txt”文件得到的效果是( )
from PIL import Image
f=open(“cp.txt”,“w”) #以写入模式打卡“cp.txt”文件
im=Image.open(“cp.jpg”)
im=im.convert(“L”)
im=im.resize((90,21)) #将图片尺寸大小修改为90*21
pix=im.load() #读取所有像素点的颜色值
for j in range(im.size[1]):
ans=“”
for i in range(im.size[0]):
if pix[i,j]>=128:
r=“*”
else:
r=“”
ans+=r
ans=ans+“\r
” #“\r
”表示回车换行
f.write(ans)
f.close()
A.
B.
C.
D.
16.有如下Python 程序段:
s=input()
y=""
for i in range(len(s)):
c=s[i]
if c>="A" and c<="Z":
c=chr(ord(c)+3)
y=c+y
print(y)
运行上述程序,若输入的s内容为“A1b2C3”,则显示的是:( )
A.A1b2C3 B.D1b2F3 C.3F2b1D D.3C2b1A
17.有如下Python程序段:
import random
a=[0]*6
for i in range(1,6):
a[i]=random. randint(1,9)
if i%2==a[i]%2:
a[i]+=1
else:
a[i]+=a[i-1]
执行该程序段后,a的值不可能的是( )
A.[0,4,5,7,12,10] B.[0,8,9,8,16,21]
C.[0,8,5,10,19,4] D.[0,4,7,15,9,6]
18.执行如下程序段,下列说法正确的是( )
from random import randint
a=[2, 3, 3, 5,9, 10,13,13,15,19]
i, j, c=0,9,0
key=randint(0,10)
if key>5:key=key+5
while i<=j:
m=(i+j)//2
c+=1
if a[m]>key:
j=m-1
else:
i=m+1
A.变量c的值一定是4 B.变量i的值可能是7
C.a[i]的值可能等于key D.变量m和变量j的值可能相等
二、填空题
19.Python表达式50-9*3%4的运算结果是 。
20.循环控制可能使用 语句和continue语句控制循环的跳转。
21.表示x在区间(a,b]内的Python表达式是 。
22.有如下Python程序:
inp=input(“May i have your name? ”).split()
family_name=
print(“It's nice to meet you ”+family_name)
运行该程序,其输入输出样例如下:
或:
请根据程序功能补全代码。
23.阅读以下程序,写出程序运行结果。
def jc(n):
s=1
for i in range(2,n+1):
s=s*i
return s
total=jc(4) #调用jc函数
print(total)
程序运行后,其输出结果为
三、判断题
24.在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。( )
25.在Python中,print("abc" * 3)的执行结果是"abcabcabc"。( )
26.下列程序段中,赋值语句 s=s+i 被重复执行了 3 次。( )
s=0
for i in range(3,10,2):
s=s+i
27.计算机程序能重复使用。( )
28.python语言是一种面向对象的解释型计算机程序设计语言,发明于1989年。目前,python已经成为最受欢迎的程序设计语言之一。 ( )
四、操作题
29.用Python编辑器打开“Y:\404”文件夹中的文件“dm7.py”,按照下列步骤顺序,逐条写出相应的代码,运行程序,并以原文件名和路径保存程序。
(1)将数值3.14赋给变量pi;
(2)将数值5赋给变量r;
(3)将表达式4/3*pi*r**3的值赋给变量v;
(4)将函数round(v,2)的值赋给变量d;
(5)使用输出语句在屏幕上输出d的值。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题考查Python程序设计相关内容。insert(index,obj)函数作用是在index位置插入元素obj,因列表下标从0开始,m=[6,7,"你好!", "123"],执行m. insert(2,3)后,在m下标为2的位置插入3,即m=[6,7,3, "你好!", "123"],故本题答案是D选项。
2.B
【详解】本题考查Python基础。
解释执行是指源代码在执行之前不需要经过编译成机器语言,而是直接由解释器逐行解释执行。Python源代码文件(.py文件)由Python解释器读取并执行,解释器将源代码转换为字节码(一种中间形式),然后解释执行这些字节码。故正确答案为:选项B。
3.C
【详解】本题考查Python程序设计相关内容,本题涉及到字符串相关知识。分析程序段:
if ch>="A" and ch<="Z":
c+=chr(ord(ch)-ord("A")+ord("a")) #将大写字母ch转小写,存入c
if ch>="a" and ch<="z":
c+=chr((ord(ch)-ord("a")-1)%26 + ord("a")) #将小写字母ch左移1位,存入c
else:
c = ch + c #将非小写字母ch 倒存入c
经过程序运行,"Lucky-789"转换为:"987-Lltbjx"。故本题答案是C选项。
4.C
【详解】本题主要考查Python表达式的运算。16/8=2.0,16%8=0,16//8=2,16**8=4294967296,故本题选C选项。
5.D
【详解】本题主要考查Python程序的执行。依次带入选项字符串,输出的ch值依次是“K”、“K”、“K”、“T”,故本题选D选项。
6.C
【详解】本题考查Python程序。用户输入数字 m,即输入 15。 程序调用 dex_oct 函数,并将输入的数字传递给该函数。 dex_oct 函数进行八进制转换,通过递归调用自身实现对输入数字 m 的八进制转换。 输出的结果是将每次转换得到的余数逆序输出,即 15 转换为八进制为 17。 故答案为:C。
7.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选项。
8.A
【详解】本题主要考查Python表达式的运算。ASCII码表中小写字母的值大于大写字母的值,大写字母的值大于数字的值。所以“A”<“e”的值为True,“32” >“ab”的值为False,3+4y> 5-2y的值为False,7>=O and 30>=5的值为True,not(7>=O and 30>=5)的值为False,故本题选A选项。
9.B
【详解】本题主要考查Python随机函数。random()方法返回随机生成的一个实数,它在[0,1)范围内。random.randint(a,b)用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0,故变量x的值可能范围是[0,10),故本题选B选项。
10.B
【详解】本题考查Python函数。int(5.8)把浮点数5.8转换为整数5,因此结果为5。故答案为:B。
11.C
【详解】本题考查Python程序执行与调试。fab(126,156)→执行fab(126,30),并输出2。fab(126,30)→执行fab(96,30),并输出1。fab(126,30)→执行fab(66,30),并输出1。fab(66,30)→执行fab(36,30),并输出1。fab(36,30)→执行fab(6,30),并输出1。fab(6,30)→执行fab(6,24),并输出2。fab(6,24)→执行fab(6,18),并输出2。fab(6,18)→执行fab(6,12),并输出2。fab(6,12)→执行fab(6,6),并输出2。fab(6,6)满足if判断条件,执行return。因此程序运行后,输出的2的个数是5。故选C。
12.D
【详解】本题主要考查二分查找及Python程序实现。random.choice()方法用于返回一个列表、元组或字符串中的随机项。该二叉树如下图,分析程序可知,当遍历左子树执行,s = s+"L";当遍历右子树执行,s = s+"R";当查找到该树时,执行s = s+"M",并退出循环。由图可知,70节点没有左子树,故输出的结果不可能是RRLM,故本题选D选项。
13.D
【详解】本题考查Python中字典相关知识。程序中创建了一个名为 item 的字典,其中包含四个键:"竞技类"、"球类"、 "对抗性"、和 "水上",每个键对应的值都是一个列表。然后使用索引操作符 [] 获取 item 字典中 "对抗性" 键对应的列表,再次使用索引操作符 [] 来获取 item["对抗性"] 列表中的第3个元素,并用切片 [:: -1] 进行反转操作,输出的结果是:迪巴卡。故答案为D选项。
14.B
【详解】本题主要考查Python程序的执行。分析程序可知, key=a[i%3],a=[1,2,3],即key依次取1、2、1、2……,当s[i]是大写字母时,执行ans=ans+chr((ord(x)-65+key)%26+65),即将该字母循环后移key个长度再拼接到ans中,当s[i]是其他字符时,直接拼接到ans中,输入"A1b2D3",大写字母A、D变为B、F,其余字符不变,因此输出的结果是B1b2F3,故本题选B选项。
15.B
【详解】本题主要考查Python数据处理。分析程序可知,当像素点的颜色值pix[i,j]>=128时,填充“*”,反之无填充,图中灰色部分的像素点的颜色值均大于128,因此得到的效果图是 ,故本题选B选项。
16.C
【详解】本题主要考查Python程序的执行。分析程序可知,当取到的字符是大写字母时,执行c=chr(ord(c)+3)即后移3个长度,其余字符不变。y=c+y,即将每次取到的字符插到最前面。字符"A"、"C"变为"D"、"F",因此输出的结果是 3F2b1D,故本题选C选项。
17.B
【详解】本题主要考查Python程序的执行与调试。i取值1~5,循环5次,a[i]是随机生成1~9之间的整数,在if结构中,即i和生成a[i]具有同样的奇偶性时,则a[i]递增1,同时a[i]的奇偶性与i的奇偶性相反。在else结构中,即i和生成a[i]奇偶性相反,则执行a[i]=a[i]+a[i-1]。选项B中,由于a[i]是随机生成1~9之间的整数,a[5]=21,显然只能执行else部分得到,即21=16+5,即生成的a[5]=5,与i=5的奇偶性相同,矛盾,因此a的值不可能的是[0,8,9,8,16,21],故本题选B选项。
18.D
【详解】本题主要考查二分查找及Python程序实现。该二分查找用二叉树表示如下,变量c表示查找的深度,变量c的值不一定是4;变量i的值不可能是7;因为while循环条件是i<=j,因此a[i]的值不可能等于key;变量m和变量j的值可能相等,如key=2,故本题选D选项。
19.47
【详解】本题主要考查Python表达式的运算。50-9*3%4=50-27%4=50-3=47。
20.break
【详解】本题考查Python循环结构的描述。break是跳出循环的执行,continue是用于终止本次循环。
21.x>a and x<=b或a<x<=b
【详解】本题考查的是Python表达式。x在区间(a,b]表示x大于a,同时x小于等于b,因此对应的Python表达式是x>a and x<=b或a<x<=b。
22.inp[-1]
【详解】本题考查的是Python相关知识。split() 通过指定分隔符对字符串进行切片。由输出样例可知,family_name是分割后最后的子字符串。inp[-1]读取读取inp列表中倒数第一个元素。故应填入为:inp[-1]。
23.24
【详解】本题考查的是Python函数及循环语句。由s=s*i及 range(2,n+1)可知返回值是s=1*2*3*……n,total=jc(4)=1*2*3*4=24。
24.正确
【详解】本题考查Python基础。
在Python中,定义函数时参数名字前面带有两个*符号(例如,**kwargs)确实表示该函数可以接受任意数量的关键字参数(keyword arguments),并将这些参数存储在一个字典中。这种参数被称为可变关键字参数。这种机制在编写需要高度灵活性的函数时非常有用,因为它允许调用者传递任意数量的关键字参数,而函数内部可以以一种统一的方式处理这些参数。故正确。
25.正确
【详解】本题考查的是Python输出语句。*在字符串运算中表示重复。故print("abc" * 3)的执行结果是"abcabcabc"。题干说法正确。
26.错误
【详解】本题主要考查Python循环结构的应用。分析程序可知,变量i依次取3、5、7、9,故赋值语句 s=s+i 被重复执行了 4 次,故表述错误。
27.正确
【详解】本题考查计算机程序相关内容。计算机软件(程序)复用指的是在开发软件时,重复利用已有的代码和模块,以提高开发效率,并减少开发成本。故本题答案是:正确。
28.对
【详解】本题考查的是Python语言。python语言是一种面向对象的解释型计算机程序设计语言,发明于1989年。目前,python已经成为最受欢迎的程序设计语言之一。 题干说法正确。
29.pi=3.14
r=5
v=4/3*pi*r**3
d=round(v,2)
print(d)
【详解】本题考查Python程序设计相关内容。分析算法描述,其功能是计算以r为半径的圆球体积v,并以保留两位小数(round(v,2))的形式输出。运行结果如下:
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$