内容正文:
第2单元 编程计算2024-2025学年高中信息技术教科版(2019)必修1
一、选择题
1.我国古代著名的数学专著《孙子算经》中有这样一道题:“今有物,不知其数。三三数之,剩二;五五数之,剩三;七七数之,剩二。问:物几何?
请完善以下Python程序,实现:输出1000以内符合上述条件的所有整数及其个数。
①
for i in range(1001):
if i%3==2 ② i%5==3 ③ i%7==2:
s+=1
print(④ )
print("1000以内满足条件的数共有%d个"%s)
要实现题目要求,下列填入的代码完全正确的选项是( )
A.①s=0 ②and ③or ④s B.①s=1 ②or ③and ④i
C.①s=0 ②and ③and ④i D.①s=1000 ②and ③or ④s
2.有如下程序段:
a,b=4,3
if a>=4:
if b<2:
a=a+2
if b>2:
a=a+3
a=a+2
elif a>=9:
a=a+4
else:
a=a+b
运行该程序段后变量 a 的值为( )
A.9 B.13 C.16 D.8
3.如下 Python 程序段:
s="D5u6p@1_2t3B"
num=0
for i in s[::-1]:
if "a"<=i<="z" or "A"<=i<="Z" or "0"<=i<="9":
if "0"<=i<="9":
num=num*10+int(i)
else:
break
print(num)
该部分程序段运行后,变量 num 的值是( )
A.21 B.32 C.56 D.65
4.我们可以里计算机编写一个程序模拟控制交通信号灯:代替完成交警指挥交通的过程,那么计算机解决问题的一般过程为( )
①设计方案②分析问题③编程调试④解决问题⑤提出问题
A.⑤②①③④ B.⑤②③①④ C.⑤①②③④ D.⑤③①②④
5.( )函数将字符型整数转换成整数类型的数值(即整数)
A.input() B.float() C.int() D.print()
6.下列 Python 表达式或部分语句书写不正确的是( )
A.flag = True B.flag= =True C.if flag = True: D.while True:
7.以下描述中最适合用计算机编程来处理的是( )
A.确定放学回家的路线 B.处理一张数码照片
C.计算10000以内的奇数和 D.在因特网上查找歌曲
8.九宫格游戏规则:1至9九个数字,横竖都有3个格,每行、每列、主对角、副对角所有元素之和为15,其中一组数据如列表1ist所示。1ist=[[8,1,6],[3,5,7],[4,9,2]]执行下列python程序,结果仍能构成九宫格数据的是( )
A. B.
C. D.
9.用计算机解决以下问题,与穷举法相比更适合用解析法来解决的有( )。
A.输入整数m、n,输出从m到n之间的质数(素数)。
B.输入三角形三边长,输出这个三角形面积
C.输入一元二次方程的各个系数,输出方程的解。
D.输入三个正整数a、b、c,输出这三个数的最小公约数。
10.运行以下Python程序段后,变量b的值为( )
a,b=6,2
while a!=b:
b=a//b
a=a-b
A.0 B.2 C.1 D.3
11.n个人排成一圈,从某个人开始,按顺时针方向从No.1开始依次编号至No.n。从No.1的人开始顺时针“1,2,3,...,m,1,2,3,...”报数,报到m(m>1)的人退出圈子。这样不断循环下去,输出最后剩下的一个人的初始编号。实现该功能的Python程序段如下:
n=int(input0)
m=int(input0))
a=[]
for i in range(n):
a.append(["No."+str(i+1),(i+1)%n])
head=0;p=head;cnt=1
while p!=a[p][1]:
pre=p
p=a[p][1]
cnt+=1
if cnt==m:
print(a[p][0])
上述程序段中方框处可选代码为
①a[p][1]=a[pre][1] ②a[pre][1] =a[p][1] ③p=a[pre][1] ④p=a[p][1] ⑤cnt=1 ⑥cnt=0
则应填入的代码依次为( )
A.①③⑤ B.②④⑤ C.①③⑥ D.②③⑥
12.下面两组python程序的执行结果分别为( )
A.1 39 B.1 40 C.1 49 D.1 60
13.有如下Python程序段:
w=[12,5,8,9,3,16]
n=len(w);stack=[0]*n
top=-1;k=0;t=25
while top!=-l or k<n:
while t>0 and k<n:
if t>=w[k]:
top+=l;stack[top]=k
t-=w[k]
k+=l
if t==0:
print(stack[:top+1])
k=stack[top];top-=l
t+=w[k]:k+=l
执行该程序段后,输出第一组列表是( )
A.[0,1,2] B.[1,2,3,4] C.[3,5] D.[12,5,8]
14.有如下对分查找程序段
#列表a存放整数升序数据,代码略
key=int(input())
f=[0]*9
i=0
j=8
while i<=j:
m=(i+j)//2
f[m]=1
if a[m]>key:
j=m-1
else:
i=m+1
print(f)
输入待查找数据,执行该程序段后,下列选项中,列表f的值不可能的是( )
A.[0, 0, 0, 0, 1, 1, 1, 0, 0] B.[1, 1, 0, 0, 1, 0, 0, 0, 0]
C.[0, 1, 0, 0, 1, 0, 1, 0, 0] D.[0, 0, 0, 0, 1, 0, 1, 1, 0]
15.有如下Python程序:
import random
a=[0]*10
k=random.randint(1,5)
a[0]=k;n=9
for i in range(1,n+1):
a[i]=a[i-1]+random.randint(1,5)*2
for i in range(n,k,-1):
a[i]=a[i-1]
a[k]=k
执行程序段后,列表a可能的结果是( )
A.[2,6,2,10,17,20,22,26,34,40]
B.[5,7,13,19,21,5,23,25,31,33]
C.[1,3,7,11,21,27,1,37,43,45]
D.[4,10,16,4,20,24,34,40,44,50]
16.关于人工计算、自动工具计算和编程计算三种计算方式,下列说法不正确的是( )。
A.对于简单的计算问题,人工计算的使用成本是三种计算方式中最低的
B.对于复杂的计算问题,通常不采用人工计算来解
C.依据实情,灵活运用三种计算方式将有助于我们提高数据计算的效率
D.由于计算机的日益普及,编程解决计算问题是最方便的
17.有如下Python程序:
import random
a=[0]*6
i=0
while i<6:
a[i]=random. randint (1, 10)
if a[i] in a[0: i]:
i-=1
i+=l
for i in range (6):
if i%2==0 and a[i]>a[i+1]:
a[i], a[i + 1]=a[i+1], a[i]
else:
a[i]+=a[i]%2
print(a)
执行此程序后,数组a中不可能的结果为( )
A.[4, 6, 4, 8, 7, 10] B.[3, 11, 6, 8, 1, 4] C.[1, 4, 4, 8, 6, 8] D.[4, 8, 2, 4, 6, 8]
18.已知一维数组a存储了n个元素(a[0]∼a[n-1]),当前数组长度大于n,要求在索引位置p插入元素key,并保持元素的相对位置不变,实现上述功能的python程序段如下:
#生成数组a,代码略
key=int(input("请输入插入元素值:"))
p=int("input("请输入插入元素位置:"))
for i in range(A ):
B
a[p]=key
有下列语句:
①p,n;②n-1,p-1,-1;③a[i+1]=a[i];④a[i]=a[i-1]
则程序A、B处代码分别是( )
A.①③ B.①④ C.②③ D.②④
19.有如下Python 程序段:
import random
a=[]
for i in range(10):
a.append(random.randint(1,100))
i=0
while i <10:
if i==0:
i=i+1
elif a[i-1]<=a[i]:
①
else:
a[i],a[i-1]=a[i-1],a[i]
②
print(a)
执行该程序段实现了随机生成一个数组,并将其元素递增输出的功能。划线处的代码应该是( )
A.① i+=1 ② i=1 B.① i-=1 ② i=1
C.① i+=1 ② i+=1 D.① i-=1 ② i-=1
20.以下对循环结构及其语句的叙述,错误的是( )
A.程序中某些代码的反复执行称为循环
B.循环结构容易引起系统死机
C.循环结构可以减少源程序重复书写的工作量
D.循环结构的3个要素分别是循环变量、循环体和循环终止条件
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查Python程序。题目要求找出1000以内符合特定条件的所有整数,并计算其个数。根据题意,整数需要满足三个条件:对3取余为2,对5取余为3,对7取余为2,这三个条件需要同时满足,因此需要用and逻辑运算符。初始化计数变量应为0,并在满足条件时输出该整数。因此,填入的代码应该是:①s=0;②and;③and;④i。故答案为:C。
2.A
【详解】本题考查Python程序。初始条件是:a=4,b=3。第一个条件是 a >= 4,这是满足的,所以进入第一个条件分支。在第一个条件分支中,有两个嵌套的条件:if b < 2 不成立,因为b=3,所以不执行这个条件下的语句。if b > 2 成立,因为b=3,所以执行 a=a+3,a变成7。最后,执行 a=a+2,a变成9。所以,最终程序运行后,变量a的值为9。故答案为A选项。
3.B
【详解】本题主要考查Python程序的执行。分析程序,s="D5u6p@1_2t3B",for i in s[::-1],变量i是逆着从字符串s中取字符,如果i是字母或数字,则接着判断i是否是数字,如果i是数字则执行num=num*10+int(i);如果i不是字母或数字,则退出循环。当i是“_”时,不满足if判断条件,退出循环,此时num=32,故本题选B选项。
4.A
【详解】本题主要考查计算机解决问题的步骤。计算机解决问题的一般步骤是:提出问题→分析问题→设计方案→编程调试→解决问题,故本题选A选项。
5.C
【详解】本题考查Python程序设计相关内容。input()函数用于提示并获取终端用户输入内容,一般获取的输入内容为字符串类型。float()函数用于将整数和字符串转换成浮点数。int()函数用于将一个字符串或数字转换为整型。print()是一个输出函数,一般用于向标准输出设备按规定格式输出信息。故本题答案是C选项。
6.C
【详解】本题考查Python程序设计相关内容。A选项,flag = True为赋值表达式,选项正确。B选项,flag= =True为关系表达式,选项正确。C选项,if为选择结构,后跟关系表达式或逻辑表达式,但flag = True为赋值表达式,选项错误。D选项,while为循环结构,后跟关系表达式或逻辑表达式,选项正确。故本题答案是C选项。
7.C
【详解】本题主要考查计算机编程解决问题。计算10000以内的奇数和适合计算机编程通过循环结构来处理,故本题选C选项。
8.BCD
【详解】本题考查的是Python循环语句。能够保证每行、每列、主对角、副对角所有元素之和为15,list1[x][y]=list[y][x]可以实现,同样list1[x][y]=list[x][::-1]也可以实现,list1[x][y]=list[y][2-x]也可以实现。故本题应选BCD。
9.BC
【详解】本题主要考查计算机解决问题。输入整数m、n,输出从m到n之间的质数(素数)和输入三个正整数a、b、c,输出这三个数的最小公约数,适合用穷举法。输入三角形三边长,输出这个三角形面积和输入一元二次方程的各个系数,输出方程的解,适合用解析法,故本题选BC选项。
10.D
【详解】本题考查的是Python条件循环。a=6,b=2,第一次循环,b=a//b=3,a=a-b=3-2=1;第二遍循环,b=a//b=0,a=a-b=1-1=0,循环结束,输出b的值是3,故本题选D选项。
11.B
【详解】本题考查Python程序设计相关内容。本题描述的是约瑟夫环算法,采用循环链表解决题目要求。分析程序段,cnt为计数器,每报数一个,计数器cnt加1,若cnt等于指定的m,则在循环链表中将该节点前驱节点与后继节点连接,删除该节点,且cnt重置为1,其代码为:a[pre][1] =a[p][1];p=a[p][1];cnt=1。故本题答案是B选项。
12.C
【详解】本题主要考查Python程序的执行。第一个程序,执行一次if语句,此时s=0+1=1,执行break退出for循环,故执行结果是1;第二个程序,当s<40时,执行if语句后,执行continue进入下一轮循环,故s=s+i=0+1+3+5+8+2+4+7+9+10=49,以后的循环不再执行if语句,故执行结果是49,故本题选C选项。
13.A
【详解】本题主要考查Python程序的执行。题干要输出第一组列表,因此只需要分析外层第一次循环即可,内循环中,满足if判断条件,top=1,stack[0]=k=0,t=25-12=13,k=k+1=1,同理可以得到stack[1]=1,stack[2]=2,因此执行该程序段后,输出第一组列表是[0,1,2],故本题选A选项。
14.C
【详解】本题主要考查对分查找算法。变量m是依次查找的下标索引值,第一次循环,m=4,f[4]=1,根据二叉树查找规则,往后查找只会在m=4的左边或右边进行查找,不会出现选项C中f[1]和f[6]同时为1的情况,故本题选C选项。
15.B
【详解】本题主要考查Python程序的执行。阅读程序可知,程序第一个for循环实现的使列表中为一个递增列表,并且相邻元素差最大为10,程序第二个for循环将列表分为两部分,以a[k]为分界点,列表下标为0和k为列表两个最小元素且a[0]=a[k],然后其他位置按照递增进行排序,阅读选项可知,选项 B 符合题意。故选B。
16.D
【详解】本题主要考查计算机解决问题。对于简单的计算问题,人工计算的使用成本是最低的;对于复杂的计算问题,通常不采用人工计算来解;依据实情,灵活运用三种计算方式将有助于我们提高数据计算的效率;编程解决计算问题不一定是最方便的,要依据实情,灵活运用三种计算方式。故本题选D选项。
17.B
【详解】本题考查的是Python调试与运行。由a[i]=random. randint (1, 10)可知随机生成a[i]的值范围1~10,选项B中a[1]=11,故其只能通过 a[i]+=a[i]%2执行得到,执行该语句后a[i]的值范围2~10,不可能为11。故选B。
18.C
【详解】本题考查Python程序。在插入元素时,需要从数组末尾开始,将元素逐个向后移动,为要插入的元素腾出位置。A处应是循环的范围,即从最后一个元素到要插入位置的前一个元素,所以是②n-1,p-1,-1。B处是在循环中进行元素后移的操作,即把当前位置的元素赋值给下一个位置,所以是③a[i+1]=a[i]。故答案为:C。
19.A
【详解】本题主要考查Python程序执行与调试。分析程序,该程序段实现了随机生成一个数组,并将其元素递增输出的功能,如果a[i-1]<=a[i],满足升序,不用交换,i递增,继续下一个元素的比较,即①处填i+=1;如果不满足a[i-1]<=a[i],则交换以完成升序,同时i赋值为1从头开始继续比较判断,即②处填i=1,故本题选A选项。
20.B
【详解】本题考查的是循环结构。循环结构表示程序反复执行某个或某些操作,直到判断条件为假时才可以终止循环,并不容易引起系统死机。故本题应选B。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$