内容正文:
第三章 算法的程序实现
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.已知列表list1=[10,66,27,33,23],则python表达式max(list1)的值为( )
A.10 B.66 C.5 D.23
2.有如下 Python 程序段:
a=abs(-13.25)
b=round(25.335655,2)
c=(b-a)*100
Print(c)
则执行程序输出的结果为( )
A.1209.0 B.1859.0 C.1209.6 D.-1209.6
3.有千位和百位未知的5位整数“9**65”,能被37或67整除。以下Python程序段的功能是:在满足条件的所有数中,将最大的一个5位数显示出来。
i=100
while i>0:
print(j)
方框中的代码由以下代码中的三部分组成
①i-=1 ②i+=1 ③j=90065+i*100 ④if(j%37)*(j%67)==0:break ⑤ifj%37!=0orj%67!=0:continue下列选项中,代码顺序正确的是( )
A.④③① B.②③④ C.①③④ D.①③⑤
4.变量K表示某天是星期几(k=1,表示星期一),下列python表达式中能表示K的下一天的是( )
A.K+1 B.K%7+1 C.(K+1)%7 D.(K+1)%7-1
5.以下程序导入python的math模块,使用math模块下的函数对输入的实数进行向下取整,具体代码如下:
①
n = input("请输入一个实数:")
②
print(n3)
请完善该代码,上述划线处可选的语句为:( )
A.① import math ;② n3=math.floor(float(n)) ;
B.① import math;② n3=floor(float(n)) ;
C.① import math ;② n3=math.sqrt(float(n)) ;
D.① from math import ceil ;② n3=ceil(float(n)) ;
6.在Python中,以下表达式不正确的是( )
A.b='******'+'@@*' B.c='*'**3 C.d=3*'**' D.a='#*6'
7.在Python语言中,下列赋值语句中正确的是( )
A.i+1=b B.i=i*3 C.i-2=b+6 D.i*2=b//4
8.下列Python程序段的运行结果是( )
i=0
sum=0
while i<10:
if i%2==0:
sum+=i
i+=1
print(‘sum=’,sum)
A.sum=18 B.sum=20 C.sum=22 D.sum=30
9.Pygame的图像函数不支持图层存储下列哪种格式( )
A..BMP B..GIF C..PNG D..JPG
10.有如下 Python 程序段,输出的结果不可能是( )
import random
import math
a=random.randint(0,10)
if (math.sqrt(a))**2==a:
a=a+1
print(a)
A.2 B.3 C.4 D.5
11.在pygame窗口中,图片的坐标点位于图片的哪个位置( )
A.图片的左上角 B.图片的右上角 C.图片的中心点 D.图片的左下角
12.有如下 Python 程序段,函数f的功能是删除非降序序列中的重复数:
def f(lst):
k=i=0
while (1)
if lst[i] < lst[i+1]:
k+=1
(2)
i+=1
return lst[:k+1]
s=[3,6,6,6,8,8,8,9,9]
s=f(s)
print(s)
该程序输出的结果为[3,6,8,9],划线处可选代码为:①i<len(lst) ②i<len(lst)-1 ③lst[k]=lst[i] ④lst[k]=lst[i+1]
则(1)(2)处代码依次为( )
A.①③ B.①④ C.②③ D.②④
13.现有一段代码如下,现输入“260”和“-123”,运行后输出结果分别是( )
x=input("请输入数据")
if x[0] =="-":
fz=-int(x[:0:-1])
else:
fz=int(x[: :-1])
print(fz)
A.062 -32 B.062 -321 C.62 -32 D.62 -321
14.有如下Python程序段:
执行该程序段后,在下列选项中列表a中各元素值可能的是( )
A.[8,0,0,3,1,6] B.[0,0,5,8,1,3]
C.[1,4,0,0,6,7] D.[8,0,0,8,1,9]
15.函数int(10.6)的返回值是( )
A.10 B.10.6 C.11 D."10"
16.有如下两段python程序
若数组a的元素为[34,33,25,46,17,77],则下列说法不正确的是( )
A.两段程序的比较次数一样 B.两段程序的交换次数一样
C.两段程序的输出结果一样 D.两段程序都能实现数组a降序排序
17.Python中字典dict={"米饭":116,"苹果":53,"牛奶":54,"巧克力":589}存储的是不同食物的热量,程序中若要将其中牛奶的热量值改为60,可用的语句为( )
A.dict{"牛奶"}=60 B.dict["牛奶"]=60
C.dict[2]=60 D.dict={"牛奶":60}
18.[0,1]+[1,2]的值是( )
A.[0,1,1,2] B.[1,3] C.0,1,1,2 D.1,3
19.某算法的VB程序段如下:
key=randint(0,3)*2+13
i,j,c=0,len(a)–1,0
while i<=j:
m=(i+j+1)//2
if a[m]>=key:
i=m+1
else:
j=m-1
c+=1
列表a=[23,21,19,18,16,15,14,11],该程序段执行后,下列说法不正确的是( )
A.i的值为j+1 B.i的值可能是8 C.j的值可能是5 D.c的值一定是3
20.在Python中,如下的代码输出结果是( )
x=0
for i in range(10):
x=x+i
print(x)
A.55 B.45 C.10 D.0
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题主要考查Python表达式的运算。max返回序列最大值,列表list1=[10,66,27,33,23],则python表达式max(list1)的值为66,故本题选B选项。
2.A
【详解】本题主要考查Python程序的执行。a=abs(-13.25)=13.25,b=round(25.335655,2)=25.34,c=(b-a)*100=12.09*100=1209.0,故本题选A选项。
3.C
【详解】本题考查Python程序设计相关内容。由题意可知,要找出满足条件的最大数,则应从“9**65”可以构成的最大数开始进行判断,若不符合要求,再递减1去判断。“9**65”最大数为99965,分析程序,i初值为100,若要参与相关运算,则i值应从99开始,故方框中的第一条代码应该是:i-=1。将“9**65”与i结合起来构成5位数的方法是:90065+i*100,有了明确的五位数,才能去执行判断操作,故方框中的第二条代码应该是:j=90065+i*100。由99965起判断其是否符合题意,需要进行判断,判断条件为:if(j%37)*(j%67)==0,满足该条件说明已经找到最大数,应结束循环,故方框中的第三条代码应该是:if(j%37)*(j%67)==0:break。对照代码序号及选项,本题答案是C选项。
4.B
【详解】本题主要考查Python表达式。一周7天,即周期是7,变量K表示某天是星期几(k=1,表示星期一),可用表达式K%7表示,则表示K的下一天表达式是K%7+1,故本题选B选项。
5.A
【详解】本题主要考查Python模块导入。导入python的math模块,使用import关键字,第一空填 import math,floor() 返回数字的下舍整数,input接收的数据类型是str类型,需要将其转换为浮点型,故第二空填n3=math.floor(float(n)) ,选A选项。
6.B
【详解】本题考查Python运算符与表达式相关内容。Python中,字符串可以和数字进行乘运算,字符串可以和字符串进行加法运算,字符串不可以和数字进行幂运算。A选项,两个字符串相加,结果为:'******@@*',选项正确。B选项,字符串'*'和数字3进行幂运算,选项错误。C选项,数字3和字符串'**'相乘,结果为:'******',选项正确。D选项,将字符串'#*6'赋值给a,选项正确。故本题答案是B选项。
7.B
【详解】本题主要考查Python赋值语句。Python中,赋值语句是将等号右边的表达式赋值给等号左边的变量,如i=i*3,故本题选B选项。
8.B
【详解】本题考查Python语句。根据while可知,当if i%2==0成立时,sum+=i,i=2,4,6,8时,If条件成立,故sum=2+4+6+8=20,又根据print(‘sum=’,sum),则最后运行结果是sum=20,故本题选B。
9.B
【详解】本题考查Python基础。
Pygame是一个用于创建视频游戏的Python库,它提供了丰富的功能来加载、处理和显示图像。然而,在图层存储方面,Pygame的图像函数对GIF格式的支持是有限的,尤其是当GIF图像包含多个图层或动画时。故正确答案为:选项B。
10.C
【详解】本题主要考查Python程序的调试与执行。randint(0,10)生成随机数为0,1, 2,3,,4,5,6,7,8,9,10。因为精确度的问题,开方后平方又能和自己相等的数只能是0,1,4,9。加1后再输出,那么输出的数可能是1,2,5,10,排除AD选项。当a是3时if条件不满足直接输出3,排除B选项。当随机生成4时因为if条件满足,只能输出5,所以C选项不可能输出,故本题选C选项。
11.A
【详解】本题考查Python基础。
在pygame窗口中,图片的坐标点(通常指的是图片被绘制到窗口时所使用的坐标)默认位于图片的左上角。这是大多数图形库(包括pygame)在处理图像时的标准约定。故正确答案为:选项A。
12.D
【详解】本题考查Python程序设计相关内容。i作为循环变量,其取值范围与列表长度有关,因为比较的是索引i与i+1的值,因此i的取值范围是0<=i<=len(lst)-2,1<=i+1<=len(lst)-1,所以(1)处应填写:i<len(lst)-1;若lst[i] < lst[i+1]成立,表明当前序列为升序,k值加1,k存储当前升序序列最后一个元素索引号,且将lst[i+1]放在该处,即lst[k]=lst[i+1],所以(2)处应填写:lst[k]=lst[i+1],故本题答案是D选项。
13.D
【详解】本题主要考查Python字符串切片操作。切片操作基本表达式:object[start_index:end_index:step],step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。start_index:表示起始索引(包含该索引对应值),该参数省略时,表示从对象“端点”开始取值。end_index:表示终止索引(不包含该索引对应值),该参数省略时,表示一直取到数据“端点”。故当输入260时,执行else部分,输出62,输入-123时执行if部分,输出-321,故本题选D选项。
14.D
【详解】本题主要考查Python程序的执行与调试。random.randint(a,b)用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。根据语句k%5==0,后执行的语句是i=i﹣1,即重新本次循环,k的值不可能为5或者10,即对应的a中元素不可能有5或者10,排除选项B。如果满足k%3==0,即k是3、6、9,则执行a[n-1]=k,n递减1,i递增1 ,即a中的元素3、6、9一定在列表的右边,排除选项A、C,故本题选D选项。
15.A
【详解】本题考查Python基础。浮点数给int函数会将数字舍去小数部分,向下取整。故选择A。
16.C
【详解】本题主要考查Python程序的执行与调试。分析程序可知,两个程序分别从前往后比较和从后往前比较,因此比较次数和交换次数相等,两段程序都能实现数组a降序排序,但第一个程序内层循环每次会将最小值放到最右边,第二个程序内层循环每次循环会将右边的最大值放到左边,因此最终的输出结果不相等。第一个程序的输出结果是“34,46,77,33,25,”;第二个程序输出结果是“77,46,34,33,25,”,故本题选C选项。
17.B
【详解】本题主要考查Python字典的操作。字典是一种通过名字或者关键字引用的得数据结构,通过字典中的【键】来访问字典中的值,访问的格式如下:字典名[键]。若要将其中牛奶的热量值改为60,可用的语句为dict["牛奶"]=60,故本题选B选项。
18.A
【详解】本题考查Python列表相关内容。在Python中,列表(List)是一种有序、可变的数据类型,被广泛用于存储和处理多个元素。列表是一种容器,可以包含任意数据类型的元素,包括数字、字符串、列表、字典等。列表定义使用中括号[],元素之间用逗号分隔。[0,1]+[1,2]中的运算符“+”表示将两个列表合并成一个列表,即:[0,1,1,2],故本题答案是A选项。
19.B
【详解】本题主要考查二分查找及Python程序实现。key=randint(0,3)*2+13,可知key依次取的值是0、15、17、19,第一次查找,m=4,a(4)=16,如果向右查找,则i=m+1=5,进行第二次查找m=6,a(6)=14,若key=0,则i=7,此时进行第三次查找,m=8,a(8)=11,11仍然大于0,更新i=m+1=9,故i的值不可能是8,故本题选B选项。
20.B
【详解】本题主要考查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)。故循环结束后,x=x+i=0+1+2+3+4+5+6+7+8+9=45,故本题选B选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$