最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

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

来源:动视网 责编:小OO 时间:2025-09-25 04:49:01
文档

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

4.4.1for循环的应用-粤教版(2019)高中信息技术必修一练习学校:___________姓名:___________班级:___________考号:___________一、选择题1.下面的程序段运行后的结果为()s=0foriinrange(1,6,2):s=s+iprint(s)A.15.10.12.9【答案】D【解析】【详解】本题考查的是Python循环语句。range(1,6,2)生成的是1,3,5的整数,故s=0+1+3+5=9。选项D正确。2.下面的程序运行后的输出结果为
推荐度:
导读4.4.1for循环的应用-粤教版(2019)高中信息技术必修一练习学校:___________姓名:___________班级:___________考号:___________一、选择题1.下面的程序段运行后的结果为()s=0foriinrange(1,6,2):s=s+iprint(s)A.15.10.12.9【答案】D【解析】【详解】本题考查的是Python循环语句。range(1,6,2)生成的是1,3,5的整数,故s=0+1+3+5=9。选项D正确。2.下面的程序运行后的输出结果为
4.4.1for循环的应用-粤教版(2019)高中信息技术必修一练习

学校:___________姓名:___________班级:___________考号:___________

一、选择题

1.下面的程序段运行后的结果为(    )

s=0

for i in range(1,6,2):

        s=s+i

print(s)

A.15 .10 .12 .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 .24 .0 .25

【答案】C

【解析】

【详解】

本题考查的知识点是Python的列表函数。python中 range() 函数可创建一个整数列表,一般用在 for 循环中。range(0,5)等价于列表[0,1,2,3,4],故程序结果为1*0*1*2*3*4=0,故选项C正确。

3.有以下程序段:

for value in [1,2,3]:

       print(value)

       print("no") 

程序运行后输出的结果为: (   )

A.1  no  2 no  3  no .1  2  3  no

C.1  "no"  2  "no"  3  "no" .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) .y=a–b .c=Sqr(x) .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! .NUMBER2468! .number3579! .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 .43212TexttextABC

C.43212TEXTTEXTABC .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。

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 .3  15 .2  15 .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 .①f1 = f2  ②f2 = f

C.①f1 = f   ②f2 = f1 .①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 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 .7 .8 .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 

    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 .4,5,8,19,10,17

C.2,11,7,6,3,18 .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

Next i 

Text1.Text = "GDP变化最大的年份区间是" + Str(imax + 2008) + "-" + Str(imax + 2009) 

划线处①、②应填入的代码为(   )

A.①imax=1  ②Abs(a(i - 1) - a(i - 2)) .①imax=1  ②Abs(a(imax) - a(imax - 1))

C.①imax=2  ②Abs(a(i - 1) - a(i - 2)) .①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选项。

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 .abcdefgh .ghabcdef .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 .10 .12 .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)End If

Next i

A.13, 15, 25, 37, 23, 54 .16, 44, 23, 51, 22, 22

C.19, 37, 23, 45, 53, 53 .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。

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 .①a(j)=a(j+1)②a(j+1)=k

C.①a(j+1)=a(j) ②a(j)=k .①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为正确选项。

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 .57    120

C.120   57 .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 .1 .6 .7

【答案】A

【解析】

【详解】

本题考查VB程序段。若在文本框Text1中输入字符串“200good2”,根据If Mid(s, i,1)<>Mid(s, n-i+1,1)Then Count=Count+1,可知统计字符串前后对应位置不相等字符个数,故本题选A。

二、填空题

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。

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的个数有____个。

【答案】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"或其他可行答案

【解析】

【详解】

本题考查VB综合能力。(1)程序运行时,若要在名为Form1的窗体标题上显示“删数”,可以在Form Load事件处理过程中添加语句为Form1. Caption =“删数”。(2)n为最多能从前多少位取出第一个数字,故n=k+1。(2)剩余的数字数量要满足取出的数量,故填入m <> n。(3)将结果显示,是一个结果变量叠加过程,故填入New_num+a(b(j))。(5)找最小的并且不能为零,故填入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程序,请完善划线处①、②内容,完成上述功能。

①_____________________________        ②_____________________________

(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.循环结构表示程序反复执行某个或某些操作,只有用户干预才能终止循环。(_______)

【答案】错

【解析】

【分析】

【详解】

本题考查循环结构

循环结构表示程序反复执行某个或某些操作,直到判断条件为假(或为真)时才可终止循环。表述错误

文档

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

4.4.1for循环的应用-粤教版(2019)高中信息技术必修一练习学校:___________姓名:___________班级:___________考号:___________一、选择题1.下面的程序段运行后的结果为()s=0foriinrange(1,6,2):s=s+iprint(s)A.15.10.12.9【答案】D【解析】【详解】本题考查的是Python循环语句。range(1,6,2)生成的是1,3,5的整数,故s=0+1+3+5=9。选项D正确。2.下面的程序运行后的输出结果为
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top