内容正文:
3.2 Python语言程序设计
一、选择题
1.在Python程序中,不能作为变量名的是( )
A.news B.T_1 C.姓名 D.3c
2.要开发“网络聊天机器人”软件,不仅仅要实现单一文本的输出,还需要实现机器人对话能力,则需要导入的模块是( )
A.AIML B.Flask C.flask _ script D.Django
3.已知a=7,b=2,在执行赋值语句“a=a%b**2”后,变量a、b的值分别是( )
A.7、25 B.3、2 C.25、2 D.10、2
4.用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
5.下列Python表达式的值不是2的是( )。
A.3%2 B.5//2 C.1*2 D.1+3/3
6.列表list1=[2,3,5,10,18,22,29],现在想要得到列表的最后一个元素29,以下语句不能实现该功能的是( )
A.list1[6] B.list1[7] C.list1[-1] D.max(list1)
7.调用模块不正确的( )
A.os.system( ) B.random.sample( ) C.mymodule.match_num( ) D.sys.sleep( )
8.互不相等的10个列表元素s[0]、s[1]、s[2]……s[9],有如下Python程序段:
n = 10
for i in range(5):
for j in range(1, n - i):
if s[j] > s[j - 1]:
s[j], s[j - 1] = s[j - 1], s[j]
该程序段实现的是( )
A.s[0]到s[5]的降序排列 B.s[0]到s[5]的升序排列
C.s[5]到s[9]的降序排列 D.s[5]到s[9]的升序排列
9.现采用新的排队方案为小明、小红、小丽、小辉四人排队,
Python程序段如下:
linklist=[["小明",1],["小红",2],["小丽",3],["小辉",-1]]
def reset(head):
if linklist[head][1]==- 1 or head==- 1:
return head
else:
new_head=reset(linklist[head][1])
linklist[linklist[head][1]][1]=head
linklist[head][1]=- 1
return new head
p=h=reset(0)
while p!=- 1:
print(linklist[p][0],end="")
p=linklist[p][1]
执行该程序段后,输出的结果是( )
A.小明小红小丽小辉 B.小明小辉小丽小红
C.小辉小丽小红小明 D.小明小丽小红小辉
10.有如下Python程序段:
dic={1:"2023",2:["杭州亚运会"],3:"心心相融@未来",4:["Heart to Heart","@Future"]}
cnt=0
for i in range(3):
cnt+=len(dic[i+1])
print(cnt)
该程序段运行后,输出的结果是( )
A.16 B.12 C.10 D.3
11.利用冗余压缩的方法对字符串进行压缩,例如字符串“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
12.有如下 python 程序段:
列表 a 的初始值略…
for i in range(6):
if (i+1)%2!=0:
if a[i]%10 >5:
a[i]=a[i]//10
else:
a[i]=a[i]%10
else:
a[i]=a[i-1]+1
程序运行后 a[0]到 a[6]的值分别是 2,3,4,5,0,1,则 a[0]到 a[6]各元素的初始值可能是( )
A.26,1,4,2,8,3 B.12,1,14,2,11,3 C.15,1,2,3,4,5 D.29,1,40,2,3,30
13.有如下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]
14.有如下Python程序段:
m = "2a03b145c1"
s=" ";x = 0;i=0
while i<len(m):
ch=m[i]
if "a"<=ch<="z":
s=ch+"="+str(x)+","+s
x=0
else:
x=x*10+int(ch)
i=i+1
print(s)
执行该程序段后,输出的结果为( )
A.a=2,b=3,c=145, B.a=2,b=3,c=45, C.a=3,b=145,c=1, D.c=145,b=3,a=2,
15.已知a="01.2345",b=[1,2,3,4,5],c={0:1,2:3,4:5},下列语句执行后,变量s的值不为5的是( )
A. B.
C. D.
16.有Python程序段如下,执行该程序段后,a[0]~a[5]中不可能的值是( )
import random
a=[0]*6
a[0]=random.randint(1,10) #随机生成一个[1,10]范围内的整数
i=1
while i<6:
a[i]=a[i-1]+random.randint(1,10)
if i%2==0:
a[i]=a[i]+a[i]%2
elif a[i]%2==0:
a[i]=a[i]//2
i+=1
print(a)
A.[3,9,14,22,31,20] B.[3,9,20,13,20,27] C.[10,19,26,29,32,39] D.[7,17,20,13,22,12]
17.查找素数能够很好的体现出计算机解决某些数学问题的速度优势,除了计算机性能以外,设计 更加简单的算法也能够提高计算机解决某些问题的速度。某种素数算法就是通过“开关”的思 想,例如求 100 以内的所有素数,采用列表来表示[1,1,1,1,……,1,1,1],列表的索引值表示0-99 中的每个数,1表示“开”即为素数(先假设都为素数),从 2(0 和 1 不是素数)开始, 因为索引2号对应的值为1,则2是素数,再将后面能够被2整除的索引对应的值都改为0,依次类推……以下程序就是采用这种思路编写的输出 1000 以内的所有素数的程序:
lst1=[] #存放每个数的开关
lst2=[] #存放找到的素数
lst1=[1]*1000 #初始化开关列表
for i in range(2,1000):
if lst1[i]==1:
lst2.append(i)
__________________________
lst1[j]=0
print(lst2) #输出所有 1000 以内的素数
上述程序横线处的合适代码为( )
A.if lst1[j]%i==0: B.if lst1[i]%i==0: C.for j in range(i,1000,i): D.for j in range(i+1,1000,i):
二、填空题
18.已知a=3,那么执行语句a+=3之后,a的值为 。
19.以下程序中的函数CircleArea( )实现的功能是
import math
def CircleArea(r):
area=math.pi *r *r
return area
20.在数字逻辑中,逻辑与运算通常用符号 表示。
21.阅读下列程序,写出运行结果
警察抓小偷,有四个嫌疑人甲乙丙丁,其中一人是小偷。甲说“不是我”,乙说“是丙”,丙说“是丁”,丁说“丙在冤枉人”。他们中只有一人说了假话,编程判断谁是小偷。(注:在Python运算中,True的值为1,False的值为0)
persons=[’甲’,’乙’,’丙’,’丁’]
for thief in persons:
flag =(thief!=’甲’)+(thief==’丙’)+(thief ==’丁’)+(thief!=’丁’)
if flag == 3:
print(thief)
运行结果是:
22.程序运行后,从键盘输入781,结果是
x=int(input("请输入一个正整数:"))
if x%2==0:
print(x,"是偶数.")
else:
print(x,"是奇数.")
三、判断题
23.Java、Python、C++、汇编语言都属于计算机程序设计高级语言。( )
24.Python语言是高级语言,需要经过翻译才能被计算机执行。( )
25.python语言是一种面向对象的解释型计算机程序设计语言,发明于1989年。目前,python已经成为最受欢迎的程序设计语言之一。 ( )
26.需求分析之后、程序设计之前,需要对系统进行总体设计和详细设计。总体设计就是在需求分析的基础上对模型细化、分解任务,明确程序由哪些模块组成。 ( )
四、操作题
27.某数的平方与它的逆序数的平方互为逆序数,则该数被称为奇妙平方数。例如 12 的平方为 144,21 的平方为 441,12 与 21 互逆,144 与 441 互逆,12 和 21 都称为奇妙平方数。小明编写了一个找 出 200 以内的所有奇妙平方数的 Python 程序,请在划线处填上合适的代码来完成此功能。
def compare(x,y):
s1=str(x)
s2=str(y)
k=len(str(s1))
for i in range(k):
if s1[i]!= :
return False
return True
sum=0
for i in range(200):
a=i
b=0
t=a
while t>0:
b=
t=t//10
t1=a*a
t2=b*b
if a!=b and len(str(t1))==len(str(t2)):
if :
print(a)
sum=sum+1
print("共有"+str(sum)+"个")
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题考查Python变量名相关内容。变量名由数字、字母和下划线组成,而且数字不能开头,不能包含特殊符号,不能是关键字,可以使用中文汉字做变量名。ABC选项可作变量名,D选项,数字开头,不符合规则。故本题答案是D选项。
2.A
【详解】本题考查Python基础。
AIML:是一种用于创建聊天机器人的标记语言,能够帮助开发者定义机器人的对话能力和响应模式。
Flask:一个轻量级的Web框架,适用于构建Web应用程序,但不专门用于实现对话能力。
flask_script:是Flask的一个扩展,提供了命令行支持,主要用于管理Flask应用程序的命令行操作。
Django:一个功能强大的Web框架,适合构建复杂的Web应用程序,但同样不专注于聊天机器人开发。
故正确答案为:选项A。
3.B
【详解】本题考查Python运算符与表达式相关内容。a=a%b**2-->a=7%4-->a=3。b的值未发生变化。故本题答案是B选项。
4.D
【详解】本题考查Python程序调试。a初值是76,每次循环a递增4,当循环3次时,此时a=76+4*3=88,再循环一次,a=88+4=92,不再满足循环条件,退出循环,因此第三行语句“a=a+4”执行的次数是4。故选D。
5.A
【详解】本题主要考查Python表达式的运算。3%2=1,5//2=2,1*2=2,1+3/3=2,故本题选A选项。
6.B
【详解】本题考查的是Python的列表知识。列表中的选项被称为元素,下标是从0开始计数。 max(list)获取列表中的最大值。故选项B不能获取到。
7.D
【详解】本题主要考查Python模块知识点。sleep是时间模块time的函数,即正确的调用是time.sleep(),故本题选D选项。
8.C
【详解】本题考查Python程序设计相关内容。本题涉及到冒泡排序的应用。i的取值为0~4,表示执行5趟冒泡排序,且采用下沉方式,将较小的数据交换到底端,故为降序;经过5趟排序后数组中最后5个元素按降序排列,故本题答案是C选项。
9.C
【详解】本题主要考查链表数据结构及Python程序实现。分析程序可知,reset(head)函数实现将列表linklist逆着连接起来,linklist=[["小明",1],["小红",2],["小丽",3],["小辉",-1]],因此执行该程序段后,输出的结果是小辉小丽小红小明,故本题选C选项。
10.B
【详解】本题考查Python程序执行。分析程序,i依次取0、1、2,i+1依次对应1、2、3。for循环实现统计字典dic中键1、2、3对应键值长度之和,dic={1:"2023",2:["杭州亚运会"],3:"心心相融@未来",4:["Heart to Heart","@Future"]},则cnt=0+4+1+7=12。故选B。
11.B
【详解】本题考查Python程序设计相关内容。结合题目要求,分析给定4个程序段,可知:B选项能够实现功能要求,正确。A选项,错误之处在于将条件判断(i==len(s)-1)放在了else语句内,无法实现功能要求。CD选项,无法实现功能要求:判条件判断(i!=len(s)-1)与条件判断(s[i]==s[i-1])并无相关性,只有判断完字符是否冗余并执行相应操作后才需要去判断是否到字符串末尾。故本题答案是B选项。
12.A
【详解】本题主要考查Python程序的综合应用。for循环第一次执行时i为0, 外if条件为真执行内if。假设a [i]为26,内if条件为真,a[i]= a[i]//10= 2符合题意;假设a [i]为12,内if条件为假,a[i]= a[i]%10= 2符合题意;假设a[i]为15,内if条件为假,a[i]= a[i]%10= 5不符合题意,排除选项C。假设a [i]为29,内if条件为真,a[i]=a[i]//10 = 2符合题意;for循环第二次执行时i为1,外if条件为假执行else部分。a[1]= a[i-1]+1=a[0]+1=3,剩下的ABD选项都符合题意。for循环第三次执行时i为2,外if条件为真执行内if。假设a [i]为4,内if条件为假,a[i]= a[i]%10= 4符合题意;假设a [i]为14,内if条件为假,a[i] = a[i]%10= 4符合题意;假设a [i]为40,内if条件为假,a[i]= a[i]%10= 0,不符合题意,排除选项D。for循环第四次执行时i为3,外if条件为假执行else部分。a[3]=a[i-1]+1=a[2]+1=5。剩下的AB选项都符合题意。for循环第五次执行时i为4,外if条件为真执行内if。假设a [i]为8,内if条件为真,a[i]= a[i]//10 = 0符合题意;假设a [i]为11, 内if条件为假,a[i] =a[i]%10= 1不符合题意,排除选项B,故本题选A选项。
13.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选项。
14.D
【详解】本题考查Python程序设计相关内容。分析程序段可知,其功能是将输入字符串转换为多个表达式并用“,”隔开后逆序连接。若遇到数字字符按照“x=x*10+int(ch)”转换为十进制数;若遇到字母,则按照“s=ch+"="+str(x)+","+s”将字母放在赋值号左边,十进制数再转换为字符串放在赋值号右边后加上“,”作为分隔,再放在s的前面。推知,先转换的在s尾部,最后转换的在s前面。“2a03b145c1”转换后结果为:“c=145,b=3,a=2,”。故本题答案是D选项。
15.A
【详解】本题主要考查Python程序的执行与调试。依次分析选项,选项A,循环只执行1次,因此语句执行后,变量s的值为1。其余选项,语句执行后,变量s的值均为5,故本题选A选项。
16.A
【详解】本题主要考查Python程序的执行与调试。a[0]=random.randint(1,10) ,随机生成一个[1,10]范围内的整数。每次循环a[i]=a[i-1]+random.randint(1,10),如果索引i是偶数(从2开始),则执行a+[i]=a[i]+a[i]%2,执行完对应的a[i]必为偶数,即a[2]、a[4]必是偶数,[3,9,14,22,31,20]不符合条件,故本题选A选项。
17.C
【详解】本题考查的是python解决素数问题。横线处代码为遍历1000以内的数(含i),因为素数是没有因子的数,所以步长为i可以有效的提高程序效率。故选项C正确。
18.6
【详解】本题主要考查Python赋值语句。a+=3等价于a=a+3,已知a=3,那么执行语句a+=3之后,a的值为6。
19.求圆的面积
【详解】本题考查Python程序。分析程序,可知程序中的函数CircleArea( )实现的功能是:求圆的面积。
20.∧
【详解】本题考查运算符。逻辑与运算通常用符号 ∧ 表示。它是一种二元逻辑运算,当两个操作数都为真时,结果才为真。故答案为:∧。
21.丙
【详解】本题主要考查 Python程序执行。分析程序可知,只有当thief=’丙‘时,满足flag=3,即4个人中只有一人说了假话,故运行结果是丙。
22.781是奇数
【详解】本题考查的是Python选择结构。从键盘输入781,即x=781, x%2=1,故执行 print(x,"是奇数."),输出:781是奇数。
23.错误
【详解】本题主要考查程序设计语言。Java、Python、C++均属于计算机程序设计高级语言,汇编语言属于低级语言,故表述错误。
24.正确
【详解】本题考查Python。Python语言是高级编程语言,它不能被计算机直接识别和执行,需要通过解释器或编译器将其翻译成计算机能够理解的机器语言后才能执行。故说法正确。
25.对
【详解】本题考查的是Python语言。python语言是一种面向对象的解释型计算机程序设计语言,发明于1989年。目前,python已经成为最受欢迎的程序设计语言之一。 题干说法正确。
26.对
【详解】本题考查的是程序设计。需求分析之后、程序设计之前,需要对系统进行总体设计和详细设计。总体设计就是在需求分析的基础上对模型细化、分解任务,明确程序由哪些模块组成。题干说法正确。
27. s2[k-i-1] b*10+t%10 compare(t1,t2)
【详解】本题主要考查Python程序的综合应用。①根据题意可知compare函数的作用是判断两个参数是否是逆序数。根据逆序数的定义可知①处填写s2[k-i-1]。因为x、y参数再调用函数体时已经要求长度一致,因此不会出现下标越界错误。②根据t2 = b* b可知b是a的逆序数。此处填写b* 10十t%10可以实现此功能。③处调用函数compare。compare函数返回值为布尔型,此处填写为compare (t1, t2)。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$