441for循环的应用粤教版高中信息技术必修一练习解析版.docx

上传人:b****4 文档编号:6588108 上传时间:2023-05-10 格式:DOCX 页数:21 大小:130.54KB
下载 相关 举报
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第1页
第1页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第2页
第2页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第3页
第3页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第4页
第4页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第5页
第5页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第6页
第6页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第7页
第7页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第8页
第8页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第9页
第9页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第10页
第10页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第11页
第11页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第12页
第12页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第13页
第13页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第14页
第14页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第15页
第15页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第16页
第16页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第17页
第17页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第18页
第18页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第19页
第19页 / 共21页
441for循环的应用粤教版高中信息技术必修一练习解析版.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

441for循环的应用粤教版高中信息技术必修一练习解析版.docx

《441for循环的应用粤教版高中信息技术必修一练习解析版.docx》由会员分享,可在线阅读,更多相关《441for循环的应用粤教版高中信息技术必修一练习解析版.docx(21页珍藏版)》请在冰点文库上搜索。

441for循环的应用粤教版高中信息技术必修一练习解析版.docx

441for循环的应用粤教版高中信息技术必修一练习解析版

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

学校:

___________姓名:

___________班级:

___________考号:

___________

一、选择题

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

s=0

foriinrange(1,6,2):

s=s+i

print(s)

A.15B.10C.12D.9

【答案】D

【解析】

【详解】

本题考查的是Python循环语句。

range(1,6,2)生成的是1,3,5的整数,故s=0+1+3+5=9。

选项D正确。

2.下面的程序运行后的输出结果为()

n=1

foriinrange(0,5):

n=n*i

print(n)

A.120B.24C.0D.25

【答案】C

【解析】

【详解】

本题考查的知识点是Python的列表函数。

python中range()函数可创建一个整数列表,一般用在for循环中。

range(0,5)等价于列表[0,1,2,3,4],故程序结果为1*0*1*2*3*4=0,故选项C正确。

3.有以下程序段:

forvaluein[1,2,3]:

print(value)

print("no")

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

()

A.1no2no3noB.123no

C.1"no"2"no"3"no"D.123"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–bC.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!

”,根据代码fori=1tolen(text1.text),c=Mid(Text1.Text,i,1),Ifc>=“0”Andc<=“9”Thenc=Chr(Asc(c)+1),若取出的字符c是数字,则往后推移一个数字。

Ifc>=“A”Andc<=“Z”Thenc=Chr(Asc(c)+32),如果取出的字符c是大写字母,则变为小写字母。

其余字符不变。

故可知本题选C。

6.有如下VB程序段:

s=Text1.Text

Fori=1ToLen(s)

ch=Mid(s,i,1)

Ifch>="A"Andch<="Z"Thent=t+ch

Ifch>="a"Andch<="z"Then

ch=Chr(Asc(ch)-32)

t=t+ch

ElseIfch>="0"Andch<="9"Then

t=ch+t

EndIf

Nexti

Text2.Text=t

已知'A'的ASCI码为65,'a'的ASCI码为97.程序运行后,在文本框Textl中输人“Text2.text=”Abc1234“”(外括号不包括),则在Text2中显示的内容是(

A.TEXT2.TEXTABC1234B.43212TexttextABC

C.43212TEXTTEXTABCD.TEXTTEXTABC43212

【答案】C

【解析】

【详解】

本题考查VB程序段。

根据判断条件Ifch>=“A”Andch<=“Z”Thent=t+ch,大写字母直接顺序叠加,又Ifch>=“a”Andch<=“z”Thench=Chr(Asc(ch)-32)t=t+ch,可知,小写字母转换为大写字母后叠加。

再看Ifch>=“0”Andch<=“9”Thent=ch+t,可知数字采取倒序叠加,故最后结果数字在前,全都是大写字母,故选C。

7.有如下程序段:

DimiAsInteger,tAsInteger,sAsInteger

s=0:

t=0

Fori=0To10

IfiMod5=0thens=s+1

t=t+i

Nexti

Text1.Text=Str(s)

执行该程序段后,变量s和t的值分别是()

A.355B.315C.215D.255

【答案】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的值分别是355,故本题选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

Fork=3Ton

f=f1+f2

Nextk

Label2.Caption="斐波那契数列第"+Str(n)+"项的值为"+Str(f)

代码中①②两处分别应为()

A.①f2=f1②f1=fB.①f1=f2②f2=f

C.①f1=f②f2=f1D.①f2=f②f1=f2

【答案】B

【解析】

【详解】

本题主要考查VB程序的执行。

f=f1+f2,接下来应该将f2的值赋给f1,将f的值赋给f2,故代码中①②两处分别应为①f1=f2②f2=f,故本题选B选项。

9.有如下VisualBasic程序段:

PrivateSubCommand1_Click()

Dima(1To10)AsInteger,iAsInteger,kAsInteger

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

Fori=2To9

If(a(i)-a(i-1))*(a(i+1)-a(i))<0Thenk=k+1

Nexti

Text1.Text=Str(k)

EndSub

该程序段运行后后,文本框Text1中显示的内容是()

A.6B.7C.8D.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程序段:

Fori=1To6

a(i)=Int(Rnd*20)+1:

b(i)=i

Nexti

Fori=1To5

Forj=i+1To6

Ifa(b(i))>a(b(j))Then

t=b(j):

b(j)=b(i):

b(i)=t

EndIf

Nextj

Nexti

i=1:

j=6:

s="":

Key=Val(Text1.Text)

DoWhilei<=j

m=(i+j)\2

IfKey=a(b(m))ThenExitDo

IfKey

s=s+Str(m)

Loop

Text2.Text=s

在文本框Text1中输入10,运行以上程序段后,文本框Text2中显示的内容为354,则a数组中a

(1)到a(6)各元素的值可能的是()

A.11,6,4,13,18,15B.4,5,8,19,10,17

C.2,11,7,6,3,18D.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中显示的内容为354,所以判断key10,故本题选A选项。

11.数组a中存储着某市2010年到2019年的GDP数值,编写VB程序,实现找出相邻两年GDP变化最大(即相邻两年GDP差值最大)的年份区间。

若有多个符合要求的年份区间,只输出距今最近的年份区间。

部分代码如下所示

DimiAsInteger,imaxAsInteger

Fori=3To10

IfAbs(a(i)-a(i-1))>=②Thenimax=i

Nexti

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))

【答案】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)

Fori=1Ton

j=(i-1)Mod3+1

Ifm>nThenExitFor'退出For循环

c=c+Mid(s,m-j+1,1)

IfjMod3=0Thenm=m+3

Nexti

Ifi

执行该程序段后,变量c的值是()

A.abcdefB.abcdefghC.ghabcdefD.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

foriinrange(1,6,2):

s=s+i

print(s)

A.15B.10C.12D.

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

Fori=1To6

a(i)=Int(Rnd*21)*2+11

IfIMod2=1Then

a(i)=a(i)+2

Else

Ifa(i)

EndIf

Nexti

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

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

Fori=t-1To1Step-1

k=a(i)

Forj=iTon-1

Nextj

n=n-1

Nexti

A.①a(j+1)=a(j)②a(j+1)=kB.①a(j)=a(j+1)②a(j+1)=k

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

DoWhilei<=6

Forj=6Toi+2Step-2

Ifa(j)>a(j-2)Thent=a(j):

a(j)=a(j-2):

a(j-2)=t

Nextj

i=i+2

Loop

则程序运行之后,数组元素a

(1)和a

(2)的值分别是(  )

A.63B.57120

C.12057D.634

【答案】B

【解析】

【详解】

本题考查排序算法。

i=2,j=6to4,经过交换,a

(1)到a(6)数据变为57,120,24,3,6,34。

i=4,j=6to6,经过交换,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

Fori=1Ton\2

IfMid(s,i,1)<>Mid(s,n-i+1,1)Then

Count=Count+1

EndIf

Nexti

若在文本框Text1中输入字符串“200good2”,则Count的值为(  )

A.3B.1C.6D.7

【答案】A

【解析】

【详解】

本题考查VB程序段。

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

二、填空题

19.下面的程序段运行后的结果为__________

s=0

foriinrange(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

foriinrange(15):

s=s+i

print("i=",i,"s=",s)

【答案】i=4s=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

Fori=xToy

List1.AddItemStr(i)

n=i

DoWhilen>0

IfnMod10=1Then

count=count+1

EndIf

____

Loop

Nexti

Label3.Caption="X到Y之间1的个数有"+____+"个"

EndSub

(3)如果删除加框处代码,并运行程序,在文本框Text1中输入“40”,在文本框Text2中输入“10”,单击“统计”按钮,则标签框Label3显示X到Y之间1的个数有____个。

【答案】Cn=n\10str(count)0

【解析】

【详解】

本题考查VB综合能力。

(1)List1.AddItem中的AddItem是方法名。

(2)代码第一空,根据dowhilen>0,以及IfnMod10=1Thencount=count+1EndIf,可以判断,需要将n中的每一个数字取出判断,故代码第一空填入n=n\10。

(3)代码第二空,X到Y之间1的个数有count个,注意数据类型,故填入str(count)。

(4)如果删除加框处代码,若出现x>y,则fori=xtoy的for循环不会执行,所以在文本框Text1中输入“40”,在文本框Text2中输入“10”时,Label3显示X到Y之间1的个数有0个。

22.编写一个VB程序,实现如下功能:

输入s位数字构成的数字字符串(第1位数字不为0),移除k(0

新数第1位不能为0)。

例如8个数字构成的数字字符串“71803296”,移除3个数字,得到5位数字构成的最小数是“10296”,具体算法如图a所示。

算法分析:

要使得到的5位数字最小,首先需保证能取到5个数字,且首位应尽量小,那么取首位数的范围应保证余下有4个数字,即在前4位中选最小非0的数字。

程序运行时,在文本框Text1中输入一个数字字符串,在文本框Text2中输入要移除的数字个数,单击“运行”按钮CmdRun后,在标签Labell显示得到的最小新数,程序运行界面如图b所示。

(1)程序运行时,若要在名为Form1的窗体标题上显示“删数”,可以在FormLoad事件处理过程中添加语句为_________(单选,填字母:

A.Form1.Text="删数"\B.Form1.Caption="删数"\C.Form1.AddItem"删数")

(2)实现上述功能的VB程序代码如下,请在划线处填入合适的代码。

PrivateSubCmdRun_Click()

DimNumAsString,New_numAsString'Num为输入的数字字符串

DimiAsInteger,jAsInteger,mAsInteger,

DimAsInteger,sAsInteger,kAsInteger

Dima(30)AsString,b(30)AsInteger

Num=Text1.Text:

s=Len(Num)

k=Val(Text2.Text)'k为删除数字个数

Fori=1Tos

a(i)=Mid(Num,i,1)

Nexti

j=1

m=1

n=①_________

Fori=m+lTon'取第一

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2