浙江高考信息技术学科历年选考真题综合程序填空历年选考真题Word格式文档下载.docx
- 文档编号:19849303
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:24
- 大小:381.56KB
浙江高考信息技术学科历年选考真题综合程序填空历年选考真题Word格式文档下载.docx
《浙江高考信息技术学科历年选考真题综合程序填空历年选考真题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《浙江高考信息技术学科历年选考真题综合程序填空历年选考真题Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
程序运行效果如第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中
代码略
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=①:
Else'
示例3情况处理
Fori=1Tocount
②
Nexti
pa=pa+3:
pb=pb+count
EndIf
Loop
Text2.Text=Str(b
(1))
Fori=2To③
Text2.Text=Text2.Text+"
"
+Str(b(i))
3.【2016.10】小李与小王合作编写一个成绩统计的VB程序:
小王编写一个过程,该过程从数据库读取某一指定科目的相关数据,存储在数组a中;
小李编写一个过程,该过程依据数组a中的相关数据统计各班平均分。
小李与小王约定的数组a各元素含义如图所示。
程序功能如下:
在文本框Text1中输入科目名称,单击“读取数据库”按钮Command1,程序从数据库读取数据;
单击“开始统计”按钮Command2,程序进行统计处理,结果输出在列表框List1中。
程序运行界面如下图所示。
实现上述功能的VB程序如下,请回答下列问题:
(1)根据程序运行界面中的数据及数组a各元素的含义,数组元素a(5)的值为(填写数值)。
(2)分析程序,可知数据库的文件名为
(3)请在划线处填入合适的代码。
Dima(1To600)AsInteger'
数组大小满足处理要求
本过程由小王完成,从数据库读取指定科目的各相关数据,存储在数组a中
DimconnAsNewADODB.Conncction
DimrsAsNewADODB.Recordset
connConncctionString="
provider=Microsoft.ACE.OLEDB.12.0;
datasource="
+"
Score.accdb"
conn.Open
Setrs.ActiveConnection=conn
'
本过程的其他语句略
PrivateSubCommand2_Click()
依据数组a中的相关数据统计各班级平均分
DimiAsInteger,jAsInteger,nAsInteger
DimpAsInteger,sumAsInteger,averAsSingle
p=n+2
sum=0
Forj=1Toa(i+1)
p=p+1
Nextj
aver=sum/a(i+1)
List1.AddItemStr(i)+"
"
+Str(a(i+1))+"
+Str(aver)
4.【2017.4】小王编写了一个实现文字查找替换功能的VB程序,运行界面如图所示。
文本框Text1显示原文内容,Text2中输入查找内容,Text3中输入替换内容,单击“全部替换”按钮Command1后,Text4显示查找替换的结果,Text5中显示替换的次数,Text6显示“查找内容”在原文中的起始位置。
实现上述功能的VB程序如下,但加框处代码有错,请改正。
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)
result=result+Text2.Text
i=i+1
Loop
Text4.Text=result
Text5.Text=Str(count)
Text6.Text=pos
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
DimmAsInteger,iAsInteger
DimStartAsInteger'
当前未分割数据的第1个元素下标
DimLeftAsInteger'
当前未分割数据的个数
数组a的下标
数组b的下标
读取n个转换前的数据,依次存储到a
(1)、a
(2)、……a(n)中,代码略
m=8
Start=1
Left=n
DoWhileLeft>
3
IfLeft<
m*mThen
m=①
pa=Start
pb=Start
Fori=1Tom*m
b(pb)=a(pa)
IfiModm=0Then
pa=pa+m
③
Start=Start+m*m
Fori=StartTon
b(i)=a(i)
依次输出转换后数据b
(1)、b
(2)、……b(n)中,代码略
6.【2018.4】【加试题】为分析数组a中各元素依次变化的情况,进行如下定义:
●变化段:
数组中相邻两个元素构成一个变化段。
变化段有上升段(a(i)>
a(i-1))、下降段(a(i)<
a(i-1))和持平段(a(i)=a(i-1))。
数组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”依次变化过程中“对称波峰”的个数为。
Constn=20
读取数据,并存储到数组a中,代码略
DimflagAsInteger'
存储变化段的状态:
1表示升,-1表示降,0表示平
DimcountAsInteger'
存储对称波峰段的个数
DimstepsAsInteger
DimiAsInteger
flag=0:
steps=0:
Fori=①Ton
Ifa(i)>
a(i-1)Then
IfIsSymPeak(flag,steps)Thencount=count+1
Ifflag=0Orflag=-1Then
steps=steps+1
flag=1
ElseIfa(i)=a(i-1)Then
steps=0
flag=0
steps=steps-1
flag=-1
IfIsSymPeak(flag,steps)Thencount=count+1
Text1.Text=Str(count)
FunctionIsSymPeak(flagAsInteger,stepsAsInteger)AsBoolean
If③Then
IsSymPeak=True
IsSymPeak=False
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加密后数据
246
240
30
70
80
252
16
(1)已知m=3,数组x与数组y中的数据如下表所示。
则待加密数据段“155,1,250”加密后的数据段为(填数据,用逗号分隔)
x
(1)
x
(2)
x(3)
y
(1)
y
(2)
y(3)
20
(2)小张根据上述加密算法,设计了一个对应的解密程序,其VB代码如下,请在划线处填入合适的代码(解密与加密使用相同的密钥数据)
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
Fori=(n\m)*m+1Ton
下面进行值变换:
值变换后数据仍保存到数组b中
j=1
b(i)=③
j=j+1
Ifj>
mThenj=1
输出解密后数据,代码略
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)请在划线处填入合适代码。
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"
9"
num=ch+num
Else
n=Val(num)
Ifch="
-"
s=Mid(s,1,n-1)+②
s=Mid(s,1,n-1)+Mid(s,n+Len(c),Len(s)-n-Len(c)+1)
EndIf
ss=ss+"
→"
+s:
c="
:
Label1.Caption=ss
(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
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)存储剩余段元素个数
DimiAsInteger,pAsInteger,LAsInteger,LLAsInteger
读取n个数据并保存在数组a中,代码略
读取m个区间的下限和上限并保存在数组b中,代码略
Fori=1To2*m+1
c(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江 高考 信息技术 学科 历年 选考真题 综合 程序 填空