【精品解析】4.4.1for循环的应用-粤教版(2019)高中信息技术必修一练习

文档属性

名称 【精品解析】4.4.1for循环的应用-粤教版(2019)高中信息技术必修一练习
格式 zip
文件大小 302.6KB
资源类型 试卷
版本资源
科目 信息技术(信息科技)
更新时间 2020-12-23 19:31:47

文档简介

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.(2020高一上·南海期末)有以下程序段:
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.(2020高二上·丽水月考)有如下VB程序段:
For i=1 To 1000
a=Int(Rnd * 100 + 1)
b=Int(Rnd* 100 + 1)
x=a+b
y=a-b
c=Sqr(x)
d=Sqr(y)
Next i
调试时出现如图所示的错误提示,产生此错误的语句是(  )
A.a = Int(Rnd * 100 + 1) B.y = a – b
C.c = Sqr(x) D.d = Sqr(y)
5.(2019高二下·杭州期中)有如下程序段:
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= "0" And c <= "9" Then c = Chr(Asc(c) + 1)
If c >= "A" And c <= "Z" Then c = Chr(Asc(c) + 32)
s =s + c
Next i
若文本框Text1的内容为“Number 2468!”执行程序后,变量s的值为(  )
A.NUMBER 3579! B.NUMBER 2468!
C.number 3579! D.number 2468!
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。程序运行后,在文本框Text1中输人“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项开始,每一项的值是它前面两项之和),主要代码如下:
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 Integer
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
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 = i
Next i
Text1.Text = "GDP变化最大的年份区间是" + Str(imax + 2008) + "-" + Str(imax + 2009)
①、②应填入的代码为(  )
A.①imax=1 ②Abs(a(i - 1) - a(i - 2))
B.①imax=1 ②Abs(a(imax) - a(imax - 1))
C.①imax=2 ②Abs(a(i - 1) - a(i - 2))
D.①imax=2 ②Abs(a(imax) - a(imax - 1))2
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.(2020高二下·慈溪期末)有如下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)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程序。
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.(2020高二下·慈溪期末)有如下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)为了实现上述功能,请在划线处填入合适的代码。
PrivateSubCommand1_Click()
Dim x AsInteger,y As Integer,t AsInteger
Dim I AsInteger,n As Integer,count AsInteger
x=Val(Text1.Text)
y=Val(Text2.Text)
count=0
For i=x To y
List1.AddItem Str(i)
n=i
Do While 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的个数有   个。
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)
Next i
j =1
m=1
n=   
For i=m+1 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位小数。
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程序,请完善划线处内容,完成上述功能。
①   ②   
(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.循环结构表示程序反复执行某个或某些操作,只有用户干预才能终止循环。
答案解析部分
1.【答案】D
【知识点】程序的调试及运行;常量、变量及变量的赋值;循环结构语句及程序实现
【解析】【解答】range(1,6,2)生成的是1,3,5的整数,s=0+1+3+5=9。故答案选D。
【分析】本题考查的是的是Python循环结构及语句。
2.【答案】C
【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值;循环结构语句及程序实现
【解析】【解答】python中range() 函数可创建一个整数列表,一般用在 for 循环中。range(0,5)等价于列表[0,1,2,3,4],故程序结果为1*0*1*2*3*4=0。故答案选C。
【分析】本题考查的是Python的列表函数及循环语句。
3.【答案】A
【知识点】程序的调试及运行;循环结构语句及程序实现
4.【答案】D
【知识点】程序的调试及运行;常量、变量及变量的赋值;循环结构语句及程序实现
5.【答案】C
【知识点】算法的控制结构;运算符、基本运算与表达式
【解析】【解答】本题程序分析如下:
For i = 1 To Len(Text1.Text) ‘使用i来控制循环,i的初值为1,终值为文本框1的字符串的长度,步长为1
c = Mid(Text1.Text, i, 1) ‘按i值从文本框输入的字符串中取一个字符赋给变量c
If c >= "0" And c <= "9" Then c = Chr(Asc(c) + 1) ‘如果c为字符型数字则将c的ASCII码值加1以后变为字符重新对变量c进行赋值,即为字符型数字,其数要加1
If c >= "A" And c <= "Z" Then c = Chr(Asc(c) + 32) ‘如果字符c的值为大写字母则将其转为小写字母后重新赋给变量c
s =s + c ‘将c合并到字符串s的右侧
Next i
由以上可知本题只对输入的数字加增1,对输入的大写字母变为小写字母其他字母或字符不作处理,在 文本框Text1输入“Number 2468!”执行程序后,变量s的值为 ”number3579”,故答案选C。
【分析】本题考查的是mid()函数、ASC()函数、chr()函数的功能。mid()函数是在字符串中按指定位置指定长度取出一个字符或字符串形成一个新的字符串;asc()函数是求字符对应的ASCII码值,chr()是将某个数值转为对应的字符,其中常用ASC()和CHR()函数进行加密、解密编程或字符编辑运算。
6.【答案】C
【知识点】常量、变量及变量的赋值;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】根据条件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。
【分析】本题考查的是对VB程序段语句的理解。
7.【答案】A
【知识点】常量、变量及变量的赋值;循环结构语句及程序实现
【解析】【解答】分析程序:变量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。
【分析】本题主要考查的是VB循环结构程序及常用语句。
8.【答案】B
【知识点】常量、变量及变量的赋值;循环结构语句及程序实现
【解析】【解答】根据斐波那契数列的规律,从第三项开始每一项的值是它前面两项之和,执行完f=f1+f2,接下来应该将f2的值赋给f1,将f的值赋给f2,故代码中①②两处分别应为①f1 = f2 ②f2 = f,故答案选B。
【分析】本题主要考查循环结构及语句。
9.【答案】A
【知识点】分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】分析程序:在循环中,条件If(a(i)-a(i-1))*(a(i+1)-a(i))<0成立时,共有六种情况,分别是i=2,3,5,6,7,9。故答案选A。
【分析】本题考查的是对循环与条件语句的理解。
10.【答案】A
【知识点】查找算法及程序实现;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】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.【答案】D
【知识点】运算符、基本运算与表达式;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】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。
【分析】本题主要考查的是VB函数以及循环语句与分支语句的使用。
12.【答案】C
【知识点】运算符、基本运算与表达式;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】程序分析:
第一次循环 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。
【分析】本题考查的是循环、分支结构语句及基本函数的使用。Mid (  )函数是从文本字符串中指定的开始位置起返回指定长度的字符。
13.【答案】B
【知识点】循环结构语句及程序实现
【解析】【解答】在for循环中,变量i的值依次为1,3,5,7;当i=7时退出循环,此时s=1+1+3+5=10。故答案选B。
【分析】本题考查的是循环结构及语句。
14.【答案】A,C,D
【知识点】循环结构语句及程序实现
【解析】【解答】For循环所包含的语句是以缩进为标志的,选项B错误。故答案选ACD。
【分析】本题考查的是Python中的for循环语句。
15.【答案】C
【知识点】常量、变量及变量的赋值
16.【答案】D
【知识点】常量、变量及变量的赋值;循环结构语句及程序实现
【解析】【解答】分析程序:要实现数据移位,t=4时,第一次移位后,数组变为1,2,4,5,6,3;第二次移位数据变为1,4,5,6,2,3。第三次移位得到结果4,5,6,1,2,3。故①处为a(j)=a(j+1),②处为a(j)=k。故答案选D。
【分析】本题考查的是对循环结构及常用语句的理解。
17.【答案】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.【答案】A
【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值
19.【答案】12
【知识点】程序的调试及运行;循环结构语句及程序实现
【解析】【解答】range(1, 8, 3)相当于整数列表[1,4,7],所以该程序结果为s=0+1+4+7=12。故答案为:12
【分析】本题考查的是Python中的循环语句。range函数由三个参数(起始值、终值、步长值)来决定序列中元素的个数和范围,一般用在for循环中。
20.【答案】i=4 s=10
【知识点】循环结构语句及程序实现
【解析】【解答】分析程序可知:i的值为1~4,循环结束时i =4,s=0+1+2+3+4=10。故答案为:i=4 s=10。
【分析】本题考查的是循环结构及语句。
21.【答案】(1)C
(2)n=n\10;str(count)
(3)0
【知识点】类、对象、属性、方法、事件和事件处理的概念及应用;常量、变量及变量的赋值;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】(1)List1.AddItem中的AddItem是方法名。
(2)第一空:根据do while n>0,以及If n Mod 10=1 Then count=count+1 End If,可以判断,需要将n中的每一个数字取出判断,故填:n=n\10。
第二空:X到Y之间1的个数有count个,注意数据类型,故填:str(count)。
(3)删除加框处代码后,若出现x>y,则for i=x to y的for循环不会执行,所以在文本框Text1中输入“40”,在文本框Text2中输入“10”时,Label3显示X到Y之间1的个数有0个。故答案为:0。
【分析】本题考查的是VB循环结构与分支结构的综合使用。
22.【答案】(1)B
(2)k + 1或其他可行答案;j < k 或 j <> k 或 m < n 或 m <> n或其他可行答案;New_num + a(b(j))或其他可行答案
(3)a(i) < a(m) And a(i) <> "0"或其他可行答案
【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】(1)如果要在名为Form1的窗体标题上显示“删数”,可以在Form Load事件处理过程中添加语句为Form1. Caption =“删数”。故答案为:B;
(2)n为最多能从前多少位取出第一个数字,故n=k+1。剩余的数字数量要满足取出的数量,故填入m <> n。将结果显示,是一个结果变量叠加过程,故填:New_num+a(b(j))。
(3)程序加框处应该是找最小的并且不能为零,故填:a(i)“0”。
【分析】本题考查的是VB程序中循环与分支结构的综合使用。
23.【答案】(1)循环结构
(2)i<=n;s=s+i/(i^2+1)
(3)D
【知识点】运算符、基本运算与表达式;循环结构语句及程序实现
【解析】【解答】(1)根据程序可知,实现该程序功能的主体算法结构是循环结构。故答案为:循环结构;
(2)根据题干,do while循环中是根据n的值执行循环次数,条件为 i<=n,计算公式是s=s+i/(i^2+1);
(3)Int(X):产生不大于X的最大整数,所以使变量s的值四舍五入精确到小数点后第3位小数,可以实现的语句是Int((s * 1000 + 0.5))/1000。故答案选D。
【分析】本题考查的是VB循环结构及常用函数功能。
24.【答案】错误
【知识点】循环结构语句及程序实现
【解析】【解答】循环结构表示程序反复执行某个或某些操作,直到判断条件为假(或为真)时才可终止循环。故答案为:错误。
【分析】本题考查的是循环结构。循环结构:事物的发展具有周期性。
1 / 14.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
【知识点】程序的调试及运行;常量、变量及变量的赋值;循环结构语句及程序实现
【解析】【解答】range(1,6,2)生成的是1,3,5的整数,s=0+1+3+5=9。故答案选D。
【分析】本题考查的是的是Python循环结构及语句。
2.下面的程序运行后的输出结果为(  )
n=1
for i in range(0,5):
n=n*i
print(n)
A.120 B.24 C.0 D.25
【答案】C
【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值;循环结构语句及程序实现
【解析】【解答】python中range() 函数可创建一个整数列表,一般用在 for 循环中。range(0,5)等价于列表[0,1,2,3,4],故程序结果为1*0*1*2*3*4=0。故答案选C。
【分析】本题考查的是Python的列表函数及循环语句。
3.(2020高一上·南海期末)有以下程序段:
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
【知识点】程序的调试及运行;循环结构语句及程序实现
4.(2020高二上·丽水月考)有如下VB程序段:
For i=1 To 1000
a=Int(Rnd * 100 + 1)
b=Int(Rnd* 100 + 1)
x=a+b
y=a-b
c=Sqr(x)
d=Sqr(y)
Next i
调试时出现如图所示的错误提示,产生此错误的语句是(  )
A.a = Int(Rnd * 100 + 1) B.y = a – b
C.c = Sqr(x) D.d = Sqr(y)
【答案】D
【知识点】程序的调试及运行;常量、变量及变量的赋值;循环结构语句及程序实现
5.(2019高二下·杭州期中)有如下程序段:
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= "0" And c <= "9" Then c = Chr(Asc(c) + 1)
If c >= "A" And c <= "Z" Then c = Chr(Asc(c) + 32)
s =s + c
Next i
若文本框Text1的内容为“Number 2468!”执行程序后,变量s的值为(  )
A.NUMBER 3579! B.NUMBER 2468!
C.number 3579! D.number 2468!
【答案】C
【知识点】算法的控制结构;运算符、基本运算与表达式
【解析】【解答】本题程序分析如下:
For i = 1 To Len(Text1.Text) ‘使用i来控制循环,i的初值为1,终值为文本框1的字符串的长度,步长为1
c = Mid(Text1.Text, i, 1) ‘按i值从文本框输入的字符串中取一个字符赋给变量c
If c >= "0" And c <= "9" Then c = Chr(Asc(c) + 1) ‘如果c为字符型数字则将c的ASCII码值加1以后变为字符重新对变量c进行赋值,即为字符型数字,其数要加1
If c >= "A" And c <= "Z" Then c = Chr(Asc(c) + 32) ‘如果字符c的值为大写字母则将其转为小写字母后重新赋给变量c
s =s + c ‘将c合并到字符串s的右侧
Next i
由以上可知本题只对输入的数字加增1,对输入的大写字母变为小写字母其他字母或字符不作处理,在 文本框Text1输入“Number 2468!”执行程序后,变量s的值为 ”number3579”,故答案选C。
【分析】本题考查的是mid()函数、ASC()函数、chr()函数的功能。mid()函数是在字符串中按指定位置指定长度取出一个字符或字符串形成一个新的字符串;asc()函数是求字符对应的ASCII码值,chr()是将某个数值转为对应的字符,其中常用ASC()和CHR()函数进行加密、解密编程或字符编辑运算。
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。程序运行后,在文本框Text1中输人“Text2.text=”Abc1234“”(外括号不包括),则在Text2中显示的内容是(  )
A.TEXT2.TEXTABC1234 B.43212TexttextABC
C.43212TEXTTEXTABC D.TEXTTEXTABC43212
【答案】C
【知识点】常量、变量及变量的赋值;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】根据条件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。
【分析】本题考查的是对VB程序段语句的理解。
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
【知识点】常量、变量及变量的赋值;循环结构语句及程序实现
【解析】【解答】分析程序:变量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。
【分析】本题主要考查的是VB循环结构程序及常用语句。
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
【知识点】常量、变量及变量的赋值;循环结构语句及程序实现
【解析】【解答】根据斐波那契数列的规律,从第三项开始每一项的值是它前面两项之和,执行完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 Integer
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
【知识点】分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】分析程序:在循环中,条件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
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
【知识点】查找算法及程序实现;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】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
Next i
Text1.Text = "GDP变化最大的年份区间是" + Str(imax + 2008) + "-" + Str(imax + 2009)
①、②应填入的代码为(  )
A.①imax=1 ②Abs(a(i - 1) - a(i - 2))
B.①imax=1 ②Abs(a(imax) - a(imax - 1))
C.①imax=2 ②Abs(a(i - 1) - a(i - 2))
D.①imax=2 ②Abs(a(imax) - a(imax - 1))2
【答案】D
【知识点】运算符、基本运算与表达式;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】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。
【分析】本题主要考查的是VB函数以及循环语句与分支语句的使用。
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
【知识点】运算符、基本运算与表达式;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】程序分析:
第一次循环 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。
【分析】本题考查的是循环、分支结构语句及基本函数的使用。Mid (  )函数是从文本字符串中指定的开始位置起返回指定长度的字符。
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=1+1+3+5=10。故答案选B。
【分析】本题考查的是循环结构及语句。
14.下列有关for循环语句说法正确的是(  )。
A.for 循环变量 in 列表后面必须加冒号
B.For循环所包含的语句是不以缩进为标志的。
C.列表的几种表达方式有直接罗列,先定义后使用和使用range(  )函数
D.For循环所包含的语句是以缩进为标志的。
【答案】A,C,D
【知识点】循环结构语句及程序实现
【解析】【解答】For循环所包含的语句是以缩进为标志的,选项B错误。故答案选ACD。
【分析】本题考查的是Python中的for循环语句。
15.(2020高二下·慈溪期末)有如下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)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
【知识点】常量、变量及变量的赋值
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
【知识点】常量、变量及变量的赋值;循环结构语句及程序实现
【解析】【解答】分析程序:要实现数据移位,t=4时,第一次移位后,数组变为1,2,4,5,6,3;第二次移位数据变为1,4,5,6,2,3。第三次移位得到结果4,5,6,1,2,3。故①处为a(j)=a(j+1),②处为a(j)=k。故答案选D。
【分析】本题考查的是对循环结构及常用语句的理解。
17.字符串数组a中a(1)到a(6)的原始数据为57,3,24,34, 6,120,为了对该数组进行排序操作,编写了以下VB程序。
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.(2020高二下·慈溪期末)有如下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
【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值
二、填空题
19.下面的程序段运行后的结果为   。
s=0
for i in range(1,8,3):
s=s+i
print(s)
【答案】12
【知识点】程序的调试及运行;循环结构语句及程序实现
【解析】【解答】range(1, 8, 3)相当于整数列表[1,4,7],所以该程序结果为s=0+1+4+7=12。故答案为:12
【分析】本题考查的是Python中的循环语句。range函数由三个参数(起始值、终值、步长值)来决定序列中元素的个数和范围,一般用在for循环中。
20.运行下列程序,正确的结果是   
s=0
for i in range (1 5):
s=s+i
print("i=",i,"s=",s)
【答案】i=4 s=10
【知识点】循环结构语句及程序实现
【解析】【解答】分析程序可知:i的值为1~4,循环结束时i =4,s=0+1+2+3+4=10。故答案为:i=4 s=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()
Dim x AsInteger,y As Integer,t AsInteger
Dim I AsInteger,n As Integer,count AsInteger
x=Val(Text1.Text)
y=Val(Text2.Text)
count=0
For i=x To y
List1.AddItem Str(i)
n=i
Do While 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的个数有   个。
【答案】(1)C
(2)n=n\10;str(count)
(3)0
【知识点】类、对象、属性、方法、事件和事件处理的概念及应用;常量、变量及变量的赋值;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】(1)List1.AddItem中的AddItem是方法名。
(2)第一空:根据do while n>0,以及If n Mod 10=1 Then count=count+1 End If,可以判断,需要将n中的每一个数字取出判断,故填:n=n\10。
第二空:X到Y之间1的个数有count个,注意数据类型,故填:str(count)。
(3)删除加框处代码后,若出现x>y,则for i=x to y的for循环不会执行,所以在文本框Text1中输入“40”,在文本框Text2中输入“10”时,Label3显示X到Y之间1的个数有0个。故答案为:0。
【分析】本题考查的是VB循环结构与分支结构的综合使用。
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)
Next i
j =1
m=1
n=   
For i=m+1 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)加框处程序代码有误,请改正。
【答案】(1)B
(2)k + 1或其他可行答案;j < k 或 j <> k 或 m < n 或 m <> n或其他可行答案;New_num + a(b(j))或其他可行答案
(3)a(i) < a(m) And a(i) <> "0"或其他可行答案
【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值;分支结构语句及程序实现;循环结构语句及程序实现
【解析】【解答】(1)如果要在名为Form1的窗体标题上显示“删数”,可以在Form Load事件处理过程中添加语句为Form1. Caption =“删数”。故答案为:B;
(2)n为最多能从前多少位取出第一个数字,故n=k+1。剩余的数字数量要满足取出的数量,故填入m <> n。将结果显示,是一个结果变量叠加过程,故填:New_num+a(b(j))。
(3)程序加框处应该是找最小的并且不能为零,故填:a(i)“0”。
【分析】本题考查的是VB程序中循环与分支结构的综合使用。
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程序,请完善划线处内容,完成上述功能。
①   ②   
(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
【知识点】运算符、基本运算与表达式;循环结构语句及程序实现
【解析】【解答】(1)根据程序可知,实现该程序功能的主体算法结构是循环结构。故答案为:循环结构;
(2)根据题干,do while循环中是根据n的值执行循环次数,条件为 i<=n,计算公式是s=s+i/(i^2+1);
(3)Int(X):产生不大于X的最大整数,所以使变量s的值四舍五入精确到小数点后第3位小数,可以实现的语句是Int((s * 1000 + 0.5))/1000。故答案选D。
【分析】本题考查的是VB循环结构及常用函数功能。
四、判断题
24.循环结构表示程序反复执行某个或某些操作,只有用户干预才能终止循环。
【答案】错误
【知识点】循环结构语句及程序实现
【解析】【解答】循环结构表示程序反复执行某个或某些操作,直到判断条件为假(或为真)时才可终止循环。故答案为:错误。
【分析】本题考查的是循环结构。循环结构:事物的发展具有周期性。
1 / 1