内容正文:
第四章 程序设计基础
一、选择题
1.在Python中,以下哪个函数用于获取用户输入并将其转换为整数( )
A.int(input()) B.getInt() C.readInt() D.parseInt()
2.在python中,表示“x属于区间(0,1]”的正确表达式是( )
A.x>0 orx<1 B.0<x<=1 C.x>0 orx<=1 D.x>0 and x<1
3.某Python程序如下:
s='A3B57e';sl=";i=0
while i<len(s):
if'A'<=s[i]<='Z':
sl=s1+chr(ord(s[i])+32)
elif'0'<=s[i]<='9':
sl=s[i]+s1
i=i+1
print(s1)
运行后输出的结果是( )
A.753abe B.a3b57 C.753AB D.753ab
4.下面对Pygame的理解不正确的是( )
A.使用Pygame可以开发出优秀的游戏
B.Pygame是一种游戏开发引擎,基本逻辑具有参考价值
C.Pygame适合用于游戏逻辑验证、游戏入门及系统演示验证
D.Python最经典的2D游戏开发第三方库,但不支持3D游戏开发
5.函数max([5,0,8,10])的值是( )
A.5 B.0 C.8 D.10
6.在 Python 中,表达式[0,1]*2的计算结果是( )
A.[0,0,1,1] B.[0,2] C.[0,1,0,1] D.出错
7.在EPython 语言中,表示“a小于-2或者a大于2”的正确表达式是( )
A.a<-2 or a>2 B.-2>a>2
C.a>-2 or a<2 D.a<-2 and a>2
8.在Python中,下列函数值为2020的是( )
A.len("2020") B.str(2020) C.abs(round(-7.7)) D.abs(int("-2020"))
9.平面上任意两点P1(x1,y1),P2(x2,y2,)间的距离公式为。小华用Python编写了计算平面上两点之间距离的程序如下所示,下列说法错误的是( )
1 import math
2 x1=y1=2
3 x2=y2=8
4 d=math.sqrt((x2-x1)**2+(y2-y1)**2)
5 print("两点之间的距离为:",d)
A.该程序代码中导入了math库,否则程序无法正常运行
B.“math.sqrt((x2-x1)**2+(y2-y1)**2)”的作用是计算平面上两点之间的距离
C.该程序中,变量x1、y1、x2、y2的数据类型为整数,变量d的数据类型是浮点数
D.该程序使用了循环结构
10.有下列程序段:
s=″accdbbdca″
res=″ ″
for i in s:
if len(res)==0 or i!=res[-1]:
res+=i
elif i==res[-1]:
res=res[-1]+res[:len(res)-1]
print(res)
该程序执行结束后,输出结果正确的是( )
A.aca B.acdb C.dbcaca D.bcacdbdca
11.下列python赋值语句错误的是( )
A.a=b=1 B.a+1=1 C.a=a+1 D.a,b=1.3
12.用火柴棍拼数字,各数字的拼法如下图所示,实现10根火柴棍(可以剩余)能拼成的最大两位数的Python程序如下,划线处应填入的代码是( )
n=10
match=
for i in range(99,9,-1):
if match[i//10]+match[i%10]<=n:
print(i)
break
A.6255456376 B.'6255456376'
C.[6,2,5,5,4,5,6,3,7,6] D.{'0':6,'1':2,'2':5,'3':5,'4':5,'5':6,'6':6,'7':3,'8':7,'9':6}
13.Python语言提供的列表类型,可以应用于一次处理多个数据对象的场合。下面Python程序运行后输出的结果是( )
list1=[1,2, 3]
list2=[10, 11, 12]
list3=list1+list2
print (list3)
A.[1,2, 3, 10, 11,12] B.[12, 11, 10, 3, 2, 1]
C.[11, 13, 15] D.[110, 211, 312]
14.有如下Python程序段:
import random
x=[0]*5
i=0
flag=True
while i<5:
key=random.randint(1,9)*2+1
if flag or key%3==0:
x[i]=key
flag=not flag
i=i+1
print(x)
执行该程序段后,下列输出结果可能的值是( )
A.[9,13,7,1,15] B.[11,12,11,9,15]
C.[7,3,5,15,17] D.[3,0,3,0,9]
15.下列Python表达式中,值为True的是( )
A.6%3**2==0 B."110">"12"
C.abs(-8)>=len("2023年11月") D.round(4.6)==5 and "he"in"Chinese"
16.下列表达式中,结果为True的是( )
A.len(["hello"])==5
B.not (4/2**3 <= 1)
C.3 >= 4 or not (3==2 and 3<=2)
D.11%2 != 0 and False
二、填空题
17.在Python中,用于实现异常处理的关键字是 。
18.a=3,执行语句print (float(a)),则输出结果为( )
19.某 Python 程序如下:
n = int (input ())
sum = a = 3
res = 0
i=1
while i <= n:
res = res + sum
sum = sum * 10 + a
i = i + 1
print (res)
当输入n值为3时,程序输出结果是 。
20.写出下列Python程序运行结果。
def factorial(n):
#求n!
s=1
for i in range(2,n+1):
s=s*i
return s
total=factorial(4) #调用factorial函数
print(total)
运行结果为: 。
21.可以用来创建空集合的函数是 。
三、判断题
22.使用内置函数open()且以“w”模式打开的文件,文件指针默认指向文件尾。( )
23.已知x = 3,那么执行语句x+=6之后,x的内存地址不变。( )
24.在Python3.x语言中,input()函数的返回值类型是字符串。( )
25.Python语言中运算的优先级按从低到高依次为算术运算、赋值运算、关系运算。( )
26.在Python语言中,变量名Air和air表示的是两个不同的变量。( )
四、操作题
27.回文子串。输入一个字符串,输出所有长度至少为2的回文子串,并统计回文子串的个数。说明:两个不同位置的相同回文子串,统计时算两个。程序运行界面如下图所示:
请输入字符串:121ababa
121
aba
bab
aba
ababa
字符串中共有回文子串数为:5
s=input(′请输入字符串:′)
n=len(s)
cnt=0
for i in range(2,n+1): # i为子串长度
for j in range(① ):
substr=s[j:j+i]
if ② : # 判断回文
print(substr)
③
print(′字符串中共有回文子串数为:′,cnt)
程序划线①处应填入的代码为: ;程序划线②处应填入的代码为: ;程序划线③处应填入的代码为: 。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查Python基础。
在Python标准库中,不存在函数getInt()、readInt()或parseInt()。故正确答案为:选项A。
2.B
【详解】本题考查Python基础。
闭区间取到1,故排除选项A,D。属于区间(0,1]为并且的关系,故排除选项C。故正确答案为:选项B。
3.D
【详解】本题考查程序分析。根据代码if'A'<=s[i]<='Z':和'0'<=s[i]<='9':可知,该程序遍历字符串s,取出字母和数字,将大写字符转换成小写,将数字直接加到字符前面,存储在变量s1中,输出s1。故正确答案为选项D。
4.D
【详解】本题考查Python基础。
Python最经典的2D游戏开发第三方库,但不支持3D游戏开发。这个选项是不完全正确的。虽然Pygame被广泛认为是Python中用于2D游戏开发的经典第三方库,并且它确实提供了丰富的2D图形和声音处理功能,但它并非完全不支持3D游戏开发。Pygame本身主要聚焦于2D,但开发者仍然可以使用Pygame结合其他库(如OpenGL)来实现3D图形的渲染。故正确答案为:选项D。
5.D
【详解】本题考查的是Python函数。函数max是求最大值。故函数max([5,0,8,10])的值是10,故选D。
6.C
【详解】本题考查Python列表相关内容。在Python中,列表(List)是一种有序、可变的数据类型,被广泛用于存储和处理多个元素。列表是一种容器,可以包含任意数据类型的元素,包括数字、字符串、列表、字典等。列表定义使用中括号[],元素之间用逗号分隔。[0,1]*2中的运算符“*”表示将列表重复指定次数,即:[0,1,0,1],故本题答案是C选项。
7.A
【详解】题主要考查Python表达式的运算。and是“且”关系,or是“或”关系,故能正确表示条件“a小于-2或者a大于2”的表达式是a<-2 or a>2,故本题选A选项。
8.D
【详解】本题考查Python运算符与表达式相关内容。A选项,len("2020")-->4。B选项,str(2020)-->"2020"。C选项,abs(round(-7.7))-->7。D选项,abs(int("-2020"))-->abs(-2020)-->2020。故本题答案是D选项。
9.D
【详解】本题考查Python程序设计相关内容。结合程序段,分析四个选项:A选项,程序中使用了math库中的sqrt函数,需要使用import math将math库导入程序,选项正确。B选项,由计算距离公式转换为Python表达式,即为:math.sqrt((x2-x1)**2+(y2-y1)**2),选项正确。C选项,由“x1=y1=2”及“x2=y2=8”知,变量x1、y1、x2、y2的数据类型为整数,由“d=math.sqrt((x2-x1)**2+(y2-y1)**2)”知,变量d的数据类型是浮点数,选项正确。D选项,该程序使用了顺序结构,选项错误。故本题答案是D选项。
10.C
【详解】本题考查Python程序设计相关内容。
给定字符串s=″accdbbdca″,我们需要遍历字符串s并对其进行处理。首先,我们初始化一个空字符串res作为结果。在循环遍历字符串s的过程中,我们逐个检查每个字符。如果当前字符不在结果字符串res中,我们将其添加到res的末尾。这意味着我们只保留字符串s中的第一个出现的字符。根据这个逻辑,我们依次处理字符串s中的字符:
当处理字符'a'时,由于'a'不在res中,将其添加到res的末尾,此时res=″a″;
当处理字符'c'时,由于'c'不在res中,将其添加到res的末尾,此时res=″ac″;
当处理字符'c'时,由于'c'==res[-1],执行res=res[-1]+res[:len(res)-1],此时res=″ca″;
当处理字符'd'时,由于'd'不在res中,将其添加到res的末尾,此时res=″cad″;
当处理字符'b'时,由于'b'不在res中,将其添加到res的末尾,此时res=″cadb″;
当处理字符'b'时,由于'b'==res[-1],执行res=res[-1]+res[:len(res)-1],此时res=″bcad″;
当处理字符'd'时,由于'd'==res[-1],执行res=res[-1]+res[:len(res)-1],此时res=″dbca″;
当处理字符'c'时,将其添加到res中,此时res=″dbcac″;
当处理字符'a'时,将其添加到res中,此时res=″dbcaca″。
根据题目中给定的程序段逻辑,字符串res最终的结果应该是″dbcaca″。
故本题答案是C选项。
11.B
【详解】本题考查Python变量与表达式相关内容。赋值语句是将等号右边的表达式赋给等号左边的变量。ACD选项正确。B选项,赋值运算符左侧不能是表达式,选项错误。故本题答案是B选项。
12.C
【详解】本题考查Python程序设计相关内容。分析程序段,其功能为找出火柴棍能拼成的最大两位数。方法是可将0--9所需火柴棍数量按照序号组成列表,对于每个两位数(从99逆序至10),分别取出其十位(i//10)和个位(i%10)上的数字,求和,若和<=n,则其满足题目要求,分析4个选项,C选项符合要求。故本题答案是C选项。
13.A
【详解】本题考查Python列表相关内容。两个列表相加,是将两个列表中的元素合并成一个新的列表。故本题答案是A选项。
14.C
【详解】本题主要考查Python程序的执行。key=random.randint(1,9)*2+1,变量key是随机生成[3,19]之间的奇数,分析程序可知,flag为True或key被3整除则执行if语句,执行完flag=not flag,flag初值为True,第一轮循环一定执行if语句,x[i]=key可以被3整除也可以不被3整除;第二轮循环,此时flag=False,x[i]=key一定被3整除,执行完后flag=not flag=True,情况同第一轮循环,依次类推,可知列表x中索引为奇数的值均能被3整除,故列表x值可能的是[7,3,5,15,17],故答案为C选项。
15.C
【详解】本题考查Python运算符与表达式相关内容。A选项,6%3**2=6%9=6,错误;B选项,"110">"12",不成立,错误;C选项,abs(-8)>=len("2023年11月"),结果为:8>=8,正确;D选项,round函数作用是四舍五入取整,round(4.6)结果为5,"he" in "Chinese"结果为False,两者不相等,错误。故本题答案是C选项。
16.C
【详解】本题考查Python运算符与表达式相关内容。A选项,len(["hello"])值为1,不等于5,结果为False,不符合题意;B选项,4/2**3的结果为0.5,0.5<=1成立,结果为True,not(True),结果为False,不符合题意;C选项,3 >= 4结果为False,not (3==2 and 3<=2)结果为True,False or True结果为True,符合题意;D选项,11%2 != 0结果为True,True and False结果为False,不符合题意。故本题答案是C选项。
17.try 和 except
【详解】本题考查Python。在Python中,异常处理通过try和except关键字来实现。try关键字用于定义可能会引发异常的代码块,except关键字用于捕获并处理try代码块中抛出的异常。通过这种方式,可以增强程序的健壮性和容错性,使得程序在遇到异常情况时能够采取适当的措施,而不是直接崩溃。故答案为:try 和 except。
18.3.0
【详解】本题主要考查Python数据类型。float() 函数用于将整数和字符串转换成浮点数,a=3,执行语句print(float(a)),则输出结果为3.0。
19.369
【详解】本题考查的是Python循环语句。初始i=1,sum = a = 3,当输入n值为3时。
i<=3成立,res = res+sum=3, sum=sum*10+a=30+3=33,i=i+1=2;
i<=3成立,res = res+sum=36, sum=sum*10+a=330+3=333,i=i+1=3;
i<=3成立,res = res+sum=369, sum=sum*10+a=3330+3=3333,i=i+1=4;
i<=3不成立,故输出res为369。
20.24
【详解】本题考查Python函数相关内容。该函数功能是计算阶乘(n!)。由s=s*i及range(2,n+1)可知返回值是s=1*2*3*……n,factorial(4)=1*2*3*4=24。故本题答案是:24。
21.set()
【详解】本题考查Python函数相关内容。Python提供了一个内置函数set(),它可以用于创建一个空集合,只需要调用set()函数,不传入任何参数即可。故本题答案是:set()。
22.错误
【详解】本题考查Python基础。
这个说法错误。当你使用内置函数open()以“w”模式打开一个文件时,文件指针默认是指向文件的开头,而不是指向文件尾。
23.错误
【详解】本题考查Python基础。在Python中,变量(如x)实际上是对对象的引用(或指针),而不是对象本身。当你执行x = 3时,x是对整数对象3的引用。整数对象在Python中是不可变的(immutable),这意味着一旦创建,其值就不能改变。然而,当你执行x += 6时,这实际上是一个简写形式,等同于x = x + 6。在这个操作中,x + 6首先会计算出一个新的整数对象(在这个例子中是9),然后x这个变量名会被重新绑定到这个新的整数对象上,这时地址会发生变化。故错误。
24.正确
【详解】本题考查Python函数。input()函数用于从标准输入读取一行,并将其作为字符串返回。无论用户输入什么内容,input()函数返回的值始终是字符串类型。故说法正确。
25.错误
【详解】本题考查Python运算优先级。标准的Python运算符优先级顺序为:幂运算>一元加减运算>乘除取模取整除>加减运算>按位左移右移运算>位与运算>位异或运算>位或运算>比较运算符>布尔运算符>赋值运算符。因此,正确的运算符优先级顺序应为算术运算>关系运算>赋值运算。故说法错误。
26.正确
【详解】本题考查Python变量相关内容。在Python语言中,变量名是区分大小写的,因此变量名Air和air会被视为两个不同的变量。故本题答案是:正确。
27. n-i+1或0,n-i+1或0,n-i+1,1 substr == substr[::-1] cnt=cnt+1
【详解】本题考查Python应用。
(1)本题采用枚举算法,枚举长度为2至n的所有子串,然后再对子串进行回文判断。i表示子串长度,j表示取长度为i的子串时的起始位置,字符串总长度为n,因此j=n-i+1,故①处的代码为n-i+1或0,n-i+1或0,n-i+1,1。故答案为:n-i+1或0,n-i+1或0,n-i+1,1。
(2)substr表示取出的子串,回文子串的判断方法为:若子串substr进行反转操作后与原子串相同,则为回文串,否则不是回文串。将子串substr进行反转操作的代码为substr[::-1],因此②处代码为substr == substr[::-1]。故答案为:substr == substr[::-1]。
(3)程序③处代码的功能统计回文子串的个数,根据下面的print语句,可知回文子串的个数存储在变量cnt中,因此③处代码为cnt=cnt+1。故答案为:cnt=cnt+1。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$