内容正文:
第四章程序设计基础� 2023—2024学年高中信息技术粤教版(2019)必修1
1.【加试题】某程序的部分代码如下:
Dim a(1 to 8) As Integer
Dim i As Integer ,k As Integer,key As Integer
Key=Val(Tet1.Text)
For i=1 to 8
If a(i)= key Then k=i
Next i
数组元素a(1)到a(8)的数据依次为“6、68、9、25、56、67、25、11”,查找元素key为25,则程序执行后,变量k的值为( )
A.1 B.4 C.7 D.8
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.以下Python程序的输出结果是( )
x=4
x+=2
if x>6:
x=x+1
x=x+2
print(x)
A.9 B.8 C.7 D.6
4.下面表达运行结果是( )
1 + 2 + 3*5/10 + 2**3
A.12 B.12.5 C.13 D.13.5
5.有如下Python程序段:
import random
a=[5]*5
i=1
while i<=4:
a[i]=a[i-1]-random.randint(0,1)
#random.randint(a,b)随机生成一个[a,b]范围内的整数
i+=1
print(a)
执行该程序段后,输出的结果可能是( )
A.[1,2,3,4,5] B.[5,5,4,3,2] C.[4,3,2,0,-1] D.[5,3,1,1,1]
6.元旦活动,为了提高全班同学的参与感,班长决定在节目表演间隙加入游戏环节,参与游戏的同学名单由随机点名小程序随机生成,如图,是班长设计的随机点名小程序的算法。结合材料内容,完成小题。
names=存储全班学生的名字
f='yes'
while(f≠'no'): #当输入'no'时,点名结束
n=统计当前学生总人数
i=随机生成一个学生序号
print(显示:序号为i的学生名字)
names. remove(将被点名的学生从names中移除)
if n=1: #当前总人数是否为1
print(显示:所有同学均已全部参与!)
break #跳出循环
print(显示:是否继续?输入no退出!)
f=input() #用户输入“yes”或“no”
print(显示:点名结束)
在Python语言中,能实现显示“请输入‘yes'或'no'”,并要求输入数据的函数是( )
A.length函数 B.print()函数 C.int()函数 D.input()函数
7.下面程序的运行结果是( )。
>>> list1=[a,3,b,10]
>>> del list1[1:3]
>>> print(list1)
A.[3, 10] B.[a, 10] C.[b, 10] D.[10]
8.下面的程序段运行后的结果为( )
s=1
for i in range(1,6,2):
s=s+i
print(s)
A.15 B.10 C.12 D.9
9.已知"0"的ASCII码为48,下列表达式中,可以随机生成"0"~"9"的有( )
A.random. choice("0123456789") B.random. choice(range(0,10))
C.chr(random. randint(0,9)+48) D.chr(random. randint(48,58))
10.有如下 VB 程序段:
Const n = 10
Dim a(1 To n) As Integer
Dim mid As Integer, L As Integer, R As Integer Randomize
a(1) = 10
For i = 2 To n
a(i) = a(i - 1) +Int(Rnd * 2) + 1
Next i
c = 0: L = 1: R = n: flag = False: Key = 11
Do While L <= R And Not flag
mid = Int((L + R) / 2 + 0.5)
c = c + 1
If a(mid) = Key Then
flag = True
ElseIf a(mid) > Key Then
R = mid - 1
Else
L = mid + 1
END If
Loop
执行该程序段后,变量 c 可能的值是( )
A.1 或 2 B.2 或 3 C.3 或 4 D.4 或 2
11.以下程序是利用二分查找列表中数字14,程序运行结果是( )。
left=0
right=12
Is=[7,14,18,21,23,29,31,35,38,42,46,49,52] #列表索引号从0开始
x=14
step=0
while left<= right:
step= step+1
mid= (left+right)//2
if Is[mid]>x:
right= mid-1
elif Is[mid]<x:
left=mid+1
else:
break
print("查了",step,"次")
A.查了3次 B.查了4次 C.查了5次 D.查了6次
12.从下列程序段可以看出,该程序的基本结构属于( )
A.顺序结构 B.分支结构 C.选择结构 D.循环结构
13.>>>"23"+"4"*3输出结果是( ).
A.'23444' B.'234' C.'2344' D.'234444'
14.下列有关pandas-DataFrame的说法错误的是( )
A.是一种二维数据结构 B.由1个索引列和若干个数据列组成
C.同一个DataFrame对象的数据列类型必须相同 D.可看作共享同1个index的Series集合
15.在Python程序中,已知X=2,Y=4,当执行句Y+=X**3后,Y的值是( )
A.12 B.10 C.16 D.8
16.有如下Python程序段:
st=[0]*10
cnt,top=0,-1
s=input( )
for i in range(0,len(s),2):
t=s[i]
n=int(s[i+1])
if t=='A':
for j in range(n):
top+=1
st[top]=cnt
cnt+=1
elif t==’P’:
while top!=-1 and n>0:
top-=1
n-=1
print(st[0:top+1])
若输入s的值为"A1P2A3P2A2",则程序的输出结果是( )
A.[5,6] B.[2,5,6] C.[4,5] D.[1,4,5]
17.我国普遍采用EAN13条形码,它由13位数字组成,前3位表示国家,如图所示,条形码的前3位“690”表示中国大陆地区。若用字符串s存储条形码,则要获取“国家代码”的python表达式为( )
A.s[-13:-10:-1] B.s[-13:-10]
C.s[1:4] D.s[0:2]
18.有如下VB程序段:
Dim x As Long,i,y As Integer
Dim Ans,t As Long
x=123
Do While x > 0
y=x Mod 10
t=1
For i=1 To y
t=t * y
Next i
ans=ans+t
x=x \ 10
Loop
程序运行后,变量ans的值是( )
A.14 B.32 C.123 D.321
19.小明编写好解密程序后,调试运行时,程序没有报错且能顺利运行,但不能正确解密,造成这个结果的原因是( )
A.解密算法逻辑错误 B.程序语句语法错误
C.程序过期了 D.程序设计窗口配置不对
20.若a是个三位数,要取出a十位数上的数字,以下叙述正确的是 。
A.int (int (a / 10)/10) B.int(a % 10 / 10)
C.a % 100 % 10 D.int(a/10) % 10
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题主要考查查找算法。key=25,当a(i)= key时,执行k=i,a(4)=a(7)=25,故程序执行后,变量k的值为7,故本题选C选项。
2.C
【详解】本题考查Python程序进行图像处理。待处理图像的文件名为“chenchen.jpg”;处理后的图像像素数不变;将加框处语句中的“>”改为“<=”,则处理后的图像中黑白色将互换;颜色灰度值的范围是0-255,如果 img[i,j]>188,则将188以上像素处理成白色,反之处理成黑色,以188为分界线,而黑色就会偏多,因此将加框处语句中128改为188,则处理后图像中的黑色部分将增多。故选C。
3.B
【详解】本题主要考查Python程序执行。x=4,x+=2=6,不满足if判断条件,执行x=x+2=8,输出x值为8,故本题选B选项。
4.B
【详解】本题主要考查Python表达式的运算。**是幂运算,1 + 2 + 3*5/10 + 2**3=3+15/10+8=3+1.5+8=12.5,故本题选B选项。
5.B
【详解】本题主要考查Python程序的执行与调试。random.randint(a,b)随机生成一个[a,b]范围内的整数,random.randint(0,1)随机生成0或者1,由代码“a[i]=a[i-1]-random.randint(0,1)”可知,前面的元素值比后面的元素值大0或1,由选项可知,输出的结果可能是[5,5,4,3,2],故本题选B选项。
6.D
【详解】本题主要考查Python常见函数的描述。在Python语言中,length函数用来获取一个字符串、列表、元组、字典等数据类型的长度;print()函数是输出打印函数;int()函数用于将一个字符串或数字转换为整型;能实现显示“请输入‘yes'或'no'”,并要求输入数据的函数是input()函数,故本题选D选项。
7.B
【详解】本题主要考查Python列表。列表下标是从0开始,del list1[1:3]表示删除列表1索引1、2的元素,即删除3和b,则删除后,list1=[a,10],故本题选B选项。
8.B
【详解】本题主要考查程序的运行。for循环中,变量i的变化是1,3,5,7,当i=7时退出循环,此时s的值为,s=1+1+3+5=10,故本题选B选项。
9.AC
【详解】本题主要考查Python随机函数的应用。random. choice从一个数组中选择一个数据并返回;random.randint(a,b)用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。已知"0"的ASCII码为48,可以随机生成"0"~"9"的有:random. choice("0123456789")和chr(random. randint(0,9)+48),故本题选AC选项。
10.C
【详解】本题考查VB程序段。由a(i) = a(i - 1) +Int(Rnd * 2) +1可知。后一项为前一项加上1或者2。a(1)=10,则a(2)=11,或a(2)=12。若a(2)=11,key=11,下方对分查找执行3次可以找到,c=3。若a(2)=12,则key=11数组中不存在,无法找到,c=4。故本题选C。
11.B
【详解】本题主要考查二分查找及Python程序实现。分析程序可知,查找过程分别是:31、18、7、14,故查找了4次,故本题选B选项。
12.D
【详解】本题考查程序结构相关内容。计算机程序基本控制结构有:顺序结构、分支(选择)结构、循环结构。该程序段的基本结构是循环结构。故本题答案是D选项。
13.A
【详解】本题主要考查Python字符串运算。"4"*3="444",故"23"+"444"="23444",故本题选A选项。
14.C
【详解】本题考查数据类型与表达式。DataFrame 是一种二维数据结构,可以看作是一个表格,有行和列,选项A说法正确;DataFrame 由一个索引列(通常是行索引)和若干个数据列组成,选项B说法正确;同一个DataFrame对象的数据列类型可以不相同,有整数类型的列、字符串类型的列和浮点类型的列等,选项C说法错误;DataFrame 可以看作是一组共享相同索引的 Series 对象的集合,选项D说法正确。故选:C。
15.A
【详解】本题主要考查Python表达式的运算。已知X=2,Y=4,语句Y+=X**3等价于Y=Y+X**3=4+2**3=4+8=12,故本题选A选项。
16.D
【详解】本题主要考查Python程序的执行。分析程序可知,程序执行过程如下:
第一遍循环,i=0,t=s[0]='A',n=int(s[1])=1,内层for循环执行完,top=0,st[0]=0,cnt=1;
第二遍循环,i=2,t=s[0]='P',n=int(s[3])=2,内层while循环执行完,top=-1,n=1;
第三遍循环,i=4,t=s[0]='A',n=int(s[5])=3,内层for循环执行完,top=2,cnt=4,st[0]=1,st[1]=2,st[2]=3;
第四遍循环,i=6,t=s[0]='P',n=int(s[7])=2,内层while循环执行完,top=0,n=0;
第五遍循环,i=8,t=s[0]='A',n=int(s[9])=2,内层for循环执行完,top=2,cnt=6,st[0]=1,st[1]=4,st[2]=5;
循环结束,执行st[0:top+1]=[1,4,5],故本题选D选项。
17.B
【详解】本题主要考查Python表达式。切片操作基本表达式:object[start_index:end_index:step],step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。start_index:表示起始索引(包含该索引对应值),该参数省略时,表示从对象“端点”开始取值。end_index:表示终止索引(不包含该索引对应值),该参数省略时,表示一直取到数据“端点”。我国普遍采用EAN13条形码,它由13位数字组成,前3位表示国家,如图所示,条形码的前3位“690”表示中国大陆地区。若用字符串s存储条形码,则要获取“国家代码”的python表达式为s[-13:-10]或s[0:3],故本题选B选项。
18.B
【详解】本题主要考查VB程序的执行。x=123,第一遍循环y=123 mod 10=3,t=1,for循环执行完,t=27,ans=ans+t=27,x=x\10=12;第二遍循环,y=12 mod 10=2,t=1,for循环执行完,t=4,ans=ans+t=27+4=31,x=x\10=1;第三遍循环,y=1 mod 10=1,t=1,for循环执行完,t=1,ans=ans+t=31+1=32,x=x\10=0,循环结束,故程序运行后,变量ans的值是32,故本题选B选项。
19.A
【详解】本题考查程序调试相关知识点
程序没有报错且能顺利运行,说明程序语句语法没有错误,程序没有过期,程序设计窗口配置正确。故本题选A选项
20.D
【详解】本题主要考查Python表达式。若a是个三位数,要取出a十位数上的数字,可以先整除10,再对10取余,或先对100取余,再整除10,对应表达式分别是int(a/10) % 10、int((a%100)/10),故本题选D选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$