4.4.1for循环的应用 练习(原卷+解析卷)

文档属性

名称 4.4.1for循环的应用 练习(原卷+解析卷)
格式 zip
文件大小 2.4MB
资源类型 试卷
版本资源 粤教版(2019)
科目 信息技术(信息科技)
更新时间 2020-11-24 09:25:44

文档简介

中小学教育资源及组卷应用平台
4.4.1for循环的应用-粤教版(2019)高中信息技术必修一练习
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.下面的程序段运行后的结果为(

s=0
for
i
in
range(1,6,2):
s=s+i
print(s)
A.15
B.10
C.12
D.9
2.下面的程序运行后的输出结果为(

n=1
for
i
in
range(0,5):
n=n
i
print(n)
A.120
B.24
C.0
D.25
3.有以下程序段:
for
value
in
[1,2,3]:
print(value)
print("no")
程序运行后输出的结果为:


A.1
no
2
no
3
no
B.1
2
3
no
C.1
"no"
2
"no"
3
"no"
D.1
2
3
"no"
4.有如下VB程序段:
Fori=1To1000
a=Int(Rnd
100+1)
b=Int(Rnd
100+1)
x=a+b
y=a-b
c=Sqr(x)
d=Sqr(y)
Nexti
调试时出现如图所示的错误提示,产生此错误的语句是(

A.a=Int(Rnd
100+1)
B.y=a–b
C.c=Sqr(x)
D.d=Sqr(y)
5.有如下程序段:
Fori=1ToLen(Text1.Text)
c=Mid(Text1.Text,i,1)
Ifc>="0"Andc<="9"Thenc=Chr(Asc(c)+1)
Ifc>="A"Andc<="Z"Thenc=Chr(Asc(c)+32)
s=s+c
Nexti
若文本框Text1的内容为“Number2468!”执行程序后,变量s的值为(

A.NUMBER3579!
B.NUMBER2468!
C.number3579!
D.number2468!21世纪教育网版权所有
6.有如下VB程序段:
s
=
Text1.Text
For
i=1
To
Len(s)
ch
=
Mid(s,i,1)
If
ch>="A"
And
ch<="Z"
Then
t=t+ch
If
ch>="a"
And
ch<="z"
Then
ch
=
Chr(Asc(ch)-32)
t=t+ch
ElseIf
ch
>=
"0"And
ch
<=
"9"
Then
t=ch+t
End
If
Next
i
Text2.Text
=
t
已知'A'的ASCI码为65,'a'的ASCI码为97.程序运行后,在文本框Textl中输人“Text2.text=”Abc1234“”(外括号不包括),则在Text2中显示的内容是(
A.TEXT2.TEXTABC1234
B.43212TexttextABC
C.43212TEXTTEXTABC
D.TEXTTEXTABC43212
7.有如下程序段:
Dim
i
As
Integer,
t
As
Integer,
s
As
Integer
s
=
0:
t
=
0
For
i
=
0
To
10
If
i
Mod
5
=
0
then
s
=
s
+
1
t
=
t
+
i
Next
i
Text1.Text
=
Str(s)
执行该程序段后,变量s和t的值分别是(

A.3
55
B.3
15
C.2
15
D.2
55
8.编写VB程序,计算斐波那契数列中第n项(n
>=
3)的值,并在标签Label2中输出结果。(斐波那契数列是指这样的数列:1,1,2,3,5,8,13…。即:第1项和第2项的值均为1,从第3项开始,每一项的值是它前面两项之和),主要代码如下:21教育网
n
=
Val(Text1.Text)
f1
=
1:
f2
=
1
For
k
=
3
To
n
f
=
f1
+
f2


Next
k
Label2.Caption
=
"斐波那契数列第"
+
Str(n)
+
"项的值为"
+
Str(f)
代码中①②两处分别应为(

A.①f2
=
f1
②f1
=
f
B.①f1
=
f2
②f2
=
f
C.①f1
=
f
②f2
=
f1
D.①f2
=
f
②f1
=
f2
9.有如下Visual
Basic程序段:
Private
Sub
Command1_
Click
()
Dim
a(1
To
10)
As
Integer,
i
As
Integer,
k
As
Integerwww.21-cn-jy.com
a(1)=1:a(2)=17:a(3)=8:a(4)=9:a(5)=18
a(6)=15:a(7)=20:a(8)=13:a(9)=7:a(10)=11
k=0
For
i=
2
To
9
If(a(i)-a(i-1))
(a(i+1)-a(i))<
0
Then
k=k+1
Next
i
Text1.
Text
=
Str
(k)
End
Sub
该程序段运行后后,文本框Text1中显示的内容是(

A.6
B.7
C.8
D.9
10.有如下
VB
程序段:
For
i
=
1
To
6
a(i)
=
Int(Rnd
20)
+
1:
b(i)
=
i
Next
i
For
i
=
1
To
5
For
j
=
i+1
To
6
If
a(b(i))>a(b(j))
Then
t
=
b(j):
b(j)
=
b(i):
b(i)
=
t
End
If
Next
j
Next
i
i
=
1
:
j
=
6:
s=""
:
Key
=
Val(Text1.Text)
Do
While
i
<=
j
m
=
(i
+
j)
\
2
If
Key
=
a(b(m))
Then
Exit
Do
If
Key
<
a(b(m))
Then
j
=
m
-
1
Else
i
=
m
+
1
21cnjy.com
s
=
s
+
Str(m)
Loop
Text2.Text
=
s
在文本框Text1中输入10,运行以上程序段后,文本框Text2中显示的内容为
3
5
4,则
a
数组中
a(1)到
a(6)各元素的值可能的是(

A.11,6,4,13,18,15
B.4,5,8,19,10,17
C.2,11,7,6,3,18
D.9,2,11,21,5,16
11.数组a中存储着某市2010年到
2019
年的GDP数值,编写VB程序,实现找出相邻两年GDP变化最大(即相邻两年GDP差值最大)的年份区间。若有多个符合要求的年份区间,只输出距今最近的年份区间。部分代码如下所示
Dim
i
As
Integer,
imax
As
Integer

For
i
=
3
To
10
If
Abs(a(i)
-
a(i
-
1))
>=

Then
imax
=
iwww-2-1-cnjy-com
Next
i
Text1.Text
=
"GDP变化最大的年份区间是"
+
Str(imax
+
2008)
+
"-"
+
Str(imax
+
2009)
21
cnjy
com
划线处①、②应填入的代码为(

A.①imax=1
②Abs(a(i
-
1)
-
a(i
-
2))
B.①imax=1
②Abs(a(imax)
-
a(imax
-
1))【版权所有:21教育】
C.①imax=2
②Abs(a(i
-
1)
-
a(i
-
2))
D.①imax=2
②Abs(a(imax)
-
a(imax
-
1))21教育名师原创作品
12.有如下VB程序段:
s
="cbafedgh"
m=3:c="":n=
Len(s)
For
i
=1
To
n
j=(i-1)Mod
3
+
1
If
m>
n
Then
Exit
For
'退出For循环
c=c+
Mid(s,m-j+1,1)
If
j
Mod
3
=0
Then
m
=m+3
Next
i
If
i
<
n
Then
c
=
Mid(s,i,n-i
+
1)+c
执行该程序段后,变量c的值是(

A.abcdef
B.abcdefgh
C.ghabcdef
D.hgabcdef
13.下面的程序段运行后的结果为(

s=1
for
i
in
range(1,6,2):
s=s+i
print(s)
A.15
B.10
C.12
D.9
14.下列有关for循环语句说法正确的是(
)。
A.for
循环变量
in
列表后面必须加冒号
B.For循环所包含的语句是不以缩进为标志的。
C.列表的几种表达方式有直接罗列,先定义后使用和使用range()函数
D.For循环所包含的语句是以缩进为标志的。
15.有如下VB程序段,执行该程序段后,a(1)
到a(6)各元素的值可能为(  )
Randomize
For
i=1
To
6
a(i)
=
Int(Rnd
21)
2+11
If
I
Mod
2=1
Then
a(i)
=
a(i)
+2
Else
If
a(i)a(i)=a(i一1)
End
If
Next
i
A.13,
15,
25,
37,
23,
54
B.16,
44,
23,
51,
22,
22
C.19,
37,
23,
45,
53,
53
D.13,37,
11,
45,
33,
51
16.小明想用数据移位思想将一段长度为n的序列a(n),
以t位置为分界,把前t-1个数和后n-t+1个数调换前后顺序,但保持每段中数据的相对位置不变。例如一段长度为6的序列1、2、3、4、5、6。t=4时,数组a中元素顺序变成4、5、6、1、2、3.实现上述功能的代码如下,下列①、②处填写正确的是(  )
t
=
Val(Text1.
Text):
m=
2
For
i=t-1
To
1
Step-1
k
=
a(i)
For
j=i
To
n-
1

Next
j

n=n-1
Next
i
A.①a(j+1)=a(j)②a(j+1)=k
B.①a(j)=a(j+1)②a(j+1)=k
C.①a(j+1)=a(j)
②a(j)=k
D.①a(j)=a(j+1)
②a(j)=k
17.字符串数组a中a(1)到a(6)的原始数据为57,3,24,34,
6,120,为了对该数组进行排序操作,编写了以下VB程序。21·cn·jy·com
i=2
Do
While
i<=6
For
j=6
To
i+2
Step
-2
If
a(j)>a(j-2)Then
t=a(j):a(j)=a(j-2):a(j-2)=t
Next
j
i=i+2
Loop
则程序运行之后,数组元素a(1)和a(2)的值分别是(  )
A.6
3
B.57
120
C.120
57
D.6
34
18.有如下VB程序段:
s
=
Text1.Text:
n
=
Len(s):
Count
=
0
For
i=1
To
n\2
If
Mid(s,
i,1)
<>
Mid(s,
n-i+1,1)
Then
Count
=
Count
+
1
End
If
Next
i
若在文本框Text1中输入字符串“
200good2”,则Count的值为(  )
A.3
B.1
C.6
D.7
二、填空题
19.下面的程序段运行后的结果为__________
s=0
for
i
in
range(1,8,3):
s=s+i
print(s)
20.运行下列程序,正确的结果是_________________
s=0
for
i
in
range
(1
5):
s=s+i
print("i=",i,"s=",s)
三、操作题
21.给定两个十进制整数X和Y(X<=Y),求出从X到Y的所有整数中出现“1”的个数。例如:X=6,Y=15时,6,7,8,9,10,11,12,13,14,15,出现了7个“1”。小明编写了一个VB程序,功能如下:在文本框Text1中输入整数X,在文本框Text2中输入整数Y,单击“统计”按钮Command1后,在列表框List1中显示X到Y,并在标签Label3中显示从X到Y的所有整数中出现“1”的个数。程序运行界面如图所示,请在划线处填入合适代码。
(1)下列程序段中句List1.AddItem中的AddItem是___(填字母:A.属性名/B.事件名/C.方法名/D.对象)2·1·c·n·j·y
(2)为了实现上述功能,请在划线处填入合适的代码。
PrivateSubCommand1_Click(

DimxAsInteger,yAsInteger,tAsInteger
DimiAsInteger,nAsInteger,countAsInteger
x=Val(Text1.Text)
y=Val(Text2.Text)
count=0
For
i=x
To
y
List1.AddItem
Str(i)
n=i
DoWhile
n>0
If
n
Mod
10=1
Then
count=count+1
End
If
____
Loop
Next
i
Label3.Caption="X到Y之间1的个数有"+____+"个"
End
Sub
(3)如果删除加框处代码,并运行程序,在文本框Text1中输入“40”,在文本框Text2中输入“10”,单击“统计”按钮,则标签框Label3显示X到Y之间1的个数有____个。21·世纪
教育网
22.编写一个VB程序,实现如下功能:输入s位数字构成的数字字符串(第1位数字不为0),移除k
(0y.co
m】
算法分析:要使得到的5位数字最小,首先需保证能取到5个数字,且首位应尽量小,那么取首位数的范围应保证余下有4个数字,即在前4位中选最小非0的数字。【出处:21教育名师】
程序运行时,在文本框Text1中输入一个数字字符串,在文本框Text2中输入要移除的数字个数,单击“运行”按钮CmdRun后,在标签Labell显示得到的最小新数,程序运行界面如图b所示。21
cnjy
com
(1)程序运行时,若要在名为Form1的窗体标题上显示“删数”,可以在Form
Load事件处理过程中添加语句为_________(单选,填字母:A.
Form1.
Text
="删数"\B.
Form1.
Caption
="删数"\C.
Form1.
AddItem"删数")
(2)实现上述功能的VB程序代码如下,请在划线处填入合适的代码。
Private
Sub
CmdRun_
Click()
Dim
Num
As
String,New_num
As
String
'
Num为输入的数字字符串
Dim
i
As
Integer,
j
As
Integer,
m
As
Integer,
Dim
As
Integer,
s
As
Integer,
k
As
Integer
Dim
a(30)
As
String,
b(30)
As
Integer
Num
=
Text1.
Text:
s
=
Len(Num)
k
=
Val
(Text2.
Text)
'k为删除数字个数
For
i=1
To
s
a(i)
=
Mid(Num,i,1)
Nexti
j
=1
m=1
n=①_________
For
i=m+l
To
n
'取第一个非零最小数字
If
Then
m=I
'加框处程序代码有误,请改正
Next
i
b(j)=
m
Do
While②________
'取其他最小数字
m=m+1
n=n+1
For
i=m+1
To
n
If
a(i)
<
a(m)
Then
m=
i
Next
i
j
=j+1:b(j)=m
Loop
For
i=
m+1
To
s
'最后直接取的数字
j
=j+1:b(j)=i
Next
i
For
j=1
To
s-
k
'输出最小数
New_
num
=③________
Next
j
Labell.
Caption
=
New_num
End
Sub
(3)加框处程序代码有误,请改正。
____________________________
23.编写程序,实现以下功能:计算s=1+2/5+3/10+……i/i^2+1
的值,n由键盘输入,计算结果s保留3位小数。【来源:21·世纪·教育·网】
Private
Sub
Command1_Click()
Dim
n
as
integer,
i
as
integer,s
as
double
n=val(inputbox("请输入n的值"))
s=0:i=1
do
while


i=i+1
Loop
s=

Print
s
End
Sub
(1)实现该程序功能的主体算法结构是____________________。
(2)现有如下VB程序,请完善划线处①、②内容,完成上述功能。
①_____________________________
②_____________________________2-1-c-n-j-y
(3)划线处③能使变量s的值四舍五入精确到小数点后第3位小数,以下可以实现的语句是(
)。
A.Int(s
100)
/
100
B.Int(s
1000)
/
1000
C.Int(s
100
+
0.5)
/
100
D.Int((s
1000
+
0.5))
/
1000
四、判断题
24.循环结构表示程序反复执行某个或某些操作,只有用户干预才能终止循环。(_______)
21世纪教育网
www.21cnjy.com
精品试卷·第
2

(共
2
页)
21世纪教育网(www.21cnjy.com)中小学教育资源及组卷应用平台
4.4.1for循环的应用-粤教版(2019)高中信息技术必修一练习
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.下面的程序段运行后的结果为(

s=0
for
i
in
range(1,6,2):
s=s+i
print(s)
A.15
B.10
C.12
D.9
【答案】D
【解析】
【详解】
本题考查的是Python循环语句。range(1,6,2)生成的是1,3,5的整数,故s=0+1+3+5=9。选项D正确。
2.下面的程序运行后的输出结果为(

n=1
for
i
in
range(0,5):
n=n
i
print(n)
A.120
B.24
C.0
D.25
【答案】C
【解析】
【详解】
本题考查的知识点是Python的列表函数。python中
range()
函数可创建一个整数列表,一般用在
for
循环中。range(0,5)等价于列表[0,1,2,3,4],故程序结果为1
0
1
2
3
4=0,故选项C正确。www-2-1-cnjy-com
3.有以下程序段:
for
value
in
[1,2,3]:
print(value)
print("no")
程序运行后输出的结果为:


A.1
no
2
no
3
no
B.1
2
3
no
C.1
"no"
2
"no"
3
"no"
D.1
2
3
"no"
【答案】A
【解析】
【分析】
【详解】
本题考查程序执行的相关知识点
每一次for循环里面都执行一遍print(value)和print("no")。故本题选A选项
4.有如下VB程序段:
Fori=1To1000
a=Int(Rnd
100+1)
b=Int(Rnd
100+1)
x=a+b
y=a-b
c=Sqr(x)
d=Sqr(y)
Nexti
调试时出现如图所示的错误提示,产生此错误的语句是(

A.a=Int(Rnd
100+1)
B.y=a–b
C.c=Sqr(x)
D.d=Sqr(y)
【答案】D
【解析】
【详解】
本题考查VB相关知识。无效的过程调用或参数是指函数或者过程的参数有误,代码中涉及函数sqr和Int,a=Int(Rnd
100+1),b=Int(Rnd
100+1),这两条代码没有问题,y=a-b,会出现y<0,导致Sqr(y)参数有误,sqr为平方根函数,参数必须大于0,小于0则代码会出错。故产生错误语句是d=Sqr(y),本题选D。
5.有如下程序段:
Fori=1ToLen(Text1.Text)
c=Mid(Text1.Text,i,1)
Ifc>="0"Andc<="9"Thenc=Chr(Asc(c)+1)
Ifc>="A"Andc<="Z"Thenc=Chr(Asc(c)+32)
s=s+c
Nexti
若文本框Text1的内容为“Number2468!”执行程序后,变量s的值为(

A.NUMBER3579!
B.NUMBER2468!
C.number3579!
D.number2468!
【答案】C
【解析】
【详解】
本题考查VB程序段。若文本框Text1的内容为“Number2468!”,根据代码for
i=1
to
len(text1.text),c=Mid(Text1.Text,i,1),If
c>=“0”Andc<=“9”Thenc=Chr(Asc(c)+1),若取出的字符c是数字,则往后推移一个数字。Ifc>=“A”
And
c<=“Z”Then
c=Chr(Asc(c)+32),如果取出的字符c是大写字母,则变为小写字母。其余字符不变。故可知本题选C。
6.有如下VB程序段:
s
=
Text1.Text
For
i=1
To
Len(s)
ch
=
Mid(s,i,1)
If
ch>="A"
And
ch<="Z"
Then
t=t+ch
If
ch>="a"
And
ch<="z"
Then
ch
=
Chr(Asc(ch)-32)
t=t+ch
ElseIf
ch
>=
"0"And
ch
<=
"9"
Then
t=ch+t
End
If
Next
i
Text2.Text
=
t
已知'A'的ASCI码为65,'a'的ASCI码为97.程序运行后,在文本框Textl中输人“Text2.text=”Abc1234“”(外括号不包括),则在Text2中显示的内容是(
A.TEXT2.TEXTABC1234
B.43212TexttextABC
C.43212TEXTTEXTABC
D.TEXTTEXTABC43212
【答案】C
【解析】
【详解】
本题考查VB程序段。根据判断条件If
ch>=“A”
And
ch<=“Z”
Then
t=t+ch,大写字母直接顺序叠加,又If
ch>=“a”
And
ch<=“z”
Then
ch=Chr(Asc(ch)-32)t=t+ch,可知,小写字母转换为大写字母后叠加。再看If
ch>=
“0”And
ch<=
“9”Then
t=ch+t,可知数字采取倒序叠加,故最后结果数字在前,全都是大写字母,故选C。2·1·c·n·j·y
7.有如下程序段:
Dim
i
As
Integer,
t
As
Integer,
s
As
Integer
s
=
0:
t
=
0
For
i
=
0
To
10
If
i
Mod
5
=
0
then
s
=
s
+
1
t
=
t
+
i
Next
i
Text1.Text
=
Str(s)
执行该程序段后,变量s和t的值分别是(

A.3
55
B.3
15
C.2
15
D.2
55
【答案】A
【解析】
【详解】
本题主要考查VB程序的执行。for循环中,变量i的范围是从0-10,当i是5的倍数时(i=0,5,10),变量s递增,故s=s+1执行了3次,每次循环都执行t=t+i,故程序结束时t=0+1+2+3+4+5+6+7+8+9+10=55,所以执行该程序段后,变量s和t的值分别是3
55,故本题选A选项。
8.编写VB程序,计算斐波那契数列中第n项(n
>=
3)的值,并在标签Label2中输出结果。(斐波那契数列是指这样的数列:1,1,2,3,5,8,13…。即:第1项和第2项的值均为1,从第3项开始,每一项的值是它前面两项之和),主要代码如下:
n
=
Val(Text1.Text)
f1
=
1:
f2
=
1
For
k
=
3
To
n
f
=
f1
+
f2


Next
k
Label2.Caption
=
"斐波那契数列第"
+
Str(n)
+
"项的值为"
+
Str(f)
代码中①②两处分别应为(

A.①f2
=
f1
②f1
=
f
B.①f1
=
f2
②f2
=
f
C.①f1
=
f
②f2
=
f1
D.①f2
=
f
②f1
=
f2
【答案】B
【解析】
【详解】
本题主要考查VB程序的执行。f=f1+f2,接下来应该将f2的值赋给f1,将f的值赋给f2,故代码中①②两处分别应为①f1
=
f2
②f2
=
f,故本题选B选项。
9.有如下Visual
Basic程序段:
Private
Sub
Command1_
Click
()
Dim
a(1
To
10)
As
Integer,
i
As
Integer,
k
As
Integer21·世纪
教育网
a(1)=1:a(2)=17:a(3)=8:a(4)=9:a(5)=18
a(6)=15:a(7)=20:a(8)=13:a(9)=7:a(10)=11
k=0
For
i=
2
To
9
If(a(i)-a(i-1))
(a(i+1)-a(i))<
0
Then
k=k+1
Next
i
Text1.
Text
=
Str
(k)
End
Sub
该程序段运行后后,文本框Text1中显示的内容是(

A.6
B.7
C.8
D.9
【答案】A
【解析】
【详解】
本题考查VB程序段。在FOR循环中,If(a(i)-a(i-1))
(a(i+1)-a(i))<0成立时共有六种情况,分别是i=2,3,5,6,7,9。故本题选A。
10.有如下
VB
程序段:
For
i
=
1
To
6
a(i)
=
Int(Rnd
20)
+
1:
b(i)
=
i
Next
i
For
i
=
1
To
5
For
j
=
i+1
To
6
If
a(b(i))>a(b(j))
Then
t
=
b(j):
b(j)
=
b(i):
b(i)
=
t
End
If
Next
j
Next
i
i
=
1
:
j
=
6:
s=""
:
Key
=
Val(Text1.Text)
Do
While
i
<=
j
m
=
(i
+
j)
\
2
If
Key
=
a(b(m))
Then
Exit
Do
If
Key
<
a(b(m))
Then
j
=
m
-
1
Else
i
=
m
+
1
21世纪教育网版权所有
s
=
s
+
Str(m)
Loop
Text2.Text
=
s
在文本框Text1中输入10,运行以上程序段后,文本框Text2中显示的内容为
3
5
4,则
a
数组中
a(1)到
a(6)各元素的值可能的是(

A.11,6,4,13,18,15
B.4,5,8,19,10,17
C.2,11,7,6,3,18
D.9,2,11,21,5,16
【答案】A
【解析】
【详解】
本题主要考查VB程序的执行。rnd()函数随机生成[0,1)之间的数,故a(i)是随机生成[1,21)的整数,第二个嵌套for循环实现a数组升序,i=1,j=6,s="",key=10,while循环实现折半查找,第一遍循环,m=(1+6)/2=3,显然a(3)<10,i=m+1=4;s=3,第二遍循环,m=(4+6)/2=5,根据文本框Text2中显示的内容为
3
5
4,所以判断key10,故本题选A选项。
11.数组a中存储着某市2010年到
2019
年的GDP数值,编写VB程序,实现找出相邻两年GDP变化最大(即相邻两年GDP差值最大)的年份区间。若有多个符合要求的年份区间,只输出距今最近的年份区间。部分代码如下所示
Dim
i
As
Integer,
imax
As
Integer

For
i
=
3
To
10
If
Abs(a(i)
-
a(i
-
1))
>=

Then
imax
=
i【出处:21教育名师】
Next
i
Text1.Text
=
"GDP变化最大的年份区间是"
+
Str(imax
+
2008)
+
"-"
+
Str(imax
+
2009)
【版权所有:21教育】
划线处①、②应填入的代码为(

A.①imax=1
②Abs(a(i
-
1)
-
a(i
-
2))
B.①imax=1
②Abs(a(imax)
-
a(imax
-
1))21教育名师原创作品
C.①imax=2
②Abs(a(i
-
1)
-
a(i
-
2))
D.①imax=2
②Abs(a(imax)
-
a(imax
-
1))
【答案】D
【解析】
【详解】
本题主要考查VB程序的执行。abs()是求绝对值函数,i的初值为3,a(i)
-
a(i
-
1)=a(3)-a(2),这个区间应该首先与a(2)-a(1)进行比较,故imax=2,第二空填Abs(a(imax)
-
a(imax
-
1)),故本题选D选项。21教育网
12.有如下VB程序段:
s
="cbafedgh"
m=3:c="":n=
Len(s)
For
i
=1
To
n
j=(i-1)Mod
3
+
1
If
m>
n
Then
Exit
For
'退出For循环
c=c+
Mid(s,m-j+1,1)
If
j
Mod
3
=0
Then
m
=m+3
Next
i
If
i
<
n
Then
c
=
Mid(s,i,n-i
+
1)+c
执行该程序段后,变量c的值是(

A.abcdef
B.abcdefgh
C.ghabcdef
D.hgabcdef
【答案】C
【解析】
【分析】
【详解】
本题考查执行VB程序相关的知识点
第一次循环
m-j+1
=
3,截取s中的a赋值给c
第二次循环
i=2,j=2,m-j+1=2,c=ab
第三次循环
i=3,j=3,m-j+1=1,c=abc,m=6
第四次循环
i=4,j=1,m-j+1=6,c=
abcd
第五次循环
i=5,j=2,m-j+1=5,c=
abcde
第六次循环
i=6,j=3,m-j+1=4,c
=
abcdef
,m=9
第七次循环
i=7,j=1,退出循环
c=
ghabcdef
故本题选C
13.下面的程序段运行后的结果为(

s=1
for
i
in
range(1,6,2):
s=s+i
print(s)
A.15
B.10
C.12
D.9
【答案】B
【解析】
【详解】
本题主要考查程序的运行。for循环中,变量i的变化是1,3,5,7,当i=7时退出循环,此时s的值为,s=1+1+3+5=10,故本题选B选项。
14.下列有关for循环语句说法正确的是(
)。
A.for
循环变量
in
列表后面必须加冒号
B.For循环所包含的语句是不以缩进为标志的。
C.列表的几种表达方式有直接罗列,先定义后使用和使用range()函数
D.For循环所包含的语句是以缩进为标志的。
【答案】ACD
【解析】
【详解】
本题主要考查Python的for循环语句。for
循环变量
in
列表后面必须加冒号、列表的几种表达方式有直接罗列,先定义后使用和使用range()函数、For循环所包含的语句是以缩进为标志的。故本题选ACD选项。
15.有如下VB程序段,执行该程序段后,a(1)
到a(6)各元素的值可能为(  )
Randomize
For
i=1
To
6
a(i)
=
Int(Rnd
21)
2+11
If
I
Mod
2=1
Then
a(i)
=
a(i)
+2
Else
If
a(i)a(i)=a(i一1)
End
If
Next
i
A.13,
15,
25,
37,
23,
54
B.16,
44,
23,
51,
22,
22
C.19,
37,
23,
45,
53,
53
D.13,37,
11,
45,
33,
51
【答案】C
【解析】
【详解】
本题考查VB程序段。根据a(i)=Int(Rnd
21)
2+11,a数组是[11,51]之间的奇数,并且一定执行a(i)=a(i)+2,那么a数组是[13,53]之间的奇数,故本题选C。www.21-cn-jy.com
16.小明想用数据移位思想将一段长度为n的序列a(n),
以t位置为分界,把前t-1个数和后n-t+1个数调换前后顺序,但保持每段中数据的相对位置不变。例如一段长度为6的序列1、2、3、4、5、6。t=4时,数组a中元素顺序变成4、5、6、1、2、3.实现上述功能的代码如下,下列①、②处填写正确的是(  )
t
=
Val(Text1.
Text):
m=
2
For
i=t-1
To
1
Step-1
k
=
a(i)
For
j=i
To
n-
1

Next
j

n=n-1
Next
i
A.①a(j+1)=a(j)②a(j+1)=k
B.①a(j)=a(j+1)②a(j+1)=k
C.①a(j+1)=a(j)
②a(j)=k
D.①a(j)=a(j+1)
②a(j)=k
【答案】D
【解析】
【详解】
本题考查VB程序段。实现数据移位的效果,根据题目中代码,可做如下解释。假设t=4,则第一次移位后,数组变为1,2,4,5,6,3。第二次移位数据变为1,4,5,6,2,3。第三次移位得到结果4,5,6,1,2,3。在根据选项将代码填入,可得到选项D为正确选项。21
cnjy
com
17.字符串数组a中a(1)到a(6)的原始数据为57,3,24,34,
6,120,为了对该数组进行排序操作,编写了以下VB程序。21
cnjy
com
i=2
Do
While
i<=6
For
j=6
To
i+2
Step
-2
If
a(j)>a(j-2)Then
t=a(j):a(j)=a(j-2):a(j-2)=t
Next
j
i=i+2
Loop
则程序运行之后,数组元素a(1)和a(2)的值分别是(  )
A.6
3
B.57
120
C.120
57
D.6
34
【答案】B
【解析】
【详解】
本题考查排序算法。i=2,j=6
to
4,经过交换,a(1)到a(6)数据变为57,120,24,3,
6,34。i=4,j=6
to
6,经过交换,a(1)到a(6)数据变为57,120,24,34,
6,3。故数组元素a(1)和a(2)的值分别是57和120,故本题选B。
18.有如下VB程序段:
s
=
Text1.Text:
n
=
Len(s):
Count
=
0
For
i=1
To
n\2
If
Mid(s,
i,1)
<>
Mid(s,
n-i+1,1)
Then
Count
=
Count
+
1
End
If
Next
i
若在文本框Text1中输入字符串“
200good2”,则Count的值为(  )
A.3
B.1
C.6
D.7
【答案】A
【解析】
【详解】
本题考查VB程序段。若在文本框Text1中输入字符串“200good2”,根据If
Mid(s,
i,1)<>Mid(s,
n-i+1,1)Then
Count=Count+1,可知统计字符串前后对应位置不相等字符个数,故本题选A。21·cn·jy·com
二、填空题
19.下面的程序段运行后的结果为__________
s=0
for
i
in
range(1,8,3):
s=s+i
print(s)
【答案】12
【解析】
【详解】
本题考查的知识点是Python的循环函数。range()函数可创建一个整数列表,一般用在
for
循环中。range(1,8,3)等同于整数列表[1,4,7],故该程序结果为=0+1+4+7=12。【来源:21cnj
y.co
m】
20.运行下列程序,正确的结果是_________________
s=0
for
i
in
range
(1
5):
s=s+i
print("i=",i,"s=",s)
【答案】i=4
s=10
【解析】
【详解】
本题主要考查程序的运行。for循环中i的变化范围是从1~4,循环结束时i
=4,s=0+1+2+3+4=10。
三、操作题
21.给定两个十进制整数X和Y(X<=Y),求出从X到Y的所有整数中出现“1”的个数。例如:X=6,Y=15时,6,7,8,9,10,11,12,13,14,15,出现了7个“1”。小明编写了一个VB程序,功能如下:在文本框Text1中输入整数X,在文本框Text2中输入整数Y,单击“统计”按钮Command1后,在列表框List1中显示X到Y,并在标签Label3中显示从X到Y的所有整数中出现“1”的个数。程序运行界面如图所示,请在划线处填入合适代码。
(1)下列程序段中句List1.AddItem中的AddItem是___(填字母:A.属性名/B.事件名/C.方法名/D.对象)
(2)为了实现上述功能,请在划线处填入合适的代码。
PrivateSubCommand1_Click(

DimxAsInteger,yAsInteger,tAsInteger
DimiAsInteger,nAsInteger,countAsInteger
x=Val(Text1.Text)
y=Val(Text2.Text)
count=0
For
i=x
To
y
List1.AddItem
Str(i)
n=i
DoWhile
n>0
If
n
Mod
10=1
Then
count=count+1
End
If
____
Loop
Next
i
Label3.Caption="X到Y之间1的个数有"+____+"个"
End
Sub
(3)如果删除加框处代码,并运行程序,在文本框Text1中输入“40”,在文本框Text2中输入“10”,单击“统计”按钮,则标签框Label3显示X到Y之间1的个数有____个。【来源:21·世纪·教育·网】
【答案】C
n=n\10
str(count)
0
【解析】
【详解】
本题考查VB综合能力。(1)List1.AddItem中的AddItem是方法名。(2)代码第一空,根据do
while
n>0,以及If
n
Mod
10=1
Then
count=count+1
End
If,可以判断,需要将n中的每一个数字取出判断,故代码第一空填入n=n\10。(3)代码第二空,X到Y之间1的个数有count个,注意数据类型,故填入str(count)。(4)如果删除加框处代码,若出现x>y,则for
i=x
to
y的for循环不会执行,所以在文本框Text1中输入“40”,在文本框Text2中输入“10”时,Label3显示X到Y之间1的个数有0个。
22.编写一个VB程序,实现如下功能:输入s位数字构成的数字字符串(第1位数字不为0),移除k
(0算法分析:要使得到的5位数字最小,首先需保证能取到5个数字,且首位应尽量小,那么取首位数的范围应保证余下有4个数字,即在前4位中选最小非0的数字。
程序运行时,在文本框Text1中输入一个数字字符串,在文本框Text2中输入要移除的数字个数,单击“运行”按钮CmdRun后,在标签Labell显示得到的最小新数,程序运行界面如图b所示。
(1)程序运行时,若要在名为Form1的窗体标题上显示“删数”,可以在Form
Load事件处理过程中添加语句为_________(单选,填字母:A.
Form1.
Text
="删数"\B.
Form1.
Caption
="删数"\C.
Form1.
AddItem"删数")
(2)实现上述功能的VB程序代码如下,请在划线处填入合适的代码。
Private
Sub
CmdRun_
Click()
Dim
Num
As
String,New_num
As
String
'
Num为输入的数字字符串
Dim
i
As
Integer,
j
As
Integer,
m
As
Integer,
Dim
As
Integer,
s
As
Integer,
k
As
Integer
Dim
a(30)
As
String,
b(30)
As
Integer
Num
=
Text1.
Text:
s
=
Len(Num)
k
=
Val
(Text2.
Text)
'k为删除数字个数
For
i=1
To
s
a(i)
=
Mid(Num,i,1)
Nexti
j
=1
m=1
n=①_________
For
i=m+l
To
n
'取第一个非零最小数字
If
Then
m=I
'加框处程序代码有误,请改正
Next
i
b(j)=
m
Do
While②________
'取其他最小数字
m=m+1
n=n+1
For
i=m+1
To
n
If
a(i)
<
a(m)
Then
m=
i
Next
i
j
=j+1:b(j)=m
Loop
For
i=
m+1
To
s
'最后直接取的数字
j
=j+1:b(j)=i
Next
i
For
j=1
To
s-
k
'输出最小数
New_
num
=③________
Next
j
Labell.
Caption
=
New_num
End
Sub
(3)加框处程序代码有误,请改正。
____________________________
【答案】B

k
+
1或其他可行答案

j
<
k

j
<>
k

m
<
n

m
<>
n
或其他可行答案

New_num
+
a(b(j))或其他可行答案
a(i)
<
a(m)
And
a(i)
<>
"0"或其他可行答案
21cnjy.com
【解析】
【详解】
本题考查VB综合能力。(1)程序运行时,若要在名为Form1的窗体标题上显示“删数”,可以在Form
Load事件处理过程中添加语句为Form1.
Caption
=“删数”。(2)n为最多能从前多少位取出第一个数字,故n=k+1。(2)剩余的数字数量要满足取出的数量,故填入m
<>
n。(3)将结果显示,是一个结果变量叠加过程,故填入New_num+a(b(j))。(5)找最小的并且不能为零,故填入a(i)And
a(i)<>“0”。
23.编写程序,实现以下功能:计算s=1+2/5+3/10+……i/i^2+1
的值,n由键盘输入,计算结果s保留3位小数。
Private
Sub
Command1_Click()
Dim
n
as
integer,
i
as
integer,s
as
double
n=val(inputbox("请输入n的值"))
s=0:i=1
do
while


i=i+1
Loop
s=

Print
s
End
Sub
(1)实现该程序功能的主体算法结构是____________________。
(2)现有如下VB程序,请完善划线处①、②内容,完成上述功能。
①_____________________________
②_____________________________2-1-c-n-j-y
(3)划线处③能使变量s的值四舍五入精确到小数点后第3位小数,以下可以实现的语句是(
)。
A.Int(s
100)
/
100
B.Int(s
1000)
/
1000
C.Int(s
100
+
0.5)
/
100
D.Int((s
1000
+
0.5))
/
1000
【答案】(1)???循环结构??????
(2)????i<=n???????????????s=s+i/(i^2+1)???????????
(3)?????D
【解析】
【详解】
本题考查VB综合能力。(1)程序有三大结构,实现该程序功能的主体算法结构是循环结构。(2)根据题干,do
while循环中是根据n的值执行循环次数,故条件为
i<=n。(3)根据题干,计算公式是s=s+i/(i^2+1)。(4)int函数是不超过参数的最大整数,故使变量s的值四舍五入精确到小数点后第3位小数,可以实现的语句是Int((s
1000
+
0.5))/1000。
四、判断题
24.循环结构表示程序反复执行某个或某些操作,只有用户干预才能终止循环。(_______)
【答案】错
【解析】
【分析】
【详解】
本题考查循环结构
循环结构表示程序反复执行某个或某些操作,直到判断条件为假(或为真)时才可终止循环。表述错误
21世纪教育网
www.21cnjy.com
精品试卷·第
2

(共
2
页)
21世纪教育网(www.21cnjy.com)