内容正文:
3.3 简单算法及其程序实现同步作业2024—2025学年高中信息技术 浙教版(2019)必修1
一、选择题
1.适合孩子学习的光照是500-1500 1ux,低于500 lux就会造成眼睛疲劳,高于1500 1ux会容易引起炫光,也会视疲劳。设light为光照值,state表示光照的三种状态(合适、偏低和偏高),下列选项不能正确表示以上三种情况的是( )
A.
if 1500>=light>=500:
state= "合适"
elif light<500:
state="偏低"
else:
state="偏高"
B.
if light<500:
state="偏低"
elif light<=1500:
state="合适"
else:
state="偏高"
C.
state="合适"
if light>1500:
state="偏高"
else:
state="偏低"
D.
state="偏高"
if light<500
state="偏低"
elif light<=1500:
state="合适"
A.A B.B C.C D.D
2.有如下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]
3.在Python中,下列程序运行后得到的是( )
sum=0
for x in range(2,100,2):
sum=sum+x
print(sum)
A.2至100的和 B.2至99奇数的和 C.2至100偶数的和 D.2至98偶数的和
4.已知,,当时, 。求的值。解决该问题最为合适的算法是( )
A.枚举算法 B.排序算法 C.查找算法 D.递归算法
5.某Python程序代码如下:
import random
n=input("请输入一串字符")
f=[0]*128
for i in n:
f[ord(i)]+=1
for i in n:
if f[ord(i)]==random.randint(0,1):
print(i,end="")
若输出结果为xyz3,则输入可能是( )
A.yazabcx3 B.auxYZ33 C.axaybbzc3 D.xyaaxbbz3c
6.数组元素a[0]至a[n-1]依次存放着n个数据,现需要将元素a[0]插入在下标为:x(0<x≤n-1)的位置,例如:n为5,数组a为[0,3,4,6,7],x为2,插入操作后a为[3,4,0,6,7]。实现该功能的部分程序段如下:
i=0;temp=a[0]
while i<x:
i+=1
a[x]=temp
则方框中应填入的正确代码为( )
A.a[i+1]=a[i] B.a[i-1]=a[i] C.a[i]=a[i-1] D.a[i]=a[i+1]
7.有如下程序段:
s=['']*len(a)
head=2;q=head;top=-1
while q!=-1:
top+=1
s[top]=a[q][0]
q=a[q][1]
print(s[top-2])
若a=[['a',3],['b',0],['c',1],['d',-1]],则输出的结果为( )
A.a B.b C.c D.d
8.下列赋值语句正确的是( )
A.x+1=x B.x=x+1 C.x=+1 D.x,y,z=1,2
9.如下Python程序段:
s=input(a)
p="";key=3
for ch in s:
if "0"<=ch and ch<="9":
p+=srt((int(ch)+key)%10)
else:
p=ch+p
print(p)
若输入a的值为“GK2023”,则输出p为( )
A.GK3202 B.KG5356 C.GK5356 D.KG2023
10.在Python中,已知A=8,则以下代码执行后输出的结果是( )
if A<=5:
print(A-5)
else:
print(A+10)
A.3 B.5 C.10 D.18
11.以下哪个问题可以用枚举法来求解( )
A.找出100以内同时被5和7整除的所有数
B.给定直角三角形两条边的长,求第三条边的长
C.求两个数的积
D.给定半径,求圆的面积
12.下列伪代码中体现出来的程序算法结构是( )
A.顺序结构 B.循环结构 C.选择结构 D.三种结构都有
13.若要使语句s=s+i执行6次,则程序画线处的语句为( )
s=1
for i in :
s+=i
A.range(1,6) B.range(10,5,-1) C.range(6) D.range(1,9,2)
14.城市出租车按里程收费,小明绘制了收费价格程序的流程图,如下所示,要测试所有程序分支是否正确,以下测试数据中,最恰当的一组是( )
A.2,10,12 B.10,2,6 C.-1,6,10 D.3,11,100
15.(必修)下列说法中,正确的是( )。
A.程序设计语言中的汇编语言包含C语言
B.机器语言不是程序设计语言
C.程序实际上是一组操作的指令或语句的序列,是计算机执行算法的操作步骤
D.程序设计和程序设计语言是同一概念
16.以下4段程序或表达式不能实现两个整数型变量a,b的值交换的是( )
A.
a, b = b, a
B.
t = a
a = b
b = t
C.
a = a + b
b = a – b
a = a – b
D.
if a ! = b:
a = b
b = a
A.A B.B C.C D.D
17.有下列Python程序段:
a=[3,7,8,2,19,10,16,12]
n=len(a)
for i in range(2):
k=i
for j in range(i+1,n):
if a[k]<a[j]:
k=j
if i!=k:
a[i],a[k]=a[k],a[i]
下列说法不正确的是( )
A.程序段执行后,列表a中的元素为[19,16,8,2,3,10,7,12]
B.代码“for i in range(2):”等价于“for i in range(0,2):”
C.程序段执行后,变量k的值为7
D.将代码“if i!=k:”修改为“if k>i:”,不会影响程序的运行结果
18.以下Python程序段用于求100以内所有奇数之和,其中无法实现该功能的是( )
A.
s=0
for i in range(1,100):
s+=i
i=i+2
print(s)
B.
s=0
for i in range(1,101,2):
s+=i
print(s)
C.
s=0;i=1
while i<100:
s=s+i
i=i+2
print(s)
D.
s=1;i=1
while i<99:
i=i+2
s=s+i
print(s)
A.-1 B.0 C.1 D.2
19.有如下Python程序段:
s = 0 ; i = 1
while :
s = s + i
i = i + 2
该程序段运行后,变量s的值等于9,则程序划线处的语句不可能的是( )
A.i < 5 B.i <= 5 C.i < 6 D.i <= 6
20.某商场做促销打折活动,消费金额500元以内打8.8折;大于500元(含500元)且小于1000元打8折;1000元以上(含1000元)打7折。小曲使用Python编写了下面程序,第4行下划线处应填写的代码是( )
A.if B.elif C.else D.while
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查分支语句。C选项先将状态设为“合适”,然后如果光照值高于1500,则将状态设为“偏高”,否则设为“偏低”。这个条件语句只考虑了两种情况,没有考虑到光照值在500到1500之间的情况,因此不正确。故答案为:C。
2.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。
3.D
【详解】本题考查的是Python循环语句。range(起始值,结束值,步长)注意:结束值不包含;步长可省略,默认为1。range(2,100,2)返回的是2至98偶数。故该程序运行后得到的是2至98偶数的和。选项D正确。
4.D
【详解】本题考查算法相关内容。枚举算法通过列举问题所有可能的解,并逐一检查每个解是否满足问题的条件。排序算法是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。查找算法是在大量的信息中寻找一个特定的信息元素的方法,它是计算机应用中常用的基本运算之一。递归算法是指一种通过重复将问题分解为同类的子问题而解决问题的方法。由“ f(n)=2f(n−1)+3f(n−2)”知,该算法为递归算法。故本题答案是D选项。
5.C
【详解】本题考查random模块的综合应用;本题采用了桶计数的方式统计128个ASC11字符,每个字符出现的次数,再用循环再次遍历输入的字符串,若该串中的某个字符出现次数为1次,则有可能输出这个字符(生成的随机数0时则无法输出),所以可以知道,输出结果中的每个字符一定只出现了1次,在C项中,xyz3这四个字符均只出现了1次,故选C。
6.D
【详解】本题考查的是列表插入操作。先将a[0]存储到temp,然后依次将下标为x的之前元素往前移动,最后将temp存储到a[x]中,故方框中应填入的正确代码为:a[i]=a[i+1],选D。
7.B
【详解】本题考查Python列表相关操作。进入循环之前,head=2;q=head;top=-1;第一次进入循环:q=2,top=0,s[0]=a[2][0]=’c’,q= a[2][1]=1,继续;第二次进入循环:q=1,top=1,s[1]=a[1][0]=’b’,q= a[1][1]=0,继续;第三次进入循环:q=0,top=2,s[2]=a[0][0]=’a’,q= a[0][1]=3,继续;第四次进入循环:q=3,top=3,s[3]=a[3][0]=’d’,q= a[3][1]=-1,结束循环。最后输出s[2],即’b’。
8.B
【详解】本题主要考查赋值语句知识点。赋值是把右边的内容赋值到左边,A选项x是不能赋值给左边表达式,C选项正确写法x+=1同x=x+1。D选项三个变量在赋值时少赋了一个值,故本题选B选项。
9.B
【详解】本题考查Python程序分析。这段代码的功能是对输入的字符串进行处理。如果字符是数字,则将其加密(通过加上一个密钥然后取模10),如果字符不是数字,则将其放在结果字符串的前面。依次输入遍历GK2023,处理字母结果为KG,数字2,0,2,3依次加3取余10,结果为5,3,5,6。故正确答案为选项B。
10.D
【详解】本题考查的是Python选择语句。A=8,不满足A<=5,执行 print(A+10),输出8+10=18,故选D。
11.A
【详解】本题考查的是枚举法相关知识。枚举算法通过列举问题所有可能的解,并逐一检查每个解是否满足问题的条件。故选项A正确。
12.C
【详解】本题考查程序结构。这段伪代码中,根据年龄的不同情况进行判断,选择执行不同的输出语句,这体现了选择结构(也叫分支结构),而整个过程是依次按条件判断执行,没有循环过程,也不存在先执行后面的语句再回头执行前面语句的情况,所以主要体现的是选择结构,答案选C。
13.C
【详解】本题考查的是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)。range(1,6)生成1~5共5个序列数,range(10,5,-1)生成10~6共5个序列数,range(6)生成0~5共6个序列数,range(1,9,2)生成1、3、5、7共4个序列数。若要使语句s=s+i执行6次,序列数应为6个,故选C。
14.A
【详解】本题考查流程图相关知识。要测试所有程序分支是否正确,则需要将所有分支都判断一遍。测试的三组数据应该是小于等于3,大于3并且小于等于10以及大于10。故本题最恰当的一组数据是选项A的数据。故本题选A。
15.C
【详解】本题主要考查程序设计知识点。C语言是高级语言,不属于汇编语言,选项A说法错误;机器语言是程序设计语言,选项B说法错误;程序实际上是一组操作的指令或语句的序列,是计算机执行算法的操作步骤,故本题选C选项;程序设计和程序设计语言不是同一概念,选项D说法错误。
16.D
【详解】本题考查的是Python表达式。选项D中,执行后a,b的值都变为b的值,不能实现交换,故选D。
17.C
【详解】本题考查的是Python循环语句。本题是选择排序的变式,只比较两趟,最大的值放在最左边,故程序段执行后,列表a中的元素为[19,16,8,2,3,10,7,12],选项A说法正确;range(2),默认的起始值为0,故选项B说法正确;第二大数字是16,在列表的第6位,故程序段执行后,变量k的值为6,选项C说法错误;从左到右进行比较,如果找到比i位置大的数,则进行交换,故产生交换的条件也可以是k>i,选项D说法正确。
18.A
【详解】本题考查Python程序编写。选项A中range(1,1000)生成1到99数字,依次赋值给i。程序中i=i+2试图改变i的取值,但是for循环时,将i的值又改回到遍历中的数字,故该程序功能计算1累加到99的结果,故无法实现功能,正确答案为A选项。
19.A
【详解】本题考查的是循环语句。由循环体可知s=1+3+5+……,要使变量s=9,则s=1+3+5,即i的值不超过6且要取到5,故循环条件为:i<=5或i<6或i <= 6,选项A正确。
20.B
【详解】本题主要考查Python多分支结构。Python多分支结构格式是if…elif…else,故划线处填elif,故本题选B选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$