首页
高中语文
高中数学
高中英语
高中物理
高中化学
高中历史
高中道德与法治(政治)
高中地理
高中生物
高中音乐
高中美术
高中体育
高中信息技术
高中通用技术
资源详情
高中信息技术
粤教版(2019)
必修1 数据与计算
本册综合
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
(0
y.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,所以判断key
10,故本题选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)
点击下载
同课章节目录
第一章 数据与信息
项目范例 体验庆祝国庆多媒体作品的数据与信息处理
1.1 数据及其特征
1.2 数据编码
1.3 信息及其特征
第二章 知识与数字化学习
项目范例 运用数字化工具探究数理知识
2.1 知识与智慧
2.2 数字化学习与创新
第三章 算法基础
项目范例 设计从A市到B市耗时最少的旅行路线方案
3.1 体验计算机解决问题的过程
3.2 算法及其描述
3.3 计算机程序与程序设计语言
第四章 程序设计基础
项目范例 设计购买纪念品的最佳方案
4.1 程序设计语言的基础知识
4.2 运用顺序结构描述问题求解过程
4.3 运用选择结构描述问题求解过程
4.4 运用循环结构描述问题求解过程
第五章 数据处理和可视化表达
项目范例 网络购物平台客户行为数据分析和可视化表达
5.1 认识大数据
5.2 数据的采集
5.3 数据的分析
5.4 数据的可视化表达
第六章 人工智能及其应用
项目范例 剖析空调企业智能客服机器人
6.1 认识人工智能
6.2 人工智能的应用
点击下载
VIP下载