内容正文:
第四章程序设计基础2024—2025学年高中信息技术粤教版(2019)必修1
一、选择题
1.在Python中,已知A=8,则以下代码执行后输出的结果是( )
if A<=5:
print(A-5)
else:
print(A+10)
A.3 B.5 C.10 D.18
2.用python程序处理图像文件“chenchen.jpg”,该图像颜色位深度为24bit,图像如图所示:
程序代码如下:
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img=np.array(Image.open("chenchen.jpg").convert("L"))
rows,cols=img.shape
for i in range(rows):
for j in range(cols):
if():
img[i,j]=1
else:
img[i,j]=0
plt.imshow(img,cmap="gray")
plt.show()
下列说法正确的是( )
A.待处理图像的文件名为“chenchen”
B.处理后的图像像素数将增加
C.将加框处语句中的“>”改为“<=”,则处理后的图像中黑白色将互换
D.将加框处语句中128改为188,则处理后图像中的黑色部分将减少
3.打印出所有的“水仙花数”,所谓水仙花数是指一个三位数,它的每个位上的数字的3次幂之和等于它本身(例如:1^3+5^3+3^3=153),如果将所有的三位数一一列举,逐个判断,横线处应填( )
for i in range( ):
b=i//100
s=i%100//10
g=i%10
if b**3+s**3+g**3==i:
print(i)
A.100 to 999 B.100,999 C.100,1000 D.100 1000
4.有如下Python程序段:
import random
a=[90,15,40,72,59,32,81,6]
b=[7,1,5,2,4,3,6,0]
i,j=0,len(a)-1
key=random.randint(30,60)
while i<=j:
m=(i+j)//2
if a[b[m]]==key:
p=b[m]
break
elif a[b[m]]<key:
i=m+1
else:
j=m-1
程序运行后,变量p的值不可能是( )
A.2 B.3 C.4 D.5
5.有如下程序,输入1101110后的运行结果为( )
s1=input(“请输入一串01组合”)
s2=len(s1)
s=0
for i in range(s2):
a=int(s1[i])
s=s*2+a
print(s)
A.110 B.111 C.220 D.110111
6.判断整数x是否奇偶的部分Python程序段如下:
if x % 2 == 0:
res = ″偶数″
else:
res = ″奇数″
下列选项中与上述语句块功能相同的是( )
A.
if x % 2 == 0:
res = ″偶数″
res = ″奇数″
B.
if x % 2 == 0:
res = ″偶数″
else x % 2 ! = 0:
res = ″奇数″
C.
res = ″奇数″
if x % 2 == 0:
res = ″偶数″
D.
if x % 2 == 0:
res = ″奇数″
if x % 2 ! = 0:
res = ″偶数″
A.A B.B C.C D.D
7.编号为1到13的纸牌顺时针排成一圈,现从编号为1的牌从数字1开始顺时针数下去,1、2、3、……、20、21、……,一圈又一圈,则当数到数字N时,所在纸牌的编号为( )
A.N%13 B.(N+1)%4 C.1+(N-1)%12 D.1+(N-1)%13
8.有如下Python程序段:
from random import randint
n=input("请输入一串数字:")
k=randint(0,len(n)) #randint用于随机生成[0,len(n)]之间的整数
for i in range(k):
for j in range(len(n)-1):
if n[j]>n[j+1]:
break
else:
n=n[:len(n)-1]
continue
n=n[:j]+n[j+1:]
执行该程序段后,输入“1529”,则变量n可能是( )
A."1" B."12" C."152" D."1259"
9.运行以下Python程序段,变量x的值为( )
a,b,c=7,2,20
if a>b:
x=a
else:
x=b
if c>x:
x=c
A.7 B.2 C.20 D.29
10.函数pow(2,3)的值是( )
A.2 B.3 C.6 D.8
11.有如下 Python 程序段:
def f(x,y):
if y==0 or x==y:
return 1 #①处
else:
return f(x-1,y-1)+f(x-1,y)
执行语句k=f(3,2),以下说法正确的是( )
A.k的值为1 B.k的值为3
C.函数f(x,y)共被调用了4次 D.①处代码共执行了1次
12.有如下VB程序段
a="access":b="col":s=""
For i=1 To Len(b)
L=1:R=Len(a)
Do While L<=R
m=(L+R)\2
If Mid(a,m,1)>Mid(b,i,1)Then R=m-1 Else L=m+1
Loop
a=Mid(a,1,R)+Mid(b,i,1)+Mid(a,L,Len(a)-L+1)
s=s+Str(L)
Next i
上述程序执行后,变量s的值为( )
A.4 5 5 B.4 6 6 C.2 5 5 D.2 6 6
13.以下不属于Python标准函数的是( )
A.match( ) B.int( ) C.float( ) D.abs( )
14.作为学习python的开始,需要事先搞清楚,什么是编程语言?下列选项正确的是( )。
A.编程语言是程序员与计算机沟通的介质
B.能够被计算机识别的表达方式即是编程语言
C.编程即程序员根据需求把自己的思想流程按照某种编程语言的语法风格编写下来
D.人类编程控制计算机工作
15.在Python语言中,已知L=[72,84,61,35],则max(L)运行结果是( )
A.72 B.84 C.61 D.35
16.有如下程序段:
s="GUYS:keep on going never give up!"
flag=False;m=0
for i in range(len(s)):
if s[i] >="a"and s[i]<="z":
if not flag:
m=m+1
flag=True
else:
flag=False
print(m)
程序执行后的输出结果是( )
A.5 B.6 C.7 D.8
17.列表 a 包含 n 个互不相等的正整数,即 a[0],a[ 1], … … ,a[n- 1],求其中任意两个元素之和的最大值 的程序段如下:
s=0
b=a[0]
for i in range( 1,n):
print(s)
划线处应选填的代码顺序是( )
①b=max(a[i],a[i- 1]) ②b=max(b,a[i])
③s=max(s,a[i]+b) ④s=max(s,a[i]+a[i- 1])
A.③② B.③① C.④② D.④①
18.有如下python程序段:
que=[""]*20
head=tail=0
s=input("请输入待加密字符:")
for i in s:
que[tail]=i
tail+=1
s1=""
while head!=tail:
if head%2==0:
s1=s1+que[head]
else:
que[tail]=que[head]
tail+=1
head+=1
print(s1)
执行该程序段后,输入字符串"python",输出的结果是( )
A.python B.ptoyhn C.ptoynh D.hnyotp
19.下列哪种结构,可是实现计算机自动完成重复性的工作( )。
A.顺序结构 B.选择结构 C.循环结构 D.组合结构
20.下列程序段可以实现交换a,b两个变量的值的是( )
A.a=b,b=a B.t=a,a=b,b=t C.a=b,b=t,t=a D.b=a,a=t,t=b
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题考查的是Python选择语句。A=8,不满足A<=5,执行 print(A+10),输出8+10=18,故选D。
2.C
【详解】本题考查Python程序进行图像处理。待处理图像的文件名为“chenchen.jpg”;处理后的图像像素数不变;将加框处语句中的“>”改为“<=”,则处理后的图像中黑白色将互换;颜色灰度值的范围是0-255,如果 img[i,j]>188,则将188以上像素处理成白色,反之处理成黑色,以188为分界线,而黑色就会偏多,因此将加框处语句中128改为188,则处理后图像中的黑色部分将增多。故选C。
3.C
【详解】本题考查Python程序。三位数的所有可能的范围是100~999,将所有的三位数一一列举,逐个判断,条件语句中求出一个三位数的百位、十位、个位上的数字的三次方的和,两者相等,即所求的数。A选项,格式错误;B选项,只能取到100~998;D选项,不能用空格。故答案为:C。
4.B
【详解】本题考查Python程序设计相关内容。本题涉及到对分查找相关知识。由代码可知,a数组为原数组无序,b数组为a数组的升序索引,即a[b[0]] < a[b[1]]< a[b[2]] < a[b[3]] < a[b[4]] < a[b[5]] < a[b[6]] < a[b[7]]。故可以在a[b[i]]数组中进行对分查找。根据代码p=b[m],p为a[b[m]]在原数组a中的索引,key的范围为[30,60],观察数组只有40,59,32满足条件,故p的值可能为这三个数在原数组中的下标,分别为2,4,5。故p的值不可能为3。故本题答案为B选项。
5.A
【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现将二进制数1101110通过“按权展开、逐项相加”的方法转换为十进制数110,故本题选A选项。
6.C
【详解】本题考查的是Python选择语句。选项A在x为偶数y="奇数",与题干给的程序不符;选项B语句格式不对,else后不用写条件表达式;选项Dx为偶数y="奇数",奇数y="偶数",与题干给的程序不符。故本题应选C。
7.D
【详解】本题主要考查Python表达式。编号为1到13的纸牌顺时针排成一圈,现从编号为1的牌从数字1开始顺时针数下去,1、2、3、……、20、21、……,一圈又一圈。因此周期是13,但是数字13的编号为13,数字14的编号为1,结合选项,则当数到数字N时,所在纸牌的编号为1+(N-1)%13,故本题选D选项。
8.B
【详解】本题考查Python程序。程序中使用了输入函数input获取用户输入的一串数字,并通过randint随机生成一个范围在[0,len(n)]之间的整数赋值给变量k。接下来通过两层嵌套的循环对字符串n进行处理。在内层循环中,对字符串中相邻的字符进行比较,如果发现前一个字符大于后一个字符,则执行break跳出内层循环。否则,执行n=n[:len(n)-1]删除字符串的最后一个字符,并通过continue继续内层循环。根据以上过程,我们可以得出当k=0时,n的值为"1529",当k=1时,n的值为"12",当k=2,3,4时,n的值为空。故答案为:B。
9.C
【详解】本题考查Python程序设计相关内容。分析程序段可知,该程序段功能是判断三个数的最大值。由“a,b,c=7,2,20”知,最大值为20,故本题答案是C选项。
10.D
【详解】本题考查Python函数应用。函数 pow(x, y) 在Python中用于计算x的y次方。对于 pow(2, 3),我们要求的是2的3次方。 2 * 2 * 2 = 8。故答案为D选项。
11.B
【详解】本题考查递归算法。执行过程如下:
f(3,2) return f(2,1)+f(2,2)
f(2,1) return f(1,0)+f(1,1)
f(2,2) return 1
f(1,0) return 1
f(1,1) return 1
f(3,2)=1+1+1=3
故选择B。
12.B
【详解】本题主要考查VB程序的执行。a="access",b="col",s="",Len(b)=3,i=1,L=1,R=Len(a)=6,执行完while循环后,L=4,R=3,a="acccess",s=s+Str(L)="4";i=2时,L=1,R=7,执行完while循环后,L=6,R=5,a="accceoss",s=s+Str(L)="4 6";i=3时,L=1,R=8,执行完while循环后,L=6,R=5,s=s+Str(L)="4 6 6",故上述程序执行后,变量s的值为4 6 6,故本题选B选项。
13.A
【详解】本题考查标准函数。match函数是Python中用于正则表达式匹配的函数,而不是Python的内置标准函数。故选择A。
14.ABCD
【详解】本题考查Python语言的相关知识点
编程语言是程序员与计算机沟通的介质,能够被计算机识别的表达方式即是编程语言,编程即程序员根据需求把自己的思想流程按照某种编程语言的语法风格编写下来,人类编程控制计算机工作。故本题选ABCD选项
15.B
【详解】本题考查的是Python函数。max函数是求最大值。已知L=[72,84,61,35],则max(L)运行结果是84,选项B正确。
16.B
【详解】本题考查Python程序设计相关内容。分析代码段可知,该代码段功能是统计字符串中以小写字母组成的单词的数量。"GUYS:keep on going never give up!"中小写字母组成的单词有6个。故本题答案是B选项。
17.A
【详解】本题考查的是Python循环语句。因为列表 a是互不相等的正整数,故该算法的思想:列表元素与之前最大元素相加后,跟s比较,保证s存放的是两个元素之和的最大值。再去更新最大元素b。故划线处应选填的代码顺序:s=max(s,a[i]+b) 、b=max(b,a[i])。选项A正确。
18.C
【详解】本题考查Python程序。这段程序实现了一个加密算法。它首先创建了一个长度为20的空字符串列表que,然后定义了两个指针head和tail分别指向字符串列表的头部和尾部。接着,程序通过输入函数获取用户输入的字符串,并将其逐个字符加密后存储在que列表中。加密过程是通过将原始字符串的字符按照顺序存储在列表中,然后按照特定规则提取出来,构成新的字符串。具体来说,对于输入的字符串"python",程序的执行过程如下:首先,将字符逐个存储在que列表中:que=['p','y','t','h','o','n','','','','','','','','','','','','','','','']接着,根据特定规则提取字符构成新的字符串s1。根据程序中的规则,如果字符的索引是偶数,则直接将其添加到s1中;如果索引是奇数,则将其添加到que列表的尾部。因此,加密后的字符串s1为"ptoynh"。故答案为:C。
19.C
【详解】本题考查循环结构的相关知识点
顺序结构、选择结构都执行一次,循环结构可以可是实现计算机自动完成重复性的工作。故本题选C选项
20.B
【详解】本题主要考查Python语句执行。实现交换a,b两个变量的值可以是a,b=b,a,也可以是t=a,a=b,b=t,故本题选B选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$