内容正文:
2.3 周而复始的循环2024-2025学年高中信息技术教科版(2019)必修1
一、选择题
1.输入数字2022,以下程序的输出结果是( )
a=int(input("请输入一个正整数:"))
sum=0
while a>0:
sum =sum+a%10
a=a//10
print(sum)
A.5 B.2021 C.2022 D.6
2.有如下Python程序段:
from random import randint
s=[″C++″,″Java″,″VB″,″Pascal″,″C″,″Python″]
for i in range(2):
k=randint(0,2)*2
s=s[:k]+s[k+1:]
print(s)
执行该程序段后,变量s的值不可能是( )
A.[″Java″,″VB″,″Pascal″,″C″] B.[″C++″,″Java″,″C″,″Python″]
C.[″C++″,″VB″,″Pascal″,″Python″] D.[″C++″,″Java″,″Pascal″,″Python″]
3.设有以下程序段,循环将执行( )
i=10
while i < 10 :
i-= 1
A.10次 B.0次 C.无限次 D.1次
4.某算法程序段如下:
Dim s1 As String, s2 As String, ch As String
Const code ="@*()&#"
s1 = Text1.Text
For i = 1 To Len(s1)
ch = Mid(s1, i, 1)
If ch >= "a" And ch <= "z" Then
t=(Asc(ch)-65+i)Mod7
s2 = Mid(code, t+1, 1)+ s2
Else
s2= s2+ ch
End If
Next i
Text2.Text = s2
若text1中输入字符“AbCd”,则text2中输出的是( )
A.AC^@ B.^@AC C.^<@& D.A^C@
5.在Python中运行下列程序的正确结果是( )。
s=0
for i in range(10):
if i%2==0:
s-=i
else:
s+=i
print(s)
A.4 B.5 C.6 D.7
6.以下循环语句的循环体执行次数为10次的是( )
A.for i in range(10)
B.for i in range(1,10)
C.for i in range(2,20,2)
D.for i in range(10,21)
7.读以下代码段,对其运行结果说法正确的是( )
A.1,2运行结果均输出9 B.1,3运行结果相同。2,4运行结果相同
C.2,3运行结果均为换行输出1 4 9 D.1,4运行结果相同2,3运行结果相同
8.某算法的流程图如图所示,执行该流程后,输出sum,n的值分别是( )
A.28,10 B.280,10 C.280,13 D.28,13
9.以下代码的是作用是绘制什么图形( )
A.三角形 B.正方形 C.五角星 D.正五边形
10.下列关于Python循环语句的说法错误的是( )
A.for循环和while循环不能相互嵌套 B.所有的for循环都可以用while循环改写
C.for循环一般用于循环次数已知的情况 D.循环语句的结束条件设置不合理会造成无限循环
11.有如下python程序段:
s=0
for i in range(101):
s+=i
print("s=",s)
循环变量i的终值是( )
A.101 B.100 C.0 D.1
12.某校高二技术学考模拟考试成绩存放在“成绩.xlsx”中,徐老师编写了一个python程序,读取excel文件中的考试成绩,并按下图中的规则对成绩划分等第。若要在划线②处填入代码,下列四个选项中正确的是( )
程序代码如下:
import pandas as pd
def grade (s): #返回成绩对应的等第
①
df=pd. read_excel("技术成绩. xlsx")
level=[]
for i in df. index:
lev= grade (____②________) #取出技术成绩作为参数
level. append(lev)
df['等级']=level
print (df)
A.df.at[i, "技术"] B.df[i][ "技术"] C.df.at["技术", i] D.df["技术"]
13.某 Python 程序如下:
def encode(msg,key) :
result=""
for i in range(0,len(msg)) :
c=msg[i]
if "a"<=c<="z":
result=chr((ord(c)+key-ord("a"))%26+ord("a"))+result
elif "0"<=c<="9" :
result=result+chr((ord(c)-key-ord("0"))%10+ord("0"))
return result
msg=input("请输入明文:")
key=int(input("请输入密钥:"))
re=encode(msg,key)
print(re)
程序运行后,输入 msg 的值为“1a2b3c” ,key=2,输出的结果是( )
A.edc901 B.edc345 C.9c0d1e D.3c4d5e
14.有以下程序段:
程序运行后输出的结果为:( )
A.1 no 2 no 3 no B.1 2 3 no C.1 "no" 2 "no" 3 "no" D.1 2 3 "no"
15.以下对Python循环语句的描述错误的是 ( )
A.循环语句的结束条件设置不合理会造成无限循环 B.所有的for循环都可以用while循环改写
C.for循环一般用于循环次数已知的情况 D.for循环和while循环不能相互嵌套
16.下列Python程序无法执行,原因是它违反了算法的什么特征( )。
for i in range(5):
print(10/i)
A.有穷性 B.确定性 C.唯一性 D.可行性
17.有如下Python程序段:
s="bbccbcc";key="bc";new="cb"
i=0
while i<=len (s)-len (key):
if s[i:i+len(key)]==key:
s=s[:i]+new+s[i+len(key):]
i=0
else:
i=i+1
执行该程序段后,变量s的值为( )
A.ccbbcbc B.cccbbbb C.ccccbbb D.ccccbbbb
18.下面关于死循环的说法中,只有( )是正确的。
A.不存在一种算法,对任何一个程序及相应的输入数据,都可以判断是否会出现死循环,因而,任何编译系统都不做死循环检验
B.有些编译系统可以检测出死循环
C.死循环属于语法错误,既然编译系统能检查各种语法错误,当然也应该能检查出死循环
D.死循环与多进程中出现的“死锁”差不多,而死锁是可以检测的,因而,死循环也可以检测的
19.下列代码的输出结果是( )
for i in range(1,11,2):
print(i,end="")
A.1、3、5、7、9 B.3、5、7、9
C.1、3、5、7、9、10 D.1、3、5、7、9、11
20.在Python中,右侧代码执行后输出的结果是( )
s=10
i=1
while s>0:
s=s-i
i=i+1
print(i)
A.0 B.2 C.4 D.5
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现对输入的正整数a的各个位进行求和,故输出结果sum=2+0+2+2=6,故本题选D选项。
2.C
【详解】本题考查Python程序的调试。random.randint(a,b)用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。k=randint(0,2)*2,k取值0、2、4。i取值0、1,即循环2次。第一次循环中,当k=0时,s=['Java', 'VB', 'Pascal', 'C', 'Python'];当k=2时,s=['C++', 'Java', 'Pascal', 'C', 'Python'];当k=4时,s=['C++', 'Java', 'VB', 'Pascal', 'Python'],即每次循环去掉索引为k的元素。第二次循环中,s=['Java', 'VB', 'Pascal', 'C', 'Python'],当k=0、2、4,对应的s依次是['VB', 'Pascal', 'C', 'Python']、['Java', 'VB', 'C', 'Python']、['Java', 'VB', 'Pascal', 'C'];s=['C++', 'Java', 'Pascal', 'C', 'Python'],当k=0、2、4,对应的s依次是['Java', 'Pascal', 'C', 'Python']、['C++', 'Java', 'C', 'Python']、['C++', 'Java', 'Pascal', 'C'];s=['C++', 'Java', 'VB', 'Pascal', 'Python'],当k=0、2、4,对应的s依次是[ 'Java', 'VB', 'Pascal', 'Python']、['C++', 'Java', 'Pascal', 'Python']、['C++', 'Java', 'VB', 'Pascal']。故选C。
3.B
【详解】本题主要考查Python循环结构。i=10,不满足while循环条件,因此循环将执行0次,故本题选B选项。
4.B
【详解】本题主要考查VB中程序执行。程序显示碰到小写字母,从code里取出一个字符,倒序,其它字符顺序,所以2个大写字母,2个小写字母,大写放后面,小写取符号放前面,因此B选项正确。
【点睛】
5.B
【详解】本题考查的是Python循环及选择语句。range(10)生产的[0,9]序列数,由 if i%2==0语句可知偶数用减,奇数用加,故s=1-2+3-4+5-6+7-8+9=5,故本题应选B。
6.A
【详解】本题主要考查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)。for i in range(10)执行次数为10次,选项B、C、D的执行次数分别是9、9、11,故本题选A选项。
7.D
【详解】本题考查程序分析。
第一步,通过缩进(行前空格),判断层次关系(下图各内框)。
①④print(s)在循环内,即每一个循环都要执行-遍print(s),输出s
②③print(s)在循环外,即循环结束后才会执行一次print(s),输出s
第二步,判断i所处列表
range(起始,结束,步长)
①②range(1,7,2)相当于列表[1,3,5](注意不包括7)
四个图的i都是枚举列表[1,3,5],也就是都要循环3遍
第三步,模拟运行输出结果
根据上述分析:
①换行输出1 4 9
②只输出一次9
③只输出一次9
④换行输出1 4 9
故选择D。
8.C
【详解】本题考查程序分析。该程序运行过程:
初始:sum=1,n=1
1<100成立,执行sum=sum*n=1*1=1,n=n+3=1+3=4;
1<100成立,执行sum=sum*n=1*4=4,n=n+3=4+3=7;
4<100成立,执行sum=sum*n=4*7=28,n=n+3=7+3=10;
28<100成立,执行sum=sum*n=28*10=280,n=n+3=710+3=13;
280<100不成立,输出sum为280,n为13
故正确答案为选项C。
9.D
【详解】本题主要考查Python代码。该代码用于绘制图形,forward用于绘制向前为长度100的直线,left为角度旋转72度,循环5次,就可以得到正五边形,故本题选D。
10.A
【详解】本题考查Python循环结构的描述。for循环和while循环可以相互嵌套。故选A。
11.B
【详解】本题主要考查Python循环结构。由代码“for i in range(101):”可知变量i的范围是0~100,故循环变量i的终值是100,选B选项。
12.A
【详解】本题主要考查Python程序的综合应用。df.at的用法作用:获取某个位置的值,例如,获取第0行,第a列的值,即:index=0,columns='a',data = df.at[0, 'a']。此处取出技术成绩作为参数,故填df.at[i, "技术"],选A选项。
13.A
【详解】本题考查的是Python循环语句及自定义函数。由if语句可知,如果是小写字母则后移key位,并放在字符串前端;由elif语句可知,如果是数字,则前移key位,并放在字符串的后端。程序运行后,输入 msg 的值为“1a2b3c” ,key=2;字母后移2位后edc,数字前移2位后901,组合后为:edc901。选项A正确。
14.A
【详解】本题主要考查Python程序的执行。第一个输出语句是输出value的值,第二个输出语句是将字符串no原样输出,故运行结果是1 no 2 no 3 no,故本题选A选项。
15.D
【详解】本题考查Python循环结构的描述。for循环和while循环可以相互嵌套。故选D。
16.D
【详解】本题主要考查Python程序及算法特征。变量i的范围是从0~4,当i=0时,执行10/i会出现分母为0的错误,违反了算法的可行性,故本题选D选项。
17.C
【详解】本题考查的是Python循环语句。阅读程序可知,该程序的功能是循环将字符串s中的字符"bc"替换成"cb",直到字符串中没有"bc"。最终的结果是字符串s中前部分字符全为"c",后部分全为"b",替换过程不会增加每个字符的个数。故本题应选C。
18.A
【详解】本题主要考查循环的描述。死循环或称为无限循环,是指程序的控制流程一直在重复运行某一段代码,无法结束的情形,其原因可能是因为程序中的循环没有设结束循环条件,或是结束循环的条件不可能成立等。以选项 A 中,不存在一种算法,对任何一个程序及相应的输入数据,都可以判断是否会出现死循环,因而,任何编译系统都不做死循环检验,说法正确。故选: A 。
19.A
【详解】本题主要考查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)。因此输出结果是1、3、5、7、9,故本题选A选项。
20.D
【详解】本题主要考查Python程序的执行。变量i依次取1、2、3、4……,循环条件是s>0,循环体是s=s-i,故循环结束时,s=s-i=10-1-2-3-4=0,此时i=i+1=5,循环结束,故右侧代码执行后输出的结果是5,故本题选D选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$