内容正文:
高中信息技术教科版(2019)2.3 周而复始的循环
一、选择题
1.元旦活动,为了提高全班同学的参与感,班长决定在节目表演间隙加入游戏环节,参与游戏的同学名单由随机点名小程序随机生成,如图,是班长设计的随机点名小程序的算法。结合材料内容,完成小题。
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(显示:点名结束)
图示中用“While语句”通常用于描述重复执行某段算法的问题,是程序设计中的( )
A.顺序结构 B.选择结构 C.循环结构 D.树形结构
2.下列程序的功能是求1~x之间所有5的倍效之和
x=int(input("输入数字x:")
i=1
s=0
while i<=x:
if ① :
s=s+i
print(i,end=",")
②
print("s=",s)
则划线处应填入的语句是( )
A.①i%5==0 ②i=i+1
B.①i//5==0 ②i=i+1
C.①i%5==0 ②i=i+2
D.①i%5==0 ②i=i+3
3.关于Python的for循环,以下描述正确的是( )
A.在循环体内可以使用循环变量参与运算
B.in后面可以是列表、字典
C.可以没有循环体
D.可以使用break语句结束循环
4.以下程序的输出结果是( )
for i in range(10):
print(i)
A.依次输出1到10 B.输出1加到10的和
C.输出9 D.依次输出0到9
5.下面代码运行结果是()。
a, b=2,1
while a>=b:
b=a*b
a=2*a
print(a, b)
A.4 2 B.16 64 C.8 8 D.2 1
6.有如下python程序段:
for i in range(100,0,-1):
flag=True
m=i
for j in range(len(a)-1,-1,-1):
if m % 2!=a[j]:
flag=False
m//=2
if flag:
ans=i
break
print(ans)
已知列表a=[1,0,0,0,1,0,1],程序运行后,变量ans的值是( )
A.46 B.58 C.69 D.81
7.如下图,要使该段程序重复执行3次,则在①处应该填什么?( )
A.i=3 B.i<2 C.i<=3 D.i<3
8.以下程序的输出结果是( )
def f(n):
s=""
while n>0:
s=str(n%2)+s
n=n//2
return s
print(f(10))
A.1001 B.1010 C.1011 D.1101
9.下列Python程序的运行结果为( )
1 x=[ '偶数','奇数']
2 for i in range (3):
3 print (x[i%2])
A.
>>>%Run
偶数
奇数
偶数
B.
>>>%Run
奇数
偶数
奇数
C.
>>>%Run
偶数
偶数
奇数
D.
>>>%Run
奇数
奇数
偶数
A.A B.B C.C D.D
10.下列程序的输出结果是( )
a=[2,1,3,4,5]
c=0
for i in range(2,4):
if a [i-2]+a[i-1]==a[i]:
c+=1
print(c)
A.1 B.2 C.3 D.4
11.输入名字,循环输出100次爱技术,图中代码有几处错误:( )
A.3 B.4 C.5 D.6
12.下列Python程序输出的结果是( )
x=2
while x!=4:
x=x+1
print("x的值是",x)
A.2 B.4 C.x的值是2 D.x的值是4
13.我国古代数学家张丘建在《算经》一书中提出了如下的数学问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何?用Python编写程序如下:
for x in range(0,21):
for y in range(0,34):
方框内代码可以为:( )
A.
B.
C.
D.
14.某算法的部分流程图如图所示,若输入n的值为3,执行该部分流程,则输出的结果是( )
A.0011 B.1100 C.011 D.11
15.以下对Python循环语句的描述错误的是 ( )
A.循环语句的结束条件设置不合理会造成无限循环 B.所有的for循环都可以用while循环改写
C.for循环一般用于循环次数已知的情况 D.for循环和while循环不能相互嵌套
二、填空题
16.阅读下列程序,写出运行结果。
程序运行后输入6
运行输出结果是:
17.阅读下列程序,写出运行结果。
程序运行后输出结果是:
18.下列程序的作用是 。
sum=0
for i in range( 2,101,2):
sum +=i
print( sum)
三、判断题
19.下列程序段中,赋值语句s=s+i被重复执行了4次。
s=0
For i in range(3,10,2):
s=s+i ( )
四、操作题
20.小明在纸上沿x轴方向依次画了若干条垂直于x轴的线段,相邻两条线段的间距均为1个单位。任意两条线段可围成一个矩形,矩形面积为两条线段中较短的线段长度乘以这两条线段的距离。现要找出面积最大的矩形及围成此矩形的两条线段的编号。
如图a所示,有5条编号为1~5的线段,长度依次为3、2、4、5、1,图b图c是其中的两种方案,在图b方案中,3号线段与4号线段可围成面积为4 (1*4)的矩形,在图c方案中,1号线段与4号线段可围成面积为9(3*3)的矩形。编写Python程序,找出面积最大的矩形,并输出其位置和面积。
(1)若线段长度依次为“1,2,4,3,6,8”,则面积最大的矩形的面积为 。
(2)实现上述功能的Python 代码如下,请在划线处填上合适的代码。
#按顺序输入每条线段的长度,并存储在列表lst中,代码略
left = 0
right = len(1st)-1
maxarea = 0
while ① :
if lst [left] < lst[right]:
long=lst [left]
else:
long=lst [right]
②
if maxarea < area:
maxarea=area
i, j=left+1, right+1
if lst [left] < lst[right]:
left+=1
else:
③
print("线段编号为: ", i, j,",面积为: ", maxarea)
五、简答题
21.说明在 Python 中如何实现一个简单的循环结构。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
2.A
3.ABCD
4.D
5.B
6.C
7.D
8.B
9.A
10.B
11.C
12.D
13.ABC
14.A
15.D
16.8
17.30
18.求1~100(含100)的偶数之和
19.正确
20. 12 left < right area=long*(right-left) right-=1
21.Python语言用于实现循环结构的语句有for语句和while语句,具体格式如下:
for 变量 in 列表:
循环体
或
while 条件:
循环体
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$