443循环嵌套的应用粤教版高中信息技术必修一练习解析版Word下载.docx

上传人:b****5 文档编号:17371698 上传时间:2022-12-01 格式:DOCX 页数:19 大小:399.40KB
下载 相关 举报
443循环嵌套的应用粤教版高中信息技术必修一练习解析版Word下载.docx_第1页
第1页 / 共19页
443循环嵌套的应用粤教版高中信息技术必修一练习解析版Word下载.docx_第2页
第2页 / 共19页
443循环嵌套的应用粤教版高中信息技术必修一练习解析版Word下载.docx_第3页
第3页 / 共19页
443循环嵌套的应用粤教版高中信息技术必修一练习解析版Word下载.docx_第4页
第4页 / 共19页
443循环嵌套的应用粤教版高中信息技术必修一练习解析版Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

443循环嵌套的应用粤教版高中信息技术必修一练习解析版Word下载.docx

《443循环嵌套的应用粤教版高中信息技术必修一练习解析版Word下载.docx》由会员分享,可在线阅读,更多相关《443循环嵌套的应用粤教版高中信息技术必修一练习解析版Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

443循环嵌套的应用粤教版高中信息技术必修一练习解析版Word下载.docx

Forj=1To6-i

Ifa(j)>

a(j+1)Thent=a(j):

a(j)=a(j+1):

a(j+1)=t

Nextj

数组元素a

(1)到a(6)的数据依次为“55,31,19,42,37,23”,则此程序运行完成后数组元素的数据依次是()

A.55,42,37,31,23,19B.19,23,31,55,37,42

C.19,23,31,37,42,55D.19,31,23,37,42,55

本题考查冒泡排序。

根据外循环语句,该排序只执行三趟,又根据内循环和判断条件Ifa(j)>

a(j+1)Then交换,可知将数值较大的数据往下交换。

原始数据为55,31,19,42,37,23,经过三趟排序后,最终结果为19,31,23,37,42,55。

故本题D选项为正确选项。

3.有如下VB程序段:

a

(1)=1:

a

(2)=1

b

(1)=1:

b

(2)=2

Fori=3To5

a(i)=a(i-1)+a(i-2)

b(i)=b(i-1)+a(i)

执行该程序段后,数组元素b(5)的值为()

A.12B.8C.5D.4

【答案】A

本题考查循环语句和赋值语句。

根据初值,以及循环,a(i)=a(i-1)+a(i-2),b(i)=b(i-1)+a(i)得到结果。

最后b(5)=12,故本题选A。

二、操作题

4.小王利用循环排序思想编写了一个VB程序,用于计算下一轮比赛的出场顺序。

从数据库中读取本轮比赛的人员姓名存在数组xm中,成绩存在数组cj中(成绩均不重复)。

编程实现将这些成绩进行循环升序排列。

要求最低成绩的位置不变,然后依次进行升序排序,即从最小值开始向下尾首相连形成升序数列。

程序运行界面如图所示。

点击“排序”按钮,完成循环升序排序。

(1)“排序”按钮的对象名为_

(2)请在划线处填入合适代码。

(3)加框处代码出错,请改正。

Dimxm(1to100)AsString,cj(1to100)AsInteger

Dimflag(1to100)AsBoolean

PrivateSubForm_Load()

'

从数据库中读取数据,存储到相应数组中,并输出在列表框Listl。

第i个人,姓名为xm(i),成绩为cj(i)。

人员数量存储到变量n中(

)。

代码略

EndSub

PrivateSubCmd__Click()

DimminAsInteger,pminAsInteger

min=cj

(1):

pmin=1

Fori=2Ton

Ifcj(i)<

minThenmin=cj(i):

__①__

flag(pmin)=True

pmin=pmin+1

Ifpmin=n+1Thenpmin=1

Fori=1Ton-2

k=pmin

Forj=1Ton

If②Thenk=j

Nextj

Ifk<

>

pminThen

t=cj(k):

cj(k)=cj(pmin):

cj(pmin)=t

C=xm(k):

xm(k)=xm(pmin):

xm(pmin)=c

pmin=pmin+1

将排序后的人员姓名和成绩输出到列表框List2中,代码略。

【答案】

(1)Cmd

(2)①pmin=i②cj(j)<

cj(k)Andflag(j)=False

(3)pmin=pminModn+1

本题考查VB排序算法。

(1)根据代码,排序按钮的对象名为Cmd。

(2)将最小值的位置记录在pmin,故填入pmin=i。

(3)寻找最小值,并且要保证该值之前没有挑选过,所以填入cj(j)<

cj(k)Andflag(j)=False。

(4)根据题干是循环排序,所以位置也要构成循环,根据约瑟夫环状类似结构,填入pmin=pminModn+1

5.均分红包。

当前有n堆红包,编号为1,2,3,。

n,每堆有若干个红包,红包总数sum是n的倍数。

可以在任一堆上取若干个红包,然后移动,最终使每堆上的红包个数相同。

移红包规则:

①编号为1的堆上的红包,只能移到编号为2的堆上;

②编号为n的堆上的红包,只能移到编号为n-1的堆上;

③其它堆上的红包,可以移到相邻左边或右边的堆上。

现要求找出最少的移动次数使每堆的红包数-样多。

如图所示,在文本框Text1中输入红包堆数n,在文本框Text2中依次输入每堆红包的红包个数(以“,”为分隔符和结束符),单击“移红包次数统计”按钮Command1后,在标签Labe13中显示最少的移动次数。

(1)代码“PrivateSubCommand1_Click()”中的Click是______(单选,填字母:

A.对象名B.事件名C.事件处理过程名D.方法名)

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

ConstSum=40'

红包总个数

PrivateSubCommand1_Click()

DimnAsInteger'

红包的堆数

DimsAsString,kAsInteger

DimavgAsInteger'

最终每堆的红包个数

DimmlAsInteger,m2AsInteger

DimtmpAsInteger,countAsInteger,ansAsInteger

n=__________

s=Text2.Text

avg=Sum/n

tmp=0:

count=0:

ans=0

Fork=1ToLen(s)

c=Mid(s,k,1)

Ifc<

"

"

Then

tmp=__________

count=count+1

Ifcount=1Then

ml=tmp

m2=tmp

Ifml<

avgThen

m2=m2-(avg-m1)

ans=ans+1

________

tmp=0

Nextk

Labe13.Caption=Str(ans)

【答案】B①Val(Textl.text)②tmp*10+Val(c)③m1=m2

本题考查VB综合能力。

(1)Click是事件名。

(2)从text1中得到堆数,填入Val(Textl.text)。

(3)Ifc<

“,”,如果c不是逗号,则累加,将整个数字取出放入tmp,注意数据类型,填入tmp*10+Val(c)。

(4)继续运算,m1重新赋值,故填入m1=m2。

6.某班级学生为毕业晚会的一个节目设计一个仿“V”字造型,先筛选出班级中n名学生的所有男生,然后将参演的男生按照身高,摆出中间低两边高(先右后左)的造型,如下图1所示。

王林同学用VB编写模拟“节目造型”程序,功能如下:

从数据库中导出所有学生编号、性别和身高数据;

单击“筛选排序”按钮Command2,根据身高仿“V”字和造型进行有序排列,并将结果显示在文本框Text2中。

程序运行界面如图2所示。

举例说明如下:

原1-7号男生身高

171172180174176179178

筛选排序后序列

171172174176178179180

“造型设计”后序列

180178174171172176179

图1

身高顺序:

男3号〉男6号〉男7号〉男5号〉男4号〉男2号〉男1号

图2

Dimh(1Ton)AsInteger

Dimheight1(1Ton)AsInteger

Dimheight2(1Ton)AsInteger

DimnAsInteger,iAsInteger,jAsInteger,numAsInteger,tmpAsInteger

Dimsex(1Ton)AsString

PrivateSubForm_Load()

n名学生的身高和性别由数据库导出,分别存储在数组h和sex中,代码略!

PrivateSubCommand1_Click()

b=0

Fori=1Ton'

n名学生中的男生

Ifsex(i)=“男”Then①:

height1(num)=h(i)

Fori=1Tonum-1

Forj=numToi+1Step-1

Ifheight1(j)<

height1(j-1)Then

tmp=height1(j):

height1(j)=height1(j-1):

height1(j-1)=tmp

EndIf

Fori=1Tonum

Text1.Text=Text1.Text+"

"

+Str(height1(i))

PrivateSubCommand2_Click()

Dimleft,rightAsInteger,iAsInteger,midAsInteger

mid=Int((1+num)/2)

left=0:

right=0

height2(mid)=height1

(1)

Fori=1To(num-1)\2

right=right+1

height2(mid+right)=height1(2*i)

left=left+1

IfnumMod2=0Then③

Text2.Text=Text2.Text+"

+Str(height2(i))

(1)若参演的8名男生身高为180、171、173、174、178、175、176、170,程序执行结束后height1(5)的值是。

(2)在程序①、②、③画线处填入适当的语句或表达式。

将程序补充完整:

程序中①画线处应填入;

程序中②画线处应填入;

程序中③画线处应填入;

(1)175

(2)①num=num+1②height2(mid-left)=height1(2*i+1)③height2(num)=height1(num)

根据题干,摆出中间低两边高(先右后左)的造型height1(5)=175。

(2)如果是男生,则男生数量+1,故填入num=num+1。

(3)left表示网左边排序,排序的是奇数位上的数值,故填入height2(mid-left)=height1(2*i+1)。

(4)如果整体数量是偶数个,则需要把最后一个也添加到数组中,故填入height2(num)=height1(num)。

7.小龙同学设计了一个求四则混合运算结果的程序,用于计算不带括号的+、-、*、\的运算,\为整除运算,且此处要求*和\的优先级相同。

在表达式中输入待求解的表达式,以=结尾。

按下Command1“计算”按钮后,在标签控件Label1中输出运算结果。

程序界面如下图所示:

(1)在表达式中输入15-22\5*2+7=,则输出的结果是。

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

Functioncalculate(xAsInteger,yAsInteger,opAsString)AsIntegerIfop="

+"

Thencalculate=x+y

Ifop="

-"

Thencalculate=x-yIfop="

*"

Thencalculate=x*yIfop="

\"

Thencalculate=x\y

EndFunction

Functionstate(opAsString)AsIntegerIfop="

#"

Thenstate=-1

="

Thenstate=1

Ifop="

'

Thenstate=3

DimsAsString,lengthAsInteger,tAsStringDimkAsInteger,qAsInteger

Dimopt(0To3)AsStringDimiAsInteger

Dims1AsString

Dima(1To3)AsIntegers=Text1.Text

length=Len(s)

t="

:

k=0:

q=0:

opt(q)="

Fori=1Tolengths1=Mid(s,i,1)

Ifs1>

="

0"

Ands1<

9"

Then

t=t+s1

k=k+1a(k)=Val(t)t="

DoWhile'

a(k-1)=calculate(a(k-1),a(k),opt(q))

k=k-1

q=q-1

Loop

q=q+1

Ifs1="

ThenLabel1.Caption=Str(a

(1))

Nexti

(1)14

(2)①Ifop=“\”Thenstate=3②state(s1)<

=state(opt(q))③opt(q)=sl

【分析】

(1)15-22\5*2+7结果为14。

(2)如果运算符是除号,则state=3,故填入Ifop=“\”Thenstate=3。

(3)根据优先级进行运算,若前一个运算符的优先级比后一个运算符高或者相等,则可进行a(k-1)和a(k)的运算,故填入state(s1)<

=state(opt(q))。

(4)将运算符记录在opt数组中。

8.若一个三位数abc满足,

则称abc为水仙花数。

如三位数153满足

,则153是水仙花数。

以下是找出所有水仙花数的程序,请把程序补充完整。

(a为百位数、b为十位数、c为个位数)

DimiAsInteger,aAsInteger,bAsInteger,cAsInteger

Fori=100To____________

a=i\100

b=______________

c=i-100*a-10*b

If_______________________Then

Printi

【答案】999(i-a*100)\10或(iMod100)\10i=a^3+b^3+c^3

本题考查枚举算法。

枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:

可预先确定候选答案的数量;

候选答案的范围在求解之前必须有一个确定的集合。

(1)三位数的范围是100-999,所以第一空为999。

(2)b是三位数的中间那个数字,所以该空代码为(i-a*100)\10或(iMod100)\10。

(3)如果符合水仙花数的条件,则打印,故该空为i=a^3+b^3+c^3。

9.小王基于选择排序算法编写了一个VB程序,功能如下:

数组a有n*n个元素,按n行n列进行排列,按列进行升序排序。

例如6*6的数组,第一列将a

(1),a(7),a(13),a(19),a(25),a(31)进行排序。

运行程序,在列表框List1中显示n*n个数列单击“排序”按钮Command1,在列表框List2中显示排序后的结果,程序运行界面如图所示。

请回答下列问题:

(1)n=6时运行结果如图所示,图中1处“47”在数组a中下标是_______(填数字)。

(2)为了实现上述功能,请在划线处填写合适的代码。

①_______________

②_______________

(3)程序中加框处代码有错,请改正。

_________________

Constn=6

Dima(1Ton*n)AsInteger

PrivateSubForm_Load()'

产生n*n个数组元素,每行按n个数显示在list1中

Fori=1Ton*n

a(i)=Int(Rnd*90)+10

s=s+Str(a(i))

If①____________Then

List1.AddItems

s="

Nexti

DimiAsInteger,jAsInteger,wAsInteger,sAsString

k=i

Forj=k+nTo②___________

Ifa(k)>

a(j)Thenk=j

If

Thent=a(k):

a(k)=a(i):

a(i)=t

将排序后数组a的元素,按每行n个数显示在list2中,代码略

【答案】12iModn=0

n*nStepn

k<

i或a(k)<

a(i)

本题考查VB综合能力,选择排序算法等。

(1)根据矩阵排列,每行每列都是n个,可知图中1处47在数组a中下标是12。

(2)List1中是按每行输出,所以当一行数量达到n个时,输出。

则第一空的代码为iModn=0。

(3)因为是按照列排序,所以在内循环的终值将所有数组元素包括,限定步长为n,这样就可以保证按列比较,故第二空代码为n*nStepn。

(4)根据选择排序特性,当a(k)<

a(i)时,交换,故改为a(k)<

a(i)。

10.编写VB程序,实现如下功能:

在文本框Text1中输入二进制数,单击“转换”命令按钮Command1,在文本框Text2中输出对应的十六进制数。

程序运行界面如图所示,请回答下列问题:

(1)如果输入的二进制数为“1101010”,则得到的结果为____________。

PrivateFunctionbw(xAsInteger,yAsString)AsString

函数bw功能:

若二进制位数不足,通过在前面添"

使得位数为4的倍数

DimrAsInteger,iAsInteger

r=xMod4

Ifr<

0Then

Fori=1To4-r

y="

+y

x=Len(y)

bw=______________

DimmAsString,nAsInteger,iAsInteger,aAsInteger

DimsAsInteger,s1AsString,jAsInteger

m=Text1.Text

n=Len(m)

Text2.Text="

m=____________'

调整m的位数为4的倍数

Fori=1Ton-3Step4

s=0

Forj=iToi+3

a=Val(Mid(m,j,1))

s=_______________

Ifs>

=10Then

s1=Chr(Asc("

A"

)+s-10)

Else

s1=CStr(s)'

函数CStr类似于Str,但无前导空格

Text2.Text=Text2.Text+s1

【答案】6Aybw(n,m)s*2+a

本题考查VB综合能力,进制转换等。

(1)根据题意,将1101010转为十六进制,得到结果为6A。

(2)在自定义函数内部,需要有返回值,故代码第一空填写为y。

(3)此处语句为调用自定义函数,将n和m带入自定义函数,故此空语句为bw(n,m)。

(4)此处语句为将二进制转换为十进制,叠加语句可以是结果变量乘以进制数然后加上当前数值,故代码为s*2+a。

11.某加密算法的明文和密钥均由英文字母组成,且密钥循环使用,其加密规则如下:

①明文字符与对应密钥的ASCII码转化为二进制后求异或(对应位相同时结果为0,对应位不同时结果为1,如二进制1001与二进制1100的异或值为0101),并将异或结果转换为十进制p;

②如果处在奇数位,则将明文字符循环后移p个位置,否则将明文前移p个位置。

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

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1