浙江高考信息技术学科历年选考真题综合程序填空历年选考真题.docx

上传人:b****5 文档编号:6827791 上传时间:2023-01-10 格式:DOCX 页数:24 大小:381.56KB
下载 相关 举报
浙江高考信息技术学科历年选考真题综合程序填空历年选考真题.docx_第1页
第1页 / 共24页
浙江高考信息技术学科历年选考真题综合程序填空历年选考真题.docx_第2页
第2页 / 共24页
浙江高考信息技术学科历年选考真题综合程序填空历年选考真题.docx_第3页
第3页 / 共24页
浙江高考信息技术学科历年选考真题综合程序填空历年选考真题.docx_第4页
第4页 / 共24页
浙江高考信息技术学科历年选考真题综合程序填空历年选考真题.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

浙江高考信息技术学科历年选考真题综合程序填空历年选考真题.docx

《浙江高考信息技术学科历年选考真题综合程序填空历年选考真题.docx》由会员分享,可在线阅读,更多相关《浙江高考信息技术学科历年选考真题综合程序填空历年选考真题.docx(24页珍藏版)》请在冰豆网上搜索。

浙江高考信息技术学科历年选考真题综合程序填空历年选考真题.docx

浙江高考信息技术学科历年选考真题综合程序填空历年选考真题

综合程序填空历年选考真题

班级姓名

1.【2015.10】【加试题】某数据加密方法描述如下:

(1)以字节为单位进行加密处理;

(2)将1个字节的8位二进制数分割成前4位与后4位两个二进制数;

(3)分别将上述两个4位二进制数转换为十进制数;

(4)将每个十进制数转换为1个加密字符,对应的“密码表”如下:

值(十进制)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

加密字符

I

l

i

k

e

C

H

N

P

0

s

t

c

a

r

d

小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功能如下:

单击“加密”按钮Commandl,程序依次将文本框Textl中每个字符的ASCII码值作为1个字节转换为两个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。

下表显示了字符串中一个字符的加密过程:

程序运行效果如第17题图所示。

实现上述功能的VB程序如下:

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

PrivateSubCommand1_Click()

DimnAsInteger,sAsString,iAsInteger,ssAsString

DimaAsInteger'存储加密前字符的ASCII码

Dimb1AsInteger,b2AsInteger'分别存储分割、转换后的两个十进制数

s=Text1.Text

Fori=1Ton

a=Asc(Mid(s,i,1))

b1=a\16

b2=aMod16

ss=ss+Code2Char(b1)+Code2Char(b2)

Text2.Text=ss

Nexti

EndSub

'十进制值转换为加密字符的函数

FunctionCode2Char(cAsInteger)AsString

DimsAsString

s="IlikeCHNpostcard"

Code2Char=②

EndFunction

(2)若将“密码表”中值为“0”对应的加密字符“I”改成“i”,加密后的密文可能无法解密,原因是。

2.【2016.4】【加试题】某数据压缩方法描述如下:

1)原始数据中,某数不为0且相邻无重复,压缩数据用该数据表示;

2)原始数据中,某数为0且相邻无重复,压缩数据用两个数表示,第1个位0,第2个为0;

3)原始数据中,某数据相邻有重复,压缩数据用3个数表示:

第1个位0,第2个为重复数的个数,第3个为该数本身;

根据上述压缩方法,对应的解压缩方法示例如图a所示。

图a

小明编写了一个解压送VB程序,功能如下:

窗体加载时,自动读取压缩数据,依次存储在数组元素a

(1)、a

(2)、a(3)……中,压缩数据的个数存储在变量n中,压缩数据显示咋文本框Text1中。

单击“解压缩”按钮Command1,程序对压缩数据依次进行解压缩处理,解压缩数据显示在文本框Text2中。

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

图b

(1)如果压缩数据为“23,0,21,66,0,0,77,0,5,0”,则解压缩数据的个数是。

(2)实现上述功能的VB程序如下。

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

Dima(1To100)AsInteger'存储压缩数据,最大处理个数为100

Dimb(1To1000)AsInteger'存储解压缩数据,最大处理个数为1000

DimnAsInteger'存储压缩数据的个数

PrivateSubForm_Load()

'压缩数据由上述压缩方法生成

'本过程用于读取压缩数据并存储在数组a,压缩数据个数存储在变量n中

'代码略

EndSub

PrivateSubCommand1_Click()

DimpaAsInteger'存储压缩数组当前处理位置

DimpbAsInteger'存储解压缩数组当前处理位置

DimfirstdataAsInteger,countAsInteger,iAsInteger

pa=1:

pb=1

DoWhilepa<=n

firstdata=a(pa)

Iffirstdata<>0Then'示例1情况处理

b(pb)=firstdata

pa=pa+1:

pb=pb+1

Else

count=a(pa+1)

Ifcount=0Then'示例2情况处理

b(pb)=0

pa=①:

pb=pb+1

Else'示例3情况处理

Fori=1Tocount

Nexti

pa=pa+3:

pb=pb+count

EndIf

EndIf

Loop

Text2.Text=Str(b

(1))

Fori=2To③

Text2.Text=Text2.Text+","+Str(b(i))

Nexti

EndSub

3.【2016.10】小李与小王合作编写一个成绩统计的VB程序:

小王编写一个过程,该过程从数据库读取某一指定科目的相关数据,存储在数组a中;小李编写一个过程,该过程依据数组a中的相关数据统计各班平均分。

小李与小王约定的数组a各元素含义如图所示。

程序功能如下:

在文本框Text1中输入科目名称,单击“读取数据库”按钮Command1,程序从数据库读取数据;单击“开始统计”按钮Command2,程序进行统计处理,结果输出在列表框List1中。

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

 

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

(1)根据程序运行界面中的数据及数组a各元素的含义,数组元素a(5)的值为(填写数值)。

(2)分析程序,可知数据库的文件名为

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

Dima(1To600)AsInteger'数组大小满足处理要求

PrivateSubCommand1_Click()

'本过程由小王完成,从数据库读取指定科目的各相关数据,存储在数组a中

DimconnAsNewADODB.Conncction

DimrsAsNewADODB.Recordset

connConncctionString="provider=Microsoft.ACE.OLEDB.12.0;datasource="+"Score.accdb"

conn.Open

Setrs.ActiveConnection=conn

'本过程的其他语句略

EndSub

PrivateSubCommand2_Click()

'依据数组a中的相关数据统计各班级平均分

DimiAsInteger,jAsInteger,nAsInteger

DimpAsInteger,sumAsInteger,averAsSingle

p=n+2

Fori=1Ton

sum=0

Forj=1Toa(i+1)

p=p+1

Nextj

aver=sum/a(i+1)

List1.AddItemStr(i)+""+Str(a(i+1))+""+Str(aver)

Nexti

EndSub

4.【2017.4】小王编写了一个实现文字查找替换功能的VB程序,运行界面如图所示。

文本框Text1显示原文内容,Text2中输入查找内容,Text3中输入替换内容,单击“全部替换”按钮Command1后,Text4显示查找替换的结果,Text5中显示替换的次数,Text6显示“查找内容”在原文中的起始位置。

实现上述功能的VB程序如下,但加框处代码有错,请改正。

PrivateSubCommand1_Click()

DimsAsString,resuleAsString,posAsString

DimcountAsInteger,iAsInteger

i=1:

count=0

resule="":

pos=""

DoWhilei<=Len(Text1.Text)

s=Mid(Text1.Text,i,Len(Text2.Text))

Ifs=Text2.TextThen

result=result+Text3.Text

count=count+1

pos=pos+Str(count)

i=i+Len(Text2.Text)

Else

result=result+Text2.Text

i=i+1

EndIf

Loop

Text4.Text=result

Text5.Text=Str(count)

Text6.Text=pos

EndSub

5.【2017.11】【加试题】由数组a生成数组b的方法描述如下:

1)将数组a中的n个元素依次分割出若干个数据块,每个数据块有m×m个元素,m最大值为8,最小值为2。

分割时,按尽可能大的数据块进行分割;

2)对每个分割出的数据块用“方阵转换法”进行转换,每次转换后得到的数据块依次存储在数据b中;

3)数组a分割后的剩余元素(个数小于4),直接依序存储到数组b中。

例如n=140时,可依次分割出3个数据块,元素的个数分别为64(8×8)、64(8×8)、9(3×3),剩余元素为3个。

“方阵转换法”过程如下:

将数据块中m×m个元素按行序排列成一个数字方阵,从该数字方阵中按列序得到转换后元素的次序。

以3×3数据块为例,转换过程如下图所示:

转换前元素次序

转换后元素次序

小明依据上述描述设计了如下VB程序。

请回答下列问题:

(1)当n=120时,分割出的第3个数据块元素个数为。

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

Constn=120

Dima(1Ton)AsInteger

Dimb(1Ton)AsInteger

PrivateSubCommand1_Click()

DimmAsInteger,iAsInteger

DimStartAsInteger'当前未分割数据的第1个元素下标

DimLeftAsInteger'当前未分割数据的个数

DimpaAsInteger'数组a的下标

DimpbAsInteger'数组b的下标

'读取n个转换前的数据,依次存储到a

(1)、a

(2)、……a(n)中,代码略

m=8

Start=1

Left=n

DoWhileLeft>3

IfLeft

m=①

Else

pa=Start

pb=Start

Fori=1Tom*m

b(pb)=a(pa)

pb=pb+1

IfiModm=0Then

Else

pa=pa+m

EndIf

Nexti

Start=Start+m*m

EndIf

Loop

Fori=StartTon

b(i)=a(i)

Nexti

'依次输出转换后数据b

(1)、b

(2)、……b(n)中,代码略

EndSub

6.【2018.4】【加试题】为分析数组a中各元素依次变化的情况,进行如下定义:

●变化段:

数组中相邻两个元素构成一个变化段。

变化段有上升段(a(i)>a(i-1))、下降段(a(i)

数组a中的n个元素可构成n-1个依次排列的变化段。

●波峰:

从上升段转到下降段形成一个波峰。

波峰的起点是峰顶前所有连续上升段中的第1个,终点是峰顶后所有连续下降段中的最后1个。

●对称波峰:

上升段与下降段个数相同的波峰称为对称波峰。

下图为一组数据的变化段及波峰示意图。

现要求统计数组a各元素依次变化过程中“对称波峰”的个数。

小李依据上述描述设计如下VB程序。

请回答下列问题:

(1)数组元素“1,4,3,3,2,6,8,7,9,3,4,7,9,6,3,1”依次变化过程中“对称波峰”的个数为。

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

Constn=20

Dima(1Ton)AsInteger

PrivateSubForm_Load()

'读取数据,并存储到数组a中,代码略

EndSub

PrivateSubCommand1_Click()

DimflagAsInteger'存储变化段的状态:

1表示升,-1表示降,0表示平

DimcountAsInteger'存储对称波峰段的个数

DimstepsAsInteger

DimiAsInteger

flag=0:

steps=0:

count=0

Fori=①Ton

Ifa(i)>a(i-1)Then

IfIsSymPeak(flag,steps)Thencount=count+1

Ifflag=0Orflag=-1Then

Else

steps=steps+1

EndIf

flag=1

ElseIfa(i)=a(i-1)Then

IfIsSymPeak(flag,steps)Thencount=count+1

steps=0

flag=0

Else

steps=steps-1

flag=-1

EndIf

Nexti

IfIsSymPeak(flag,steps)Thencount=count+1

Text1.Text=Str(count)

EndSub

FunctionIsSymPeak(flagAsInteger,stepsAsInteger)AsBoolean

If③Then

IsSymPeak=True

Else

IsSymPeak=False

EndIf

EndFunction

7.【2018.11】【加试题】某种数据加密方法描述如下(加密前后的数值都是0-255):

•以m个数据为一段,将n个待加密数据依次分割成若干个数据段,剩余数据(个数小于m)为独立数据段。

•数据加密规则:

数据个数等于m的数据段,先进行值变换,再进行位置变换,得到加密数据段。

数据个数小于m的数据段,只进行值变换,直接得到加密数据段。

•依次合并加密数据段,即为最后的加密数据。

值变换:

用值变换密钥数组x(元素个数为m,值为0~255的整数),将待加密数据段中的数据进行值变换,方法如下:

值变换后第i个元素=(待加密数据段第i个元素+x(i))Mod256,其中i=1,2,……,m

位置变换:

用位置变换密钥数组y(元素个数为m,值为1~m的不重复整数),将上述值变换后的m个元素进行段内位置变换,方法如下:

加密后数据段第y(i)个元素=值变换后第i个元素,其中i=1,2,……,m

例如,n=5,m=3的数据加密过程如下:

段内序号待加密数据密钥数组x值变换后数据密钥数组y加密后数据

1

246

0

4

2

240

4

30

3

0

30

0

1

70

80

80

2

252

16

16

 

(1)已知m=3,数组x与数组y中的数据如下表所示。

则待加密数据段“155,1,250”加密后的数据段为(填数据,用逗号分隔)

x

(1)

x

(2)

x(3)

y

(1)

y

(2)

y(3)

10

20

30

3

1

2

(2)小张根据上述加密算法,设计了一个对应的解密程序,其VB代码如下,请在划线处填入合适的代码(解密与加密使用相同的密钥数据)

PrivateSubCommand1_Click()

Constn=100

Constm=6

DimiAsInteger,jAsInteger

Dima(1Ton)AsInteger,b(1Ton)AsInteger

Dimx(1Ton)AsInteger,y(1Ton)AsInteger

'读取值变换与位置变换密钥数据,分别保存在数组x与y中,代码略

'读取待解密数据,保存在数组a中,代码略

'下面进行位置变换:

位置变换后数据保存到数组b中

Fori=1To①

Forj=1Tom

Nextj

Nexti

Fori=(n\m)*m+1Ton

b(i)=a(i)

Nexti

'下面进行值变换:

值变换后数据仍保存到数组b中

j=1

Fori=1Ton

b(i)=③

j=j+1

Ifj>mThenj=1

Nexti

'输出解密后数据,代码略

EndSub

8.【2019.4】小王设计“模拟撤销”程序,需要用一个“历史记录”,“历史记录”是在对字符串s进行插入或删除时,将每步操作信息依次存储得到的,操作信息由操作符(“+”表示插入,“-”表示删除)、操作位置和操作字符串(只包含英文字母)构成,例如,“+23abc”表示在字符串s第23个位插入了“abc”,“模拟撤销”过程按照“历史记录”的逆序进行,将字符串s的内容恢复到初始状态。

对字符串“Book”的操作与撤销过程,如第14题a所示。

第14题图a第14题图b

小王编写的“模拟撤销”VB程序如下,文本框 Text1中的内容是撤销前字符串,文本框Text2中的内容是历史记录,单击“撤销”按钮Command1后,在标签Label1中显示撤销过程,程序运行界面如第14题图b所示。

(1)实观上述功能的VB程序如下,在程序中出现的对象没有Caption属性的是。

(选填,填字码:

A.Label1  /B.Command1  /C.Textl和Text2

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

PrivateSubCommand1_Click()

DimsAsString,tAsString,chAsString

DimcAsString,numAsString,ssAsString

DimnAsInteger,iAsInteger

s=Text1.Text:

t=Text2.Text

c="":

num="":

ss=s

Fori=Len(t)To1Step-1

Ifch>="a"Andch<="z"Orch>="A"Andch="Z"Then

c=ch+c

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

num=ch+num

Else

n=Val(num)

Ifch="-"Then

s=Mid(s,1,n-1)+②

Else

s=Mid(s,1,n-1)+Mid(s,n+Len(c),Len(s)-n-Len(c)+1)

EndIf

ss=ss+"→"+s:

c="":

num=""

EndIf

Nexti

Label1.Caption=ss

EndSub

(2)运行该程序,若文本框Text1中的内容是"April",文本框Text2中的内容是"-3p+3ri-6e",单击撤销按钮,For循环语句执行完成后,字符串s的值是""。

9.【2019.4】给定m个区间和1个数组(有n个元素),现要求根据各区间限定的取值范围,将数组依次分隔成m+1个段。

具体分割方法如下:

∙第1段是从数组首个元素开始、元素值都属于第1区间的最长连续元素段。

如果首个元素不属于第1区间,则第1段元素个数为0;

∙第1段分割后的剩余元素,用同样的方法来依次分割第2段、第3段、…、第m段;

∙第m段分割后的剩余元素分割到第m+1段(剩余段)。

若第p(1≤p≤m-1)段末尾连续元素的值也同时属于第p+1区间,则这块连续元素称为第p段“重叠块”,该段其余部分称为第p段“非重叠块”。

由于不存在第m+1区间,这里特别规定:

第m段的全部元素都分割到m段“非重叠块”,第m段“重叠块”的元素个数为0,一个数组分段示例如下图。

图中数组第1个元素10不属于第1区间[0,5],因此第1段的元素个数为0。

10和20属于第2区间,而33不属于第2区间,因此第2段只包含10和20两个元素。

第3段末尾连续3个元素的值也同时属于第4区间,因此,第3段“非重叠块”包含33,58,46,第3段“重叠块”包含55,62,69。

(1)给定2个区间依次为[10,50]、[30,80],数组各元素为“12,44,34,45,66,50,45,70”,则第1段“重叠块”中的元素个数为个。

(2)小李根据上述描述,设计了一个统计各段“非重叠块”、“重叠块”和剩余段中元素个数的算法。

算法的VB程序如下,请在划线处填入合适的代码。

Constn=18,m=6

Dima(1Ton)AsInteger

Dimb(1To2*m)AsInteger

'b

(1)、b

(2)为第1区间的下限和上限,b(3)、b(4)为第2区间的下限和上限,…

Dimc(1To2*m+1)AsInteger

'数组c用于保存统计结果:

'c

(1)、c

(2)分别存储第1段“非重叠块”和“重叠块”的元素个数,

'c(3)、c(4)分别存储第2段“非重叠块”和“重叠块”的元素个数,…

'c(2m-1)存储第m段"非重叠块"元素个数,c(2m)存储第m段"重叠块"元素个数(值为0)

'c(2m+1)存储剩余段元素个数

PrivateSubCommand1_Click()

DimiAsInteger,pAsInteger,LAsInteger,LLAsInteger

'读取n个数据并保存在数组a中,代码略

'读取m个区间的下限和上限并保存在数组b中,代码略

Fori=1To2*m+1

c(i

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

当前位置:首页 > 高等教育 > 艺术

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

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