资源简介 浙江省瑞安市上海新纪元高级中学2019-2020学年高三信息技术选考加试模拟一一、选择题1.(2019·上海模拟)一个约3445KB 未经压缩的wav 格式声音文件,其相关信息如方框所示。由此可知,该声音文件的时长约是( )A.20 秒 B.15 秒 C.40 秒 D.25 秒【答案】C【知识点】声音、图像、视频编码2.(2019·上海模拟)“猴子吃桃”问题:一天,一只猴子从树上摘下若干个桃子,当即吃了一半,觉得不过瘾,又吃了一个。第二天这只猴子接着吃剩下的一半,还觉得不过瘾,又吃了一个。以后它每天都吃前一天剩下的一半再多吃一个。到第四天,猴子按规则吃完桃子后,只剩一个桃子。问猴子第一天摘了多少个桃子。下图所示是根据分析所画出的部分流程图。采用倒推法,其中设定M 的初始值为1(第四天吃完后剩下的桃子数),D 为天数(初始值为5)。流程图中相应空缺位置①②处应分别填写( )A.M=M*2+1 D=1 B.M=M*2+1 D<1C.M=2*(M+1) D=1 D.M=2*(M+1) D<1【答案】C【知识点】流程图识读3.(2019·上海模拟)某VB程序功能:输入正整数n,单击命令按钮Command1后,则会衍生出一串有规律的数字,形式为“1 2 3…n-1 n n-1…3 2 1 ”。例如n=6时,显示的数字串为“1 2 3 4 5 6 5 4 3 2 1 ”。Private Sub Command1_Click()Dim a As intger, i As intger, s As Stringn = Val(Text1.Text)s = ""For i = 1 To 2 * n - 1If i > n Then ① Else ②Next itext2.Text = sEnd Sub为实现以上功能,①②处分别填写( )A.①s=Str(2*n-i) ②s=Str(i)B.①s=s+Str(2*n-i) ②s=s+Str(i)C.①s=s+Str(2*n-1) ②s=s+Str(2*n)D.①s= Str(2*n-1) ②s= Str(2*n)【答案】B【知识点】分支结构语句及程序实现;循环结构语句及程序实现4.(2019·上海模拟)使用UltraEdit 软件观察字符串的内容,如图所示,则字符串中小写字母的个数为( )A.3 B.4 C.6 D.12【答案】B【知识点】字符编码5.(2019·上海模拟)有如下程序段:n = 12f = Val(Text1.Text)left = 1right = nDo While left < rightmiddle = (left + right) \ 2If f <= a(middle) Thenright = middleElseleft = middle + 1End IfLoopA数组元素A(1) 到A(12) 中的数分别是1 4 6 10 11 16 17 18 19 20 21 55,在文本框text1 中输入值7 赋给变量f,经过该程序段“加工”后,right 的值为( )A.4 B.6 C.9 D.2【答案】A【知识点】查找算法及程序实现6.(2019·上海模拟)有如下程序段:map =“ 01234567890123456789012345”tel = Text1.TextFor i = 1 To Len(tel)c = Mid(tel, i, 1)If c >=“ 0” And c <=“ 9” Thens = s + cElseIf c >“ A” And c <=“ Z” Thens = s + Mid(map, Asc(c) - Asc(“A”) + 1, 1)End IfNext i在text1 文本框中输入“hi,NICETOSEEYOU-2016”,程序执行完后s 的结果是( )A.1602726222282016 B.2713837333392016C.44,1602726222282016-2016 D.3824948444402016【答案】D【知识点】分支结构语句及程序实现;循环结构语句及程序实现;常用标准函数7.(2019·上海模拟)一个“抛物线 .bmp”图像文件,相关信息如图所示。根据下图可以推断出,该图像的每个像素需要位数的十六进制是( )A.4H B.8H C.18H D.20H【答案】C【知识点】声音、图像、视频编码8.(2019·上海模拟)王老师在使用VB程序要实现n!的功能。Private Sub Command1_Click()Dim p As IntegerDim sum As Longp = Val(Text1.Text)sum = fx(p)Text2.Text = CStr(sum)End SubFunction fx(x As Integer) As LongIf x = 1 Thenfx = 1Elsefx =End IfEnd Function要该程序实现此功能,横线处的代码为( )A.x(x)*(x-1) B.fx(x)*xC.fx(x-1)*x D.fx(x-1)*(x-1)【答案】C【知识点】过程与自定义函数9.(2019·上海模拟)查看下面的程序代码,在文本框Text1 中输入的值为100 时,该程序的作用为( )Private Sub Command1_Click()Dim sum, k, j, n As Integern = Val(Text1.Text)sum = 0: k = 1Do While k <= nj = 1Do While j <= ksum = sum + 1: j = j + 1Loopk = k * 3LoopText2.Text = CStr(sum)End SubA.1+2+3+…+100 B.20+21+22+23+…2100C.(11111111)2 转十进制 D.(11111)3 转十进制【答案】D【知识点】循环结构语句及程序实现10.(2019·上海模拟)高电平代表1,低电平代表0,如(010)2 的数字波形为 ,(110)10用8个电平波形表示的话应该是( )A. B.C. D.【答案】B【知识点】字符编码11.(2019·上海模拟)某VB 程序代码如下:Function arr(x As Integer) As BooleanDim s As Integer, i As Integers = 1For i = 2 To x \ 2If x Mod i = 0 Then s = s * iNext iIf s = x Thenarr = TrueElsearr = FalseEnd IfEnd FunctionPrivate Sub Command1_Click()Dim i As IntegerFor i = 2 To 10If arr(i) Then List1.AddItem str(i)Next iEnd Sub单击Command1按钮后,List1中显示的结果是( )A.2、3、4、5、6 B.2、4、6C.4、6、8 D.6、8、10【答案】D【知识点】过程与自定义函数;分支结构语句及程序实现;循环结构语句及程序实现12.(2019·上海模拟)有如下VB 程序:Private Sub Command1_Click()Dim i As Integer, j As Integer, k As String, n As Integer, s As Strings = "abcdefghijklmn"n = 4List1.ClearFor i = 1 To nk = Mid(s, i + 1, i)For j = 1 To Len(k)k = k + Mid(s, j, 1)Next jList1.AddItem kNext iEnd Sub该程序运行后,在列表框List1中显示的是( )A. B.C. D.【答案】B【知识点】循环结构语句及程序实现二、非选择题13.(2019·上海模拟)设有n盏灯,放在一排。从1到n依次顺序编号。有n个人也从1 到n依次编号。第1 个人(1号)将灯全部关闭,第2 个人(2号)将2 的倍数的灯打开,第3个人(3号)将编号为3 的倍数的灯做相反处理(该灯如果已打开,则将它关闭;如为关闭则将它打开),以后的人和3号一样,将编号为自己号数倍数的灯做相反处理。问当n个人操作后,哪几盏灯是亮的(亮灯为0,关闭为1)。程序代码如下:Private SubCommand1_Click()Const n = 20Dim i As Integer, j As IntegerDim a(1 To n) As IntegerFor j = 1 To na(j) = 0Next jFor i = 1 To nFor j = 1 To nIf then End IfNext jNext iFor j = 1 To nIf a(j) = 0 Then list1.AddItem Str(j)Next jEnd Sub为了实现程序该功能,在画线处填写正确代码。【答案】j mod i=0;a(j)=1 a(j) 或if a(j)=0 then a(j)=1 else a(j)=0【知识点】分支结构语句及程序实现;循环结构语句及程序实现14.(2019·上海模拟)某班级学生为毕业晚会的一个节目设计一个仿“V”字的造型,先筛选出班级里所有男生,然后将参演的n 名男生按照身高,摆出中间低两边高(先右后左)的造型,如图所示。原1-7号男生身高 171 172 180 174 176 179 178筛选排序后序列 171 172 174 176 178 179 180“造型设计”后序列 180 178 174 171 172 176 179王林同学用VB编写模拟“节目造型”程序,功能如下:从数据库中导出所有学生编号、性别和身高数据;单击“筛选排序”按钮Command1,选出“男生”且按身高升序排列显示在文本框Text1中;单击“设计造型”按钮Command2,根据身高仿“V”字的造型进行有序排列,并将结果显示在文本框Text2 中。程序运行界面如图所示。举例说明如下:Const n = 7Dim h2(1 To n) As IntegerDim height1(1 To n) As Integer, height 2 (1 To n) As IntegerDim i As Integer, j As Integer, temp As IntegerDim sex(1 To n) As Boolean ' 男生sex=truePrivate Sub Form_Load()'n名学生的身高和性别由数据库导出,分别存储在数组height1和sex中,代码略!End SubPrivate Sub Command1_Click()For i = 1 To n - 1For j = n To i + 1 Step -1If Thentemp = height1(j): height1(j) = height1(j - 1): height1(j - 1) = tempEnd IfNext jNext iFor i = 1 To nText1.Text = Text1.Text + " " + Str(height1(i))Next iEnd SubPrivate Sub Command2_Click()Dim left, right As Integer, i As Integer, mid As Integermid = Int((1 + n) / 2)left = 0: right = 0 For i = 2 To n Step 2right = right + 1height2(mid + right) = height1(i)left = left + 1 Next iFor i = 1 To nText2.Text = Text2.Text +“ “ + Str(height2(i))Next iEnd Sub为实现以上功能,请在画线处填写正确代码。【答案】height1(j)< height1(j-1);height2(mid) = height1(1);height2(mid - left) = height1(i+1)【知识点】排序算法及程序实现;查找算法及程序实现15.(2019·上海模拟)小丫觉得回文字符串太优美了(回文字符串是指顺读和倒读都一样的字符串,如“123321”),为此编写了VB 程序。程序运行时,单击按钮Command1 后,根据文本框Text1 中输入的内容判断并输出是不是回文串。实现上述功能的VB 代码如下。Private Sub Command1_Click()Dim s As String, f As Boolean, L As Integers = Text1.Textj = Len(s)i = 1Do while i = i+1j = j-1LoopIf Then Print"是回文串"Else Print " 不是回文串"End Sub在画线处填入合适代码,使程序能正常运行。【答案】mid(s,i,1)=mid(s,j,1);i>=j【知识点】循环结构语句及程序实现16.(2019·上海模拟)给定n(n小于1000)个整数,整数的范围在0到m之间,请使用“对分法”思想求出这n个整数的中位数(所谓中位数,是指将这n个数排序之后,排在正中间的数)。小丫编写了一个求中位数的VB程序,功能如下:单击“求中位数”按钮Command1,程序根据输入的n和m,随机产生n个在[0,m]范围内的数。程序运行界面如下所示:实现上述功能的VB 程序如下:Dim x(1 To 1000) As LongPrivate Sub Command1_Click()Dim n As Integer, i As Integer, rbound As Integer, mid As IntegerDim m As Integer, count As Integern = Val(Text1.Text)m = Val(Text2.Text)List1.ClearRandomizeFor i = 1 To nx(i) =Int(Rnd * (m + 1)) ' 产生[0,m] 的随机数List1.AddItem x(i)Next ilb = 0rb = mDo While lb mid = (lb + rb) \ 2①For i = 1 To nIf ② Thencount = count + 1End IfNext iIf count > n \ 2 Thenlb = mid + 1Else③End IfLoopText3. text = str(rb)End Sub程序要实现该功能,画线处应填入的代码为:① ② ③ 【答案】count=0;x(i)>mid;rb=mid【知识点】查找算法及程序实现17.(2019·上海模拟)全班45位同学拍毕业照,每排15人共3排,全班最高的一批站第3排,最低的一批站第一排,每排最高的站中间(第8个),两边依次身高递减。小王设计一个程序,实现队列安排功能,程序界面如下图所示。代码如下:Dim a(1 To 100) As String, a1(1 To 100) As String, b(1 To 100) As Integer, b1(1 To 100) As IntegerPrivate Sub Form_Load()'读取数据库中学生相关信息,姓名存数组a,身高存数组bEnd SubPrivate Sub Command1_Click()Dim temp As Integer, temp2 As String, k As Integer, s As String, s1 As StringFor i = 1 To 44For j = i + 1 To 45If b(i) > b(j) Thentemp = b(i): b(i) = b(j): b(j) = temptemp2 = a(i): a(i) = a(j): a(j) = temp2End IfNext jNext iFor x = 1 To 3k = 0For y = 15 * x To Step -1If x Mod 2 = 1 ThenIf y Mod 2 = 1 Thenb1(15 * (x - 1) + 8 - k) = b(y)a1(15 * (x - 1) + 8 - k) = a(y)Elsek = k + 1b1(15 * (x - 1) + 8 + k) = b(y)a1(15 * (x - 1) + 8 + k) = a(y)End IfElseIf y Mod 2 = 1 Thenk = k + 1b1(15 * (x - 1) + 8 - k) = b(y)a1(15 * (x - 1) + 8 - k) = a(y)Elseb1(15 * (x - 1) + 8 + k) = b(y)a1(15 * (x - 1) + 8 + k) = a(y)End IfEnd IfNext yNext xFor i = 1 To 45s = s + " " + a1(i)s1 = s1 + " " + Str(b1(i)) + " "If ThenLabel1.Caption = Label1.Caption + " 第" + Str(i \ 15) + " 排" + s + vbCrLf + s1 + vbCrLf' fvbCrLf 表示回车换行s = ""s1 = ""End IfNext iEnd Sub要使程序实现此功能,在画线处填入适当的语句或表达式,将程序补充完整。【答案】15*(x-1)+1或其他等价答案;i mod 15=0【知识点】排序算法及程序实现18.(2019·上海模拟)在数据压缩中,一个常用的途径是行程长度压缩。对于一个待压缩的字符串而言,我们可以依次记录每个字符及重复的次数。这种压缩,对于相邻数据重复较多的情况比较有效。例如,如果待压缩串为“AAABBBBCBB”,则压缩的结果是(A,3)(B,4)(C,1)(B,2)。现要求根据输入的字符串(长度在1000 以内),全部由数字和字母组成,得到大小写不敏感压缩后的结果(即所有小写字母均视为相应的大写字母)。如:原字符串为aAABBbBCCCaaaaa,压缩后的结果(A,3)(B,4)(C,3)(A,5)。实现这一功能的程序代码如下:Private Sub Command1_Click()Dim s As String, s1 As StringDim tmp As String, ans As StringDim i As Integer, j As Integers = Text1.Texts1 = ""For i = 1 To Len(s)s1 = s1 & ToUpcase( )Next ii = 1Do While i <= Len(s1)tmp = Mid(s1, i, 1)ans = ans & "(" & tmp & ","j = i + 1Do While j <= Len(s1) And Mid(s1, j, 1) = tmpj = j + 1Loopans = ans & & ")" LoopText2.Text = ansEnd SubFunction ToUpcase(c As String) As StringIf c >= "a" And c <= "z" ThenToUpcase = Chr(Asc(c) - 32)ElseToUpcase = cEnd IfEnd Function在画线处填入适当的语句或表达式,将程序补充完整。【答案】mid(s,i,1);j-i;i=j【知识点】过程与自定义函数;分支结构语句及程序实现;循环结构语句及程序实现19.(2019·上海模拟)文本加密:利用Mid和Asc函数获取文本和密码字符串每一位字符的ASCII码,然后将文本中某一位字符串的ASCII码与相应的密码字符串中某一位的ASCII码就行异或运算。最后利用Chr函数将运算出的ASCII转换为字符。运行程序,在文本框中输入要加密的字符串和密码,并点击“加密”按钮,在文本框中显示加密或解密后的字符串,显示结果如下图所示。程序代码如下:Dim x As StringDim y As StringDim c(1 To 100) As StringPrivate Sub Command1_Click()Dim z As Stringx = Text1.Texty = Text3.Textz = f(x,y)Text2.Text = zEnd SubFunction f(x As String, y As String) As StringDim i, w, achar As IntegerDim mm As Stringw = Asc(y)For i = 1 To Len(x)achar = Asc(Mid(x, i, 1))c(i) = Chr(x Xor y) ‘ Next iFor t = 1 To Len(x)mm = mm+achar ‘ Next tf = mmEnd Function程序代码有2处错误,请在画线处写上正确代码。【答案】c(i) = Chr(achar Xor w);mm = mm + c(t)【知识点】过程与自定义函数20.(2019·上海模拟)在一次晚会上,一位魔术师掏出一叠扑克牌,取出其中13张黑桃,预先洗好牌,把牌面朝下,对观众说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中念1,将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌子上,继续数手里的余牌,第二次数1,2将第一张牌放到这叠牌的下面,将第二张牌翻开,正好是黑桃2,也把它放在桌子上。第三次数1,2,3,前面两张牌放到这叠牌的下面,取出第三张牌,正好是黑桃3,这样依次将13张牌翻出,准确无误。现在的问题是,魔术师手里牌的原始顺序是怎么样的呢?运行结果如下图所示。代码如下:Private Sub Command1_Click()Dim a(13), i, j, n As Integer '定义变量Form1.Clsi = 1 '将变量i的值为1Do While i <= 13 '当i的值小于等于13时循环Do While Truej = j + 1If j > 13 Then '当j的值大于13时,将其重置为1If a(j) = 0 Then n = n + 1 '如果该位置元素为0,则n加1If n = i Then '将i的值放入数组指定的位置中n = 0 ' 计数器重新为0Exit DoEnd IfLoopi = '计数器i加1LoopLabel1.Caption = "原来牌的顺序是:"For k = 1 To 13Label2.Caption = Label2.Caption + '输出扑克牌的原有顺序Next kEnd Sub在画线处填入适当的语句或表达式,将程序补充完整。【答案】j=1;a(j) = i;i + 1;Str(a(k))【知识点】分支结构语句及程序实现;循环结构语句及程序实现1 / 1浙江省瑞安市上海新纪元高级中学2019-2020学年高三信息技术选考加试模拟一一、选择题1.(2019·上海模拟)一个约3445KB 未经压缩的wav 格式声音文件,其相关信息如方框所示。由此可知,该声音文件的时长约是( )A.20 秒 B.15 秒 C.40 秒 D.25 秒2.(2019·上海模拟)“猴子吃桃”问题:一天,一只猴子从树上摘下若干个桃子,当即吃了一半,觉得不过瘾,又吃了一个。第二天这只猴子接着吃剩下的一半,还觉得不过瘾,又吃了一个。以后它每天都吃前一天剩下的一半再多吃一个。到第四天,猴子按规则吃完桃子后,只剩一个桃子。问猴子第一天摘了多少个桃子。下图所示是根据分析所画出的部分流程图。采用倒推法,其中设定M 的初始值为1(第四天吃完后剩下的桃子数),D 为天数(初始值为5)。流程图中相应空缺位置①②处应分别填写( )A.M=M*2+1 D=1 B.M=M*2+1 D<1C.M=2*(M+1) D=1 D.M=2*(M+1) D<13.(2019·上海模拟)某VB程序功能:输入正整数n,单击命令按钮Command1后,则会衍生出一串有规律的数字,形式为“1 2 3…n-1 n n-1…3 2 1 ”。例如n=6时,显示的数字串为“1 2 3 4 5 6 5 4 3 2 1 ”。Private Sub Command1_Click()Dim a As intger, i As intger, s As Stringn = Val(Text1.Text)s = ""For i = 1 To 2 * n - 1If i > n Then ① Else ②Next itext2.Text = sEnd Sub为实现以上功能,①②处分别填写( )A.①s=Str(2*n-i) ②s=Str(i)B.①s=s+Str(2*n-i) ②s=s+Str(i)C.①s=s+Str(2*n-1) ②s=s+Str(2*n)D.①s= Str(2*n-1) ②s= Str(2*n)4.(2019·上海模拟)使用UltraEdit 软件观察字符串的内容,如图所示,则字符串中小写字母的个数为( )A.3 B.4 C.6 D.125.(2019·上海模拟)有如下程序段:n = 12f = Val(Text1.Text)left = 1right = nDo While left < rightmiddle = (left + right) \ 2If f <= a(middle) Thenright = middleElseleft = middle + 1End IfLoopA数组元素A(1) 到A(12) 中的数分别是1 4 6 10 11 16 17 18 19 20 21 55,在文本框text1 中输入值7 赋给变量f,经过该程序段“加工”后,right 的值为( )A.4 B.6 C.9 D.26.(2019·上海模拟)有如下程序段:map =“ 01234567890123456789012345”tel = Text1.TextFor i = 1 To Len(tel)c = Mid(tel, i, 1)If c >=“ 0” And c <=“ 9” Thens = s + cElseIf c >“ A” And c <=“ Z” Thens = s + Mid(map, Asc(c) - Asc(“A”) + 1, 1)End IfNext i在text1 文本框中输入“hi,NICETOSEEYOU-2016”,程序执行完后s 的结果是( )A.1602726222282016 B.2713837333392016C.44,1602726222282016-2016 D.38249484444020167.(2019·上海模拟)一个“抛物线 .bmp”图像文件,相关信息如图所示。根据下图可以推断出,该图像的每个像素需要位数的十六进制是( )A.4H B.8H C.18H D.20H8.(2019·上海模拟)王老师在使用VB程序要实现n!的功能。Private Sub Command1_Click()Dim p As IntegerDim sum As Longp = Val(Text1.Text)sum = fx(p)Text2.Text = CStr(sum)End SubFunction fx(x As Integer) As LongIf x = 1 Thenfx = 1Elsefx =End IfEnd Function要该程序实现此功能,横线处的代码为( )A.x(x)*(x-1) B.fx(x)*xC.fx(x-1)*x D.fx(x-1)*(x-1)9.(2019·上海模拟)查看下面的程序代码,在文本框Text1 中输入的值为100 时,该程序的作用为( )Private Sub Command1_Click()Dim sum, k, j, n As Integern = Val(Text1.Text)sum = 0: k = 1Do While k <= nj = 1Do While j <= ksum = sum + 1: j = j + 1Loopk = k * 3LoopText2.Text = CStr(sum)End SubA.1+2+3+…+100 B.20+21+22+23+…2100C.(11111111)2 转十进制 D.(11111)3 转十进制10.(2019·上海模拟)高电平代表1,低电平代表0,如(010)2 的数字波形为 ,(110)10用8个电平波形表示的话应该是( )A. B.C. D.11.(2019·上海模拟)某VB 程序代码如下:Function arr(x As Integer) As BooleanDim s As Integer, i As Integers = 1For i = 2 To x \ 2If x Mod i = 0 Then s = s * iNext iIf s = x Thenarr = TrueElsearr = FalseEnd IfEnd FunctionPrivate Sub Command1_Click()Dim i As IntegerFor i = 2 To 10If arr(i) Then List1.AddItem str(i)Next iEnd Sub单击Command1按钮后,List1中显示的结果是( )A.2、3、4、5、6 B.2、4、6C.4、6、8 D.6、8、1012.(2019·上海模拟)有如下VB 程序:Private Sub Command1_Click()Dim i As Integer, j As Integer, k As String, n As Integer, s As Strings = "abcdefghijklmn"n = 4List1.ClearFor i = 1 To nk = Mid(s, i + 1, i)For j = 1 To Len(k)k = k + Mid(s, j, 1)Next jList1.AddItem kNext iEnd Sub该程序运行后,在列表框List1中显示的是( )A. B.C. D.二、非选择题13.(2019·上海模拟)设有n盏灯,放在一排。从1到n依次顺序编号。有n个人也从1 到n依次编号。第1 个人(1号)将灯全部关闭,第2 个人(2号)将2 的倍数的灯打开,第3个人(3号)将编号为3 的倍数的灯做相反处理(该灯如果已打开,则将它关闭;如为关闭则将它打开),以后的人和3号一样,将编号为自己号数倍数的灯做相反处理。问当n个人操作后,哪几盏灯是亮的(亮灯为0,关闭为1)。程序代码如下:Private SubCommand1_Click()Const n = 20Dim i As Integer, j As IntegerDim a(1 To n) As IntegerFor j = 1 To na(j) = 0Next jFor i = 1 To nFor j = 1 To nIf then End IfNext jNext iFor j = 1 To nIf a(j) = 0 Then list1.AddItem Str(j)Next jEnd Sub为了实现程序该功能,在画线处填写正确代码。14.(2019·上海模拟)某班级学生为毕业晚会的一个节目设计一个仿“V”字的造型,先筛选出班级里所有男生,然后将参演的n 名男生按照身高,摆出中间低两边高(先右后左)的造型,如图所示。原1-7号男生身高 171 172 180 174 176 179 178筛选排序后序列 171 172 174 176 178 179 180“造型设计”后序列 180 178 174 171 172 176 179王林同学用VB编写模拟“节目造型”程序,功能如下:从数据库中导出所有学生编号、性别和身高数据;单击“筛选排序”按钮Command1,选出“男生”且按身高升序排列显示在文本框Text1中;单击“设计造型”按钮Command2,根据身高仿“V”字的造型进行有序排列,并将结果显示在文本框Text2 中。程序运行界面如图所示。举例说明如下:Const n = 7Dim h2(1 To n) As IntegerDim height1(1 To n) As Integer, height 2 (1 To n) As IntegerDim i As Integer, j As Integer, temp As IntegerDim sex(1 To n) As Boolean ' 男生sex=truePrivate Sub Form_Load()'n名学生的身高和性别由数据库导出,分别存储在数组height1和sex中,代码略!End SubPrivate Sub Command1_Click()For i = 1 To n - 1For j = n To i + 1 Step -1If Thentemp = height1(j): height1(j) = height1(j - 1): height1(j - 1) = tempEnd IfNext jNext iFor i = 1 To nText1.Text = Text1.Text + " " + Str(height1(i))Next iEnd SubPrivate Sub Command2_Click()Dim left, right As Integer, i As Integer, mid As Integermid = Int((1 + n) / 2)left = 0: right = 0 For i = 2 To n Step 2right = right + 1height2(mid + right) = height1(i)left = left + 1 Next iFor i = 1 To nText2.Text = Text2.Text +“ “ + Str(height2(i))Next iEnd Sub为实现以上功能,请在画线处填写正确代码。15.(2019·上海模拟)小丫觉得回文字符串太优美了(回文字符串是指顺读和倒读都一样的字符串,如“123321”),为此编写了VB 程序。程序运行时,单击按钮Command1 后,根据文本框Text1 中输入的内容判断并输出是不是回文串。实现上述功能的VB 代码如下。Private Sub Command1_Click()Dim s As String, f As Boolean, L As Integers = Text1.Textj = Len(s)i = 1Do while i = i+1j = j-1LoopIf Then Print"是回文串"Else Print " 不是回文串"End Sub在画线处填入合适代码,使程序能正常运行。16.(2019·上海模拟)给定n(n小于1000)个整数,整数的范围在0到m之间,请使用“对分法”思想求出这n个整数的中位数(所谓中位数,是指将这n个数排序之后,排在正中间的数)。小丫编写了一个求中位数的VB程序,功能如下:单击“求中位数”按钮Command1,程序根据输入的n和m,随机产生n个在[0,m]范围内的数。程序运行界面如下所示:实现上述功能的VB 程序如下:Dim x(1 To 1000) As LongPrivate Sub Command1_Click()Dim n As Integer, i As Integer, rbound As Integer, mid As IntegerDim m As Integer, count As Integern = Val(Text1.Text)m = Val(Text2.Text)List1.ClearRandomizeFor i = 1 To nx(i) =Int(Rnd * (m + 1)) ' 产生[0,m] 的随机数List1.AddItem x(i)Next ilb = 0rb = mDo While lb mid = (lb + rb) \ 2①For i = 1 To nIf ② Thencount = count + 1End IfNext iIf count > n \ 2 Thenlb = mid + 1Else③End IfLoopText3. text = str(rb)End Sub程序要实现该功能,画线处应填入的代码为:① ② ③ 17.(2019·上海模拟)全班45位同学拍毕业照,每排15人共3排,全班最高的一批站第3排,最低的一批站第一排,每排最高的站中间(第8个),两边依次身高递减。小王设计一个程序,实现队列安排功能,程序界面如下图所示。代码如下:Dim a(1 To 100) As String, a1(1 To 100) As String, b(1 To 100) As Integer, b1(1 To 100) As IntegerPrivate Sub Form_Load()'读取数据库中学生相关信息,姓名存数组a,身高存数组bEnd SubPrivate Sub Command1_Click()Dim temp As Integer, temp2 As String, k As Integer, s As String, s1 As StringFor i = 1 To 44For j = i + 1 To 45If b(i) > b(j) Thentemp = b(i): b(i) = b(j): b(j) = temptemp2 = a(i): a(i) = a(j): a(j) = temp2End IfNext jNext iFor x = 1 To 3k = 0For y = 15 * x To Step -1If x Mod 2 = 1 ThenIf y Mod 2 = 1 Thenb1(15 * (x - 1) + 8 - k) = b(y)a1(15 * (x - 1) + 8 - k) = a(y)Elsek = k + 1b1(15 * (x - 1) + 8 + k) = b(y)a1(15 * (x - 1) + 8 + k) = a(y)End IfElseIf y Mod 2 = 1 Thenk = k + 1b1(15 * (x - 1) + 8 - k) = b(y)a1(15 * (x - 1) + 8 - k) = a(y)Elseb1(15 * (x - 1) + 8 + k) = b(y)a1(15 * (x - 1) + 8 + k) = a(y)End IfEnd IfNext yNext xFor i = 1 To 45s = s + " " + a1(i)s1 = s1 + " " + Str(b1(i)) + " "If ThenLabel1.Caption = Label1.Caption + " 第" + Str(i \ 15) + " 排" + s + vbCrLf + s1 + vbCrLf' fvbCrLf 表示回车换行s = ""s1 = ""End IfNext iEnd Sub要使程序实现此功能,在画线处填入适当的语句或表达式,将程序补充完整。18.(2019·上海模拟)在数据压缩中,一个常用的途径是行程长度压缩。对于一个待压缩的字符串而言,我们可以依次记录每个字符及重复的次数。这种压缩,对于相邻数据重复较多的情况比较有效。例如,如果待压缩串为“AAABBBBCBB”,则压缩的结果是(A,3)(B,4)(C,1)(B,2)。现要求根据输入的字符串(长度在1000 以内),全部由数字和字母组成,得到大小写不敏感压缩后的结果(即所有小写字母均视为相应的大写字母)。如:原字符串为aAABBbBCCCaaaaa,压缩后的结果(A,3)(B,4)(C,3)(A,5)。实现这一功能的程序代码如下:Private Sub Command1_Click()Dim s As String, s1 As StringDim tmp As String, ans As StringDim i As Integer, j As Integers = Text1.Texts1 = ""For i = 1 To Len(s)s1 = s1 & ToUpcase( )Next ii = 1Do While i <= Len(s1)tmp = Mid(s1, i, 1)ans = ans & "(" & tmp & ","j = i + 1Do While j <= Len(s1) And Mid(s1, j, 1) = tmpj = j + 1Loopans = ans & & ")" LoopText2.Text = ansEnd SubFunction ToUpcase(c As String) As StringIf c >= "a" And c <= "z" ThenToUpcase = Chr(Asc(c) - 32)ElseToUpcase = cEnd IfEnd Function在画线处填入适当的语句或表达式,将程序补充完整。19.(2019·上海模拟)文本加密:利用Mid和Asc函数获取文本和密码字符串每一位字符的ASCII码,然后将文本中某一位字符串的ASCII码与相应的密码字符串中某一位的ASCII码就行异或运算。最后利用Chr函数将运算出的ASCII转换为字符。运行程序,在文本框中输入要加密的字符串和密码,并点击“加密”按钮,在文本框中显示加密或解密后的字符串,显示结果如下图所示。程序代码如下:Dim x As StringDim y As StringDim c(1 To 100) As StringPrivate Sub Command1_Click()Dim z As Stringx = Text1.Texty = Text3.Textz = f(x,y)Text2.Text = zEnd SubFunction f(x As String, y As String) As StringDim i, w, achar As IntegerDim mm As Stringw = Asc(y)For i = 1 To Len(x)achar = Asc(Mid(x, i, 1))c(i) = Chr(x Xor y) ‘ Next iFor t = 1 To Len(x)mm = mm+achar ‘ Next tf = mmEnd Function程序代码有2处错误,请在画线处写上正确代码。20.(2019·上海模拟)在一次晚会上,一位魔术师掏出一叠扑克牌,取出其中13张黑桃,预先洗好牌,把牌面朝下,对观众说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中念1,将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌子上,继续数手里的余牌,第二次数1,2将第一张牌放到这叠牌的下面,将第二张牌翻开,正好是黑桃2,也把它放在桌子上。第三次数1,2,3,前面两张牌放到这叠牌的下面,取出第三张牌,正好是黑桃3,这样依次将13张牌翻出,准确无误。现在的问题是,魔术师手里牌的原始顺序是怎么样的呢?运行结果如下图所示。代码如下:Private Sub Command1_Click()Dim a(13), i, j, n As Integer '定义变量Form1.Clsi = 1 '将变量i的值为1Do While i <= 13 '当i的值小于等于13时循环Do While Truej = j + 1If j > 13 Then '当j的值大于13时,将其重置为1If a(j) = 0 Then n = n + 1 '如果该位置元素为0,则n加1If n = i Then '将i的值放入数组指定的位置中n = 0 ' 计数器重新为0Exit DoEnd IfLoopi = '计数器i加1LoopLabel1.Caption = "原来牌的顺序是:"For k = 1 To 13Label2.Caption = Label2.Caption + '输出扑克牌的原有顺序Next kEnd Sub在画线处填入适当的语句或表达式,将程序补充完整。答案解析部分1.【答案】C【知识点】声音、图像、视频编码2.【答案】C【知识点】流程图识读3.【答案】B【知识点】分支结构语句及程序实现;循环结构语句及程序实现4.【答案】B【知识点】字符编码5.【答案】A【知识点】查找算法及程序实现6.【答案】D【知识点】分支结构语句及程序实现;循环结构语句及程序实现;常用标准函数7.【答案】C【知识点】声音、图像、视频编码8.【答案】C【知识点】过程与自定义函数9.【答案】D【知识点】循环结构语句及程序实现10.【答案】B【知识点】字符编码11.【答案】D【知识点】过程与自定义函数;分支结构语句及程序实现;循环结构语句及程序实现12.【答案】B【知识点】循环结构语句及程序实现13.【答案】j mod i=0;a(j)=1 a(j) 或if a(j)=0 then a(j)=1 else a(j)=0【知识点】分支结构语句及程序实现;循环结构语句及程序实现14.【答案】height1(j)< height1(j-1);height2(mid) = height1(1);height2(mid - left) = height1(i+1)【知识点】排序算法及程序实现;查找算法及程序实现15.【答案】mid(s,i,1)=mid(s,j,1);i>=j【知识点】循环结构语句及程序实现16.【答案】count=0;x(i)>mid;rb=mid【知识点】查找算法及程序实现17.【答案】15*(x-1)+1或其他等价答案;i mod 15=0【知识点】排序算法及程序实现18.【答案】mid(s,i,1);j-i;i=j【知识点】过程与自定义函数;分支结构语句及程序实现;循环结构语句及程序实现19.【答案】c(i) = Chr(achar Xor w);mm = mm + c(t)【知识点】过程与自定义函数20.【答案】j=1;a(j) = i;i + 1;Str(a(k))【知识点】分支结构语句及程序实现;循环结构语句及程序实现1 / 1 展开更多...... 收起↑ 资源列表 浙江省瑞安市上海新纪元高级中学2019-2020学年高三信息技术选考加试模拟一(学生版).docx 浙江省瑞安市上海新纪元高级中学2019-2020学年高三信息技术选考加试模拟一(教师版).docx