2021年浙江高考信息技术复习练习讲义:六 算法的程序实现_第1页
2021年浙江高考信息技术复习练习讲义:六 算法的程序实现_第2页
2021年浙江高考信息技术复习练习讲义:六 算法的程序实现_第3页
2021年浙江高考信息技术复习练习讲义:六 算法的程序实现_第4页
2021年浙江高考信息技术复习练习讲义:六 算法的程序实现_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专题六算法的程序实现

探考情悟真题

【考情探究】

5年考情预测热

考点考试内容考试要求

考题示例考向难度度

解析算法的思想方法2016浙江4月选考,14,5

分;

2017浙江4月选考,14,5

解析算

分;进制转换、质数问题及其他数

法及程C

解析算法的程序实现2019浙江1月学考,11,5论问题'数学猜想等

序实现

分;

2019浙江6月学考,11,5

枚举算法的思想方法2016浙江10月选考,14,5

分;

2017浙江“月选考」4,5字符串处理问题是考试热

枚举算分;点,如在字符串中利用逗

法及程C号、空格、数字等特殊符

枚举算法的程序实现2018浙江4月选考,14,5号完成_些统计或计算功

序实现

分;能

2018浙江11月选考.14,5

冒泡排序的思想方法2015浙江10月选考,16,4

分;

2016浙江4月选考,11,2排序算法优化;冒泡排序变

排序算

分;形,如双向排序、奇偶分开

法及程C★★★A

冒泡排序的程序实现2016浙江10月选考,16,3排序,素数合数分开排★

序实现

分;序、去重复数排序等

2017浙江11月选考,16,3

分;

2019浙江4月选考,16,3

选择排序的思想方法2017浙江4月选考,12,2

排序变形,如双向排序、奇

分;

★★

C偶分开排序、素数合数分

选择排序的程序实现

2018浙江4月选考,16,3开排序等

顺序查找的思想方法顺序查找比较简单,一般不

查找算

单独考,会结合其他知识

2017浙江4月选考,16,3★★

法及程C点,比如在数列中插入数、

分☆

顺序查找的程序实现

序实现删除数列中的重复数、w

找替换等

对分杳找的思想方法2015浙江10月选考,11,2

分;

2016浙江4月选考,12,2

分.

一类题是考查对分查找的

2016浙江10月选考,12,2运用:如查找次数、查找中

分;各个变量值的变化;另一类

2017浙江1月选考,IL2题是将数据源序列由单一

查找算分;的从小到大变成如奇偶分

法及程C开数列、循环有序数列、

对分查找的程序实现201711★★★★

浙江月选考,⑵2左右交替上升阚等,此类:

序实现

分:数列往往是分成前后两个

2018浙江4月选考,12,2有序数列,查找过程中,对

分;分的主要思想不变,无非是

增加了一些条件设置

2018浙江11月选考,16,3

分;

2019浙江4月选考,12,2

递归算递归算法的思想方法递归算法本质上是自定义

法及程b函数的应用,到目前为止,

递归算法的程序实现

序实现未在真题中出现

算法在通过Connection对象连

目前关于数据库一种新的

数据管接数据库2016

浙江10月选考,17,6考法是选择题形式,只要掌..

*

分握连接数据库并读取数据☆

理中的通过Recordset对象读

应用取数据表中的数据库的标准代码即可。此外

要学会分析数组变量中存

算法在数据管理中的应

储的数据内容和类型,并掌

握数组下标的灵活运用

分析解读本专题主要考查几大算法的思想方法和程序实现,包括枚举、解析、排序、查找、递归,题型有选择题和非选择题。

选择题为第11和12题、非选择题为第15和16题,这几题考杳排序算法与对分查找的频度较高,难度为中等或较难。

纵观几次真题,程序题有逐年加难的趋势。试题中对于算法的考查不再局限于算法的基本形,而是在基本形的基础上做了许多

变形,比如冒泡排序的几种变式,对分查找的变式等。还有一种变化是,在基本形的基础上增加程序的功能,比如对排序算法进行改

进从而提高排序的效率、记录排序中数据的移动过程,利用查找算法杳找并删除数列中的重复数据等。

还有一个重要变化是,最近几次的真题对几个经典算法的考查相对弱化,开始加强对数组的考查。往往在选择题最后2个题中

有一个是考查数组的综合运用,该题往往难度较大。一般选择题中保留一题考查排序或对分查找,考对分查找的概率较高。

黝§库程序题一般难度不大,可能是篇幅太长的缘故,大题中考数据库的概率并不高,有很多题都是一句话带过:从数据库中读

取了什么数据存储到什么数组变量中。读取数据并存储到数组变量中后,对数组的综合运用相对难度大一些,要学会分析题中各数

组变量的作用,分别存储了什么类型的数据,以及数组下标的灵;舌运用。目前数据库可能会有一种新的考法,以选择题的形式,考查

连接数据库和读取数据库的基本方法和代码。要掌握从代码中分析数据库文件的名称、数据表的名称,以及数据表中字段的读取

方法、记录集的移动方法等基础知识。

破考点练考向

【考点集训】

考点一解析算法及程序实现

1.(2018宁波“十校联考”,16,3分)在VB的算术运算中,最大的实数类型Double有效位数也只有15位。为了实现除法运算保留

任意位数,小明根据除法原理,编写了如下程序,功能如下:在文本框Textl中输入被除数(正整数),在文本框Text2中输入除数(正

整数),在文本框Text3中输入保留小数位数,单击按钮Commandl,在标签Label1中显示除法运算的商。程序运行界面如图所示,

但加框处代码有错,请改正。

PrivateSubCommand1_C1ick()

Dimx,yAsInteger

DimnAsInteger

DimsAsString

x=Vai(Textl.Text):y=Vai(Text2.Text)

n=Vai(Text3.Text)

s=s+Str(x\y)

s=s+"

k=xMody

Fori=1Ton

|x=x+k*10|'(1)

k=xMody

Nexti

Label1.Caption="商为:"+s

EndSub

答案(Dx=k*10(2)s=s+Str(x\y)

2.(2018浙江十校联盟选考适应性考试,14,5分)编写“二进制数转换为十六进制数”程序,实现如下功能:在文本框Text!中输

入一个二进制数,单击“转换”按钮Commandl,将二进制数转换为十六进制数并在文本框Text2中显示。程序运行界面如图所示。

⑴设计如图所示的程序界面,至少要使用个类(填数字)。

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

PrivateSubCommandIClickO

DimsiAsString,s2AsString

DimiAsInteger,xAsInteger

Constcode=”0123456789ABCDEF”

si=Textl.Text:s2="”

DoWhileLen(sl)Mod400

si="0"+si

Loop

x=0:i=1

DoWhilei<=Len(sl)

x=x*2+Val(Mid(si,i,1))

i=i+l

If①Then

s2=s2+Mid(code,x+1,1)

EndIf

Loop

Text2.Text=s2

EndSub

⑶若文本框Textl中输入的内容为“101101”,单击“转换”按钮后,文本框Text2中显示的内容是0

答案(1)4⑵①iMod4=1或(i-l)Mod4=0(或其他等价答案)②x=0⑶2D

考点二枚举算法及程序实现

L(2019宁波新高考适应性考试)得分问题:给出一个由A和X组成的字符串,统计字符的得分之和。每个A的得分为已经连续出

现的A的个数,X得分为0。例如,AAXXAXXAAA的得分为1+2+0+0+1+0+0+1+2+3。现编写一个程序,功能如下:在文本框Text1中输

入字符串,单击“统计”按钮Cmd_Sta后,程序计算得分,结果显示在Text2中。

(l)Cmd_Sta对象属于类(单选,填字母:A.Form/B.Label/C.TextBox/D.CommandButton),

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

PrivateSubCmd_Sta_Click()

DimsumAsInteger,iAsInteger,entAsInteger

DimcAsString,szAsString

sz=TextLText

ent=0:sum=0

Fori=1ToLen(sz)

Ifc="A"Then

sum=sum+ent

Else

ent=0

EndIf

Nexti

Tcxt2.Text=Str(sum)

EndSub

⑶运行^亥程序,输入数据如上图所示,程序执行到循环结束时,变量ent的值为0

答案(1)D(2)①c=Mid(sz,i,1)或c=Mid(Textl.Text,i,1)②ent=ent+1(3)3

2.珠心算是在大脑中以算盘表象作为载体,运用珠算法则所进行的计算。某学校的珠心算老师采用一种快速考查珠心算加法能力

的测验方法。他随机给出一个正整数集合,集合中的数各不相同,然后要求学生回答:其中共有多少个数恰好等于集合中另外两个

(不同的)数之和?例如对于集合U,2,3,4},一共有2个数等于集合中另外两个数之和,它们是3、4(4=3+1,3=2+1)。将上述算法编

写成程序,其功能如下:程序运行时产生n个范围在[1,100]内的不同的随机整数存储在数组a中,并在列表框List1中显示。单击

按钮Command1后,在标签Label1上输出结果,如图所示。

⑴对于集合{1,2,3,4,5.6},一共有个数等于集合中另外两个数之和。

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

Constn=12

Dima(lTon)AsInteger

Dimflag(lTo100)AsBoolean

PrivateSubForm_Load()

DimiAsInteger,tAsInteger

Fori=lTo100

flag(i)=False

Nexti

i=l

DoWhilei<=n

t=Int(Rnd*100)+1

IfNotflag(t)Then

Listl.AdditemStr(t)

flag(t)=True

i=i+l

EndIf

Loop

EndSub

PrivateSubCommandl_Click()

DimiAsInteger,jAsInteger,ansAsInteger

ans=0

Fori=lTon

Forj=i+lTon

Ifa(i)+a(j)<=100Then

If®Then

ans=ans+l

flag(a(i)+a(j))=False

EndTf

Nextj

Nexti

Label1.Caption="共有"+Str(ans)+”个数!"

EndSub

答案(1)4(2)①a(i)=t②flag(a(i)+a(j))或flag(a(i)+a(j)):True③EndIf

考点三排序算法及程序实现

1.(2019金华十校第一学期调研考试,11,2分)有一个数组,采用冒泡排序,第一翩E序后的结果为3.18,5,35,8,9,11,13,32,那么

该数组的原始顺序不可能星()

A.18,5,35,8,9,11,13,32,3

B.18,5,35,8,9,11,3,13,32

C.18,5,35,3,8,9,11,13,32

D.3,18,5,35,13,11,32,8,9

答案D

2.(2020届名校协作体信息技术试题)某排序算法的VB程序段如下:

k=1

Fori=1To2

Forj=1To6-2*i

Ifk*a(j)<k*a(j+2)Then

t=a(j):a(j)=a(j+2):a(j+2)=t

EndIf

k=-k

Nextj

Nexti

数组元素a⑴到a(6)的初始值依次为“15,11,58,38,26,9”,该程序段执行后,数组元素a⑴到a(6)的值分别为()

A.58,9,26,11,15,38B.58,38,26,11,15,9

C.15,38,26,11,58,9D.58,38,26,15,11,9

答案A

3.(2018温州新力量联盟期末)有如下VB程序段:

Constn=8

Dima(lTon)AsInteger

Fori=1Ton

a(i)=Int(Rnd*20)

Nexti

x=n\2

Fori=xTo2Step-1

Forj=1Toi-1

Ifa(j)<a(i)Then

t=a(j):a(j)=a(i):a(i)=t

EndIf

Nextj

Nexti

i=n

DoWhilei>x+1

k=i

Forj=i-lTox+lStep-1

Ifa(j)>a(k)Thenk=j

Nextj

Ifk<>iThen

t=a(k):a(k)=a(i):a(i)=t

EndIf

i=i-1

Loop

执行完这段代码后,数组a中各个元素的值可能的是()

A.2,8,9,11,16,16,7,3B,19,19,18,12,9,8,6,6

C.20,17,10,10,5,II,13,16D.14,11,10,5,0,6,15,15

答案D

4.(2018宁波“十校联考”期末)若有以下数据:64,57,22,96,71,分别存储在a(1)至a(5)中,经过以下程序段处理后的数据

依次为()

Dima(lTo6)AsInteger

s=0

Fori=1To5

Ifa(i)Mod2=1Thens=s+1

Nexti

Fori=1To4

Ifa(i)Mod2=0Then

Forj=5Toi+1Step-1

Ifa(j)Mod2=1Then

a(6)-a(i):a(i)=a(j):a(j)=a(6):ExitFor

EndIf

Nextj

EndIf

Nexti

Fori=s+2To5

k=i-1

Forj=iTo5

Ifa(k)>a(j)Thenk=j

Nextj

Ifk<>i-1Then

a(6)=a(i-1):a(i-1)=a(k):a(k)=a(6)

EndIf

Nexti

A.22,57,64,71,96B.71,57,22,96,64

C.71,57,22,64,96D.57,71,22,64,96

答案C

考点四查找算法及程序实现

1.(2019浙江“七彩阳光”联盟期初联考)某对分有找算法部分代码如下:

i=1:j=1000:flag=True:p=0

key=Vai(Textl.Text)

DoWhilei<=jAndflag

m=(i+j)\2

p=p+1

Ifa(m)=keyThenflag=False

Ifa(m)>keyThenj=m-1Elsei=m+1

Loop

数组元素a⑴到a(1000)中存放着升序排列的数据。下列说法正确的是()

A.若key的值小于a(1),则执行该段程序后,变量j的值等于1

B.若key的值等于a(l),则执行该段程序后,变量p的值等于10

C.若key的值等于a(1000),则执行该段程序后,变量i的值等于1001

D.无论key的值是否在数组a中,执行该段程序后,变量i的值均不可能等于m

答案C

2.(2018温州九校联考,12,2分)有如下VB程序段:

i=l:j=10:p=0

f=False

k=Int(Rnd*100)+0.5

DoWhilei<=jAndNotf

m=Fix((i+j)/2+0.5)

Tfk=a(m)Then

f=True

Elselfk<a(m)Then

j=m-l:p=p+l

Else

i=m+l:p=p-l

EndIf

Loop

Label1.Caption=Str(p)

数组元素a(1)到a(10)的值依次为“5,16,22,28,35,43,52,67,78,89”,执行该程序段后,Label1的值不可能是()

A.-3B.-lC.1D.3

答案D

3.某对分查找算法的VB程序段如下:

k=Val(Tcxtl.Text)

i=l:j=6:Labell.Caption="":f=Ealse

DoWhilei<=jAndNotf

m=(i+j)\2

Ifa(m)=kThenf=True

Ifa(m)>a(i)Then

Ifa(i)<=kAndk<a(m)Thenj=m-lElsei=i+l

Else

Ifa(m)<kAndk<=a(j)Theni=i+lElsej=j-l

EndIf

Label1.Caption=Label1.Caption+Str(a(m))

Loop

数组元素a(1)到a(6)的值依次为“58,66,72,24,35,40”,在文本框Text1中输入的值为35,执行该程序段,标签Label1中显示

的值是()

A.7235B.2435

C.722435D.72242435

答案D

4.(2019五校联考)某对分查找算法的VB程序段如下:

Key=Int(Rnd*49)*2+1

s=0:i=1:j=10

DoWhilei<=j

m=(i+j)\2

IfKey=a(m)ThenExitDo

IfKey<a(m)Then

j=m-1:s=2*s

Else

i=m+1:s=2*s+1

EndIf

Loop

数组a⑴到a(10)的值依次为“2,6,7,15,20,24,27,43,52,63”,执行该程序段后,s的值不可熊为()

A.2B.3C.5D.15

答案A

考点五递归算法及程序实现

1.某同学用伯编码如下程序:

PrivateSubCommand1ClickO

DimkAsInteger,aAsInteger,bAsInteger

a=Vai(Textl.Text):b=Vai(Text2.Text)

Label1.Caption=trans(a,b)

EndSub

Functiontrans(niAsInteger,nAsInteger)AsString

Ifm<>0Then

r=mModn

trans=trans(m\n,n)+Str(r)

Else

trans="0"

EndIf

EndFunction

程序运行时,在文本框Text1和Text2中分别输入11和2,则Label1中的输出结果是()

A.01011B.1011C.01101D.11010

答案A

2.楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,探究共有多少种不同的走法。

⑴完善程序:

PrivateSubCommand1Click()

DimnAsInteger

n=Vai(Textl.Text)

Text2.Text=Str(f(n))

EndSub

Functionf(aAsInteger)

Ifa=1Then

f=1

Elselfa=2Then

f=①

Else

f=②

EndIf

EndFunction

⑵若有10阶台阶,共有种走法。

答案(D①2②f(a-1)+f(a-2)(2)89

考点六算法在数据管理中的应用

小林编写了一个统计高三16个班级选考技术人数占比的YB程序。运行界面如图所示,窗体加载时,从数据库中(其中“选考三”

字段中存储了“技术”选考信息)调用数据,统计各班选考技术的人数占比,并在列表框Listl中显示“班级”和“选技术占比”。

单击“排序”按钮Command1,数据按选技术占比降序排序,在List2中显示排序结果。

持序后

10

8

5

L1

实现上述功能的VB程序如下,请回答下列问题:

⑴分析程序,可知调用的数据表的名称为O

⑵请在划线处填入合适的代码。

DimnAsInteger,iAsInteger,jAsInteger,变量n用于统计学生总数

DimratedTo16)AsInteger,num(lTo16)AsInteger,class(1To16)AsInteger

Dimtech(lTo50)AsInteger,cinfo(lTo5000)AsInteger,subj(lTo5000)AsString

PrivateSubFormLoad()

DimconnAsNewADODB.Connection,rsAsNewADODB.Recordset

conn.Connectionstring="Provider=Microsoft.ACE.OLEDB.12.0;DATASource="&App.Path&"\stuimfo.accdb”

conn.Open

Setrs.ActiveConncction=conn

rs.Open,SELECT*FROMxkqk*

'此处代码略,实现将每个学生班级存储到数组cinfo中,选考三科目存储到数组subj中

Fori=1Ton

①‘统计各班人数存储到数组num中,num(l)存储1班的人数

Nexti

Fori=1To16

class(i)=i

Forj=1Ton

Ifclass(cinfo(j))=iThen

Ifsubj(j)="技术"Then②

EndIf

Nextj

rate(i)=tech(i)/num(i)*100

List1.Addlternads(class(i),3)+"/1,+ads(rate(i),7)+"%”

Nexti

EndSub

PrivateSubCommand1_C1ick()

DimiAsInteger,tAsInteger,sAsInteger

Fori=1To15

Forj=16Toi+1Step-1

If®Then

t=rate(j):rate(j)=rate(j-l):rate(j-l)=t

s=class(j):class(j)=class(j-l):class(j-l)=s

EndIf

Nextj

Nexti

List2.Additem"班级"+〃"+"选技术占比”

Fori=1To16

List2.AdditemStr(class(i))+"+Str(rate(i))+"为”

Nexti

EndSub

答案(l)xkqk(2)①num(cinfo(i))=num(cinfo(i))+l

②tech(i)=tech(i)+l③rale(j)>rate(j-1)

【五年高考】

考点一解析算法及程序实现

2015—2019年真题■提升题组

1.(2019浙江6月学考,11,5分)小宇为选定班级参赛作品编了一个VB程序,设计如下:在文本框Texll中输入5位评委对3个作

品的评分依据(评委对作品的评分数据由3位十进制数组成,第1位对应作品编号,第2、3位对应作品得分,分值范围为[60,99]0

如“275”表示2号作品得分75)。单击“计分”按钮后,在标签Label1中输出3个作品的平均分,在Label2中输出参赛的作品

(选择最高平均分作品参赛,若最高平均分存在并列,则从并列作品中随机抽取)o程序运行界面如图所示。

⑴“计分”按钮的对象名为.

⑵程序部分代码如下,请在划线处填入合适的代码。

PrivateSubjf_Click()

DimsAsString,dAsString,iAsInteger

DimflAsSingle,f2AsSingle,f3AsSingle

s=Textl.Text

i=1

DoWhile①

d=Mid(s,i,3)

IfMid(d,1,1)=TThen

fl=fl+Vai(Mid(d,2,2))

ElselfMid(d,1,1)=〃2"Then

f2=f2+Vai(Mid(d,2,2))

Else

f3=f3+Vai(Mid(d,2,2))

EndIf

Loop

Label1.Caption="作品1平均分为:“+Str(f1/5)+”作品2平均分为:"+Str(f2/5)+”作品3平均分为:"+Str(f3/5)

以下省略“处理并列最高平均分,并在Label2中输出选取的参赛作品”的代码

EndSub

⑶运行该程序时,在文本框Textl中以不同的顺序输入原评分数

据:380/295/283/170/180/385/372/285/190/180/390/384/272/170/276,单击“计分”按钮,则Label1中显示的结果

(选填:会/不会)发生改变。

答案⑴jf⑵①i〈=Len(s)或i<Len(s)或i<=57或其他可行答案②i:i+4⑶不会

2.(2019浙江1月学考,11,5分)小红编写了一个将5位以内的十六进制正整数转化成十进制数的VB程序,功能如下:在文本框

Textl中输入一个十六进制正整数,单击“转换”按钮Commandl,在标签Labe13中显示结果。程序运行界面如图所示。

(1)要使窗体Forml标题显示“数制转换”,则需修改窗体的(单选,填字母:A.Font/B.Caption/C.BackColor)属

性。

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

PrivateSubCommand1Click()

DimxAsString,chAsString

DimflagAsBoolean,iAsInteger,resultAsLong

x二①

i=1

result=0

flag=True

ch=Mid(x,1,1)

DoWhilei<=Len(x)Andflag=True

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

result=result*16+Vai(ch)

Elselfch>="A〃Andch<=〃Z"Then

result=result*16+(Asc(ch)-Asc("A")+10)

Elselfch>="a"Andch<=〃z"Then

result=result*16+(Asc(ch)-Asc("a")+10)

Else

flag=False

EndIf

i=i+1

ch=②

Loop

Ifflag=TrueThen

Label3.Caption=Str(result)

Else

Labe13.Caption二"输入错误”

EndIf

EndSub

⑶若在文本框Text]中输入5+9,单击“转换”按钮后,标签Labe13中显示的内容是(单选,填字母:A.14/B.E/

C.输入错误)。

答案(DB(2)①Tex11.TexI或其他等价表达式②Mid(x,i,1)或Vid(Texll.Text,i,1)或其他等价表达式(3)C

3.(2017浙江4月选考,14,5分)奇偶校验是一种校验数据传输正确性的方法。其中奇校验方法:统计二进制数据的数位中“1”的

个数,若个数为奇数,则校验位值为0,否则校验位值为1。小李编写了一个计算奇校验位值的VB程序,功能如下:在文本框Textl

中输入广255间的十进制待校验数,单击“计算”按钮Command1后,在文本框Text2中显示该数对应的二进制值,并在标签

Label3中显示该数的校验位值。程序运行界面如图所示。

⑴在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的属性。

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

PrivateSubCommand1_C1ick()

DimaAsInteger,sAsString

DimnAsInteger,tAsInteger,vAsInteger

n=Vai(Textl.Text)

t=0

s=""

DoWhilen>0

a=nMod2

n=n\2

t=®______

s=Str(a)+s

Loop

v=tMod2

Text2.Text=s

Labe13.Caption="校验位值:"+②

EndSub

⑶运行该程序,在文本框Textl中输入22,单击“计算”按钮,则显示的校验位值是0

答案(l)Text(2)①t+a②Str(l-v)(3)0

考点二枚举算法及程序实现

2015—2019年真题,提升题组

1.(2018浙江11月选考,14,5分)在平面坐标系中,给定一组有序的点。从原点出发,依次用线段连接这些点,构成一条折线。要

求编写一个“计算折线长度”的程序,功能如下:在文本框Texll中依次输入这些点的坐标值(数据都用逗号分隔并以逗号结尾),

单击“计算”按钮Cmd后,程序计算这条折线的长度,结果显示在Label1中。例如,三个点的坐标为⑸10),(8,12),(6,17),输入

格式S口图所示。

u计篇折线长度

15,10,8,12,6,17,||1

折线长度为:20.17105

(l)Cmd对象属于类(单选,填字母:A.Form/B.Label/C.TextBox/D.CommandButLon)o

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

PrivateSubCmd.ClickO

DimiAsInteger,jAsInteger,kAsInteger

DimxlAsSingle,ylAsSingle,x2AsSingle,y2AsSingle

DimdAsSingle,TotaldAsSingle,vAsSingle,sAsString

s二①

xl=0:yl=0'出发点为坐标原点

k=l:j=l:Totald=0

Fori=lToLcn(s)

IfMid(s,i,1)=","Then

v=Val(Mid(s,j,i-j)),提取坐标值,保存在变量v中

j=i+l

If®Then

x2=v

Else

y2=v

d=Sqr((x2-xl)-2+(y2-yl)2)

Totald=Totald+d

xl=x2:yl=y2

EndIf

k=k+l

EndIf

Nexti

Label1.Caption=Str(Totald)

EndSub

⑶运行该程序,输入题干中的数据,程序执行到循环结束时,变量k为。

答案(DD(2)①Text1.Text②kMod2=1(3)7

2.(2018浙江4月选考,14,5分)某种编码以4位二进制码为一组,每组前两位表示方向,后两位表示距离。编写一个程序,将编码

翻译成方向和距离,距离值为每组编码后两位二进制码转换为十进制数的值。具体功能如下:在文本框Textl中输入连续多组编码,

单击“翻译”按钮Commandl,结果显示在列表框Listl中。程序运行界面如图所示。

⑴要使程序运行时,文本框Textl的Width属性值为2018,可在FormLoad事件过程中添加语句(单选填字

母:A.Width=2018/B.Textl.Width=2018/C.Width.Text1=2018)o

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

PrivateSubCommand1Click()

DimsAsString,cAsString,dAsString

DimnAsInteger,blAsInteger,b2AsInteger,vAsInteger,iAsInteger

s=Textl.Text:n=Len(s):i=1

DoWhilei<=n

c=Mid(s,i,2)

Tfc="00"Then

d="东〃

Elselfc="01"Then

d一南"

Elselfc-"10"Then

d=〃西〃

Else

d=〃北〃

EndIf

bl=Vai(Mid(s,i+2,1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论