资源简介 浙江省金华市江南中学2020届高三下学期信息技术4月初测试卷一、选择题(每道题2分,共26题,52分)1.(2020高三下·金华月考)有如下VB程序段:For i= 1 To 49j=1:a(j)=a(j)+1Do While a(j)=5a(j)=0j = j + 1a(j) = a(j) + 1LoopNext i数组a中各元素初始值均为0,该程序执行后,数组a中各元素之和为( )A.9 B.0 C.3 D.49【答案】A【知识点】常见数据类型、数组;常量、变量及变量的赋值【解析】【解答】题中使用的是双重循环,计算比较复杂,每循环1次,a(1)加1,循环5次清0;每循环5次,a(2)加1,循环25次清0;每循环25次,a(3)加1。根据代码进行模拟得到的结果是a(1)=4,a(2)=4,a(3)=1,其他元素全部是0。故答案选A。【分析】本题考查的是数组的运用。2.(2020高三下·金华月考)有如下VB程序段:s = 1For i = 2 To 10 Step 3s = s + iNext i则该程序段执行后,变量s和i的值分别是( )A.16, 11 B.15, 13 C.55, 11 D.25, 13【答案】A【知识点】常量、变量及变量的赋值【解析】【解答】注意s的初值为1,步长为3,另外运行结束后i的终值为11,故答案是A。【分析】本题考查的是对VB语句的理解。3.(2020高三下·金华月考)有如下VB程序段:c = 0 :i = 1Do While i <=6k = iFor j = i + 1 To 7If a(j)<= a(k) Then k = jNext jIf a(i) <> a(k) Thent = a(i): a(i) = a(k): a(k) = tc = c + 1End Ifi = i + 1Loop数组元素a(1)到a(7)的值依次为“9,9,8,16,45,9,78”。该程序段执行后,变量c的值是( )A.0 B.3 C.4 D.6【答案】B【知识点】排序算法及程序实现【解析】【解答】排序时对“有重复数据进行排序时不交换”进行了优化,确定交换次数为3次。故答案选B。【分析】本题主要考查的是选择排序算法的理解。4.(2020高三下·金华月考)有如下VB程序段:a(1) = 1For i = 2 To 6Randomizea(i) = a(i - 1) + Int(Rnd * 5 + 1)If a(i) Mod 2 = 1 Thena(i) = a(i) \ 2 + 1Elsea(i) = a(i) / 2End IfNext i执行程序后,a数组各元素可能是( )A.1 3 4 6 7 9 B.1 2 0 3 5 6 C.1 2 3 4 5 4 D.1 3 4 5 1 1【答案】C【知识点】常见数据类型、数组;运算符、基本运算与表达式【解析】【解答】题中a(2)的范围是1~3,a(3)~a(5)的范围都是1~5,排除A、B,选项D中a(4)=5,可推知a(5)为3~ 5,不可能是1,只有C都符合。故答案选C。【分析】本题考查的是数组的运用以及对常用函数的理解。5.(2020高三下·金华月考)数组d(1)~d(100)中存储某班级50位同学的语文和数学成绩,奇数位存储语文成绩,偶数位存储对应该同学的数学成绩。该数组已经按照两科总成绩升序排序。依据对分查找思想,设计一个在数组a中查找总成绩Key的程序,如果查找成功输出语文成绩在数组中的位置。实现该功能的VB程序段如下:Key = Val(Text1.Text)i = 1: j = 100Do While i <= jm = (i + j) \ 2If (1) Then m = m - 1Sum = (2)If Key = Sum Then Exit Do ‘Exit Do表示退出循环If (3) Theni = m + 2Elsej = m - 2End IfLoopIf i > j Then Text2.Text = "没有找到!" Else Text2.Text = Str(m)实现该功能,则上述程序段3个方框处的表达式分别为( )A.(1)m Mod 2 = 1 (2)d(m) + d(m - 1) (3)Key < SumB.(1)m Mod 2 = 1 (2)d(m) + d(m + 1) (3)Key > SumC.(1)m Mod 2 = 0 (2)d(m) + d(m - 1) (3)Key > SumD.(1)m Mod 2 = 0 (2)d(m) + d(m + 1) (3)Key > Sum【答案】D【知识点】常量、变量及变量的赋值;查找算法及程序实现【解析】【解答】当查找位置m为偶数时,其前面的数据为该同学的语文成绩,确定(1)空为m Mod 2 = 0;语文成绩的对应位置为m,则该同学的总成绩为d(m) + d(m+1),确定(2)空为d(m)+d(m+1);由题干中描述“数组已经按照两科总成绩升序排序”,可知当查找成绩大于当前总成绩时,执行“i = m + 2”,确定(3)空为Key > Sum。故答案选D。【分析】本题主要考查的是对分查找。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。6.(2020高三下·金华月考)有如下VB程序段:For i = 1 To 9 Step 2b(a(i) Mod 10) = b(a(i) Mod 10) + 1Next is = 0For i = 0 To 9 Step 3s =s + b(i)Next i数组b各元素初始值为0, 数组元素a(1)到a(9)的值依次为“29,74,12,38,16,45,21,57,33”,则执行该程序段后,s的值为( )A.5 B.4 C.3 D.2【答案】C【知识点】常见数据类型、数组;常量、变量及变量的赋值【解析】【解答】数组元素的个位数按照桶排序进行计数,步长为2,故统计a(1) Mod 10,a(3) Mod 10,a(5) Mod 10,a(7) Mod 10,a(9) Mod 10的结果,因此1、2、3、6、9的值数组加1,而累加时的步长是3,b(3)、b(6)和b(9)的值被累加,故答案是3。故答案选C。【分析】本题考查的是数组和统计。7.(2020高三下·金华月考)有如下VB程序段:Dim i As Integer, j As Integer, a(1 To 5) As IntegerFor i =1 To 5a(i)=Int(Rnd*5+1)For j = 1 To i-1If a(i)=a(j) Theni=i-1 : Exit ForEnd IfNext jNext i执行程序后,数组中的数据可能是( )A.1 4 3 2 5 B.1 1 3 5 4 C.1 4 5 6 3 D.2 3 4 5 5【答案】A【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】代码中产生的是不重复的1~ 5之间的数,故答案选A。【分析】本题考查的是生成不重复随机数。生成随机数使用函数的是Rnd( )。8.(2020高三下·金华月考)有如下VB程序段:s = "123456789"g = ""For i = 1 To 3n = Len(s)x = Int(Rnd * n) + 1g = g + Mid(s, x, 1)s = Mid(s, 1, x - 1) + Mid(s, x + 1, n - x)Next i在程序执行时,若变量x的值依次为3,3,6,则最终变量g的值为( )A."336" B."346" C."348" D.15【答案】C【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】变量值的变化如下:i 1 2 3x 3 3 6g "3" "34" "348"s "12456789" "1256789" "125679"故答案选C。【分析】本题考查的是对基本函数功能以及程序语句的理解。Mid ( )函数是从文本字符串中指定的开始位置起返回指定长度的字符。Rnd( )函数是产生随机数。9.(2020高三下·金华月考)有如下 VB 程序段:For i=1 To 3For j=1 To 5-iIf a(j)>a(j+1) Thent=a(j): a(j)=a(j+1): a(j+1)=tEnd IfNext jText1.Text = Text1.Text + Str(a(i))Next i数组元素a(1)到a(5)的值依次为“3,9,6,8,4”。该程序段执行后,文本框 Text1 显示的内容是( )A.3 4 6 B.6 8 9 C.3 6 4 D.3 6 6【答案】D【知识点】排序算法及程序实现【解析】【解答】对这5个数据,冒泡排序将数值大的数据往后交换。进行前3轮的升序排序,然后分别输出第一轮的第一项,第二轮的第二项,第三轮的第三项。第一轮排序后结果:3,6,8,4,9,输出第一项3;第二轮排序后结果:3,6,4,8,9,输出第二项6;第三轮排序后结果:3,4,6,8,9,输出第三项6,故答案选D。【分析】本题主要考查对冒泡排序算法的理解。10.(2020高三下·金华月考)某VB程序段如下:Function f(n As Integer) As LongIf n = 1 Thenf =5Elsef =2 * f(n - 1) - 3End IfEnd FunctionPrivate Sub Command1_click()Dim n As Integern = Val(Text1.Text)Text2.Text = Str(f(n))End Sub该程序段运行后,在文本框Text1中输入5,单击命令按钮Command1后,文本框Text2中显示的是( )A.18 B.35 C.63 D.123【答案】B【知识点】常量、变量及变量的赋值;递归算法【解析】【解答】f(1)=5,f(2)=2*f(1)-3=7,f(3)=2*f(2)-3=11,f(4)=2*f(3)-3=19,f(5)=2*f(4)-3=35,故答案选B。【分析】本题考查的是递归算法。11.(2020高三下·金华月考)某对分查找算法的VB程序段如下:i = 1: j = 8: s = ""key =Text1.TextDo While i <= jm =(i + j) \ 2If key = a(m) Thens = s + "M"Exit DoElseIf key > a(m) Thenj = m - 1: s = s + "L"Elsei = m + 1: s = s + "R"End IfLoopText1.Text = s数组元素a(1)到a(8)的值依次为“4,22,27,32,35,44,56,59”,该程序段执行后,文本框Text1中显示的内容不可能是( )A.M B.LR C.RM D.LM【答案】B【知识点】常量、变量及变量的赋值;查找算法及程序实现【解析】【解答】若key值能在a(1)到a(8)中找到,s中最后一个字符一定为“M”。若key值不能在a(1)到a(8)中找到,则需查找4次才能结束,s的字符串长度应为4。故答案选B。【分析】本题考查的是对分查找算法。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。12.(2020高三下·金华月考)有如下VB程序段:For i = 1 To 3k = ""For j = 1 To 2 * i - 1k = k + " * "Next jList1.AddItem kNext i该程序段运行后,在列表框List1中显示的是( )A. B. C. D.【答案】A【知识点】常量、变量及变量的赋值【解析】【解答】变量i表示行,变量j表示列,例如当i=2时,从1到3,表示有三个“*”。故答案选A。【分析】本题主要考查字符的输出。13.(2020高三下·金华月考)下列程序执行后文本框Text1显示的内容是( )s = "Inter(R) Core(TM) i3-4130 CPU @ 3.40GHz"flag = False:k = 0For i = 1 To Len(s)ch = Mid(s, i, 1)If ch >= "A" And ch <= "Z" or ch >= "0" And ch <= "9" ThenIf Not flag Thenk = k + 1flag = TrueEnd IfElseflag = FalseEnd IfNext iText1.Text = Str(k)A.6 B.9 C.10 D.18【答案】B【知识点】算法的控制结构;常量、变量及变量的赋值【解析】【解答】For循环的作用是依次从字符串s中读取每个字符(结合Mid函数),程序的作用为统计字符串s中连续大写字母或数字的字符串个数,If Not flag Then中条件Not flag等价于flag = False,本题还有一个地方要注意,当取字符为“3.40GHz”中的字符“0”后flag = True,取到“G”时不累加k的值。故答案选B。【分析】本题考查的是VB的循环结构和分支结构。14.(2020高三下·金华月考)有如下VB程序段:Function GCD(m As Long, n As Long) As LongDim temp As Long, r As LongIf m < n Then temp = m: m = n: n = tempd = m - nDo While d <> nIf d >= n Thenm = dElsem = nn = dEnd Ifd = m - nLoopGCD = nEnd FunctionPrivate Sub Command1_Click()Text1.Text = Str(GCD(48,36))End Sub程序运行完后,单击Command1按钮,文本框Text1中显示的是 ( )A.12 B.18 C.36 D.48【答案】A【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】48和36的最大公约数是12。故答案选A。【分析】本题考查的是VB的自定义函数及求两个数最大公约数的“更相减损术”算法。15.(2020高三下·金华月考)有如下VB程序段:Dim a(1 To 5) As Integer, i As IntegerDim flag As Boolean, j As Integera(1) =1 : a(2) = 1 : a(3) = 1 : a(4)= 1 : a(5) = 1RandomizeFor i = 1 To 5j = 1: flag = TrueDo While j <= i - 1 And flag = Truea(i) = Int(Rnd * 5 + 1)If a(i) = a(j) Theni = i - 1: flag = FalseEnd Ifj = j + 1LoopNext i运行程序后,数组中的数据值可能是( )A.1 4 3 1 5 B.1 1 3 5 4 C.1 2 3 5 5 D.1 3 4 5 6【答案】A【知识点】算法的控制结构;运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】For循环的作用是控制产生a(i)的次数,每次Do循环j的值从1到i-1,每次随机产生一个整数a(i),一方面,a(i)的范围是[1,5],另一方面,每次产生的数与前一个不重复,否则重新产生。因此,排除选项B,C,D。故答案选A。【分析】本题考查的是VB的循环结构和分支结构以及随机函数。16.(2020高三下·金华月考)如果数组a(下标1到n)满足a(1)≤a(2)≤…≤a(i-1)≤a(i)≥a(i+1)≥…≥a(n),则称数组a是单峰的,并称a(i)是数组a的“峰顶”。下列程序段用于查找数组a中的“峰顶”,并返回该“峰顶”值。Dim a(1 To 10) As IntegerFunction Search(L As Integer, R As Integer) As IntegerM = (L + R) \ 2If a(M) < a(M - 1) And a(M) > a(M + 1) Then⑴ElseIf a(M) > a(M - 1) And a(M) > a(M + 1) Then⑵ElseIf a(M) > a(M - 1) And a(M) < a(M + 1) Then⑶End IfEnd FunctionPrivate Sub Command1_Click()Label1.Caption = "“峰顶”值是:" + Str(Search(1, 10))End Sub上述程序中划线处可选语句为:①Search = Search(M + 1 , R)②Search = Search(L , M - 1)③Search = a(M)则(1)(2)(3)处的语句依次是( )A.①②③ B.①③② C.③①② D.②③①【答案】D【知识点】查找算法及程序实现;递归算法【解析】【解答】如果a(M) > a(M - 1) And a(M) > a(M + 1),则此时的M即为“峰顶”,因此(2)处填Search = a(M);当a(M) < a(M - 1) And a(M) > a(M + 1)时,说明“峰顶”在左半区,因此L不变,R=M-1,(1)处应填Search = Search(L , M - 1)。故答案选D。【分析】本题考查的是VB的递归算法及对分查找算法。17.(2020高三下·金华月考)有以下VB程序段:For i = 1 To 4For j = 4 To i + 1 Step -1s = "*" + sNext jList1.AddItem sNext i运行上述程序段后,列表框List1中显示的结果是( )A. B. C. D.【答案】A【知识点】算法的控制结构;常量、变量及变量的赋值【解析】【解答】i=1时,语句s="*"+s 被执行3次,所以第一行为3个"*";i=2时,语句s="*"+s 被执行2次,所以第二行共有5个"*";i=3时,语句s="*"+s 被执行1次,所以第三行共有6个"*";i=4时,语句s="*"+s 没有被执行,因此第四行仍然打印6个"*"。故答案选A。【分析】本题考查的是对循环语句的理解。18.(2020高三下·金华月考)数组b是一个有重复数据的递增数组,现把前面n个元素整体移动到最后形成如“7,8,9,10,1,2,3,4”的排列形式。下列程序实现如下功能:输入一个数,利用对分查找算法在数组b中查找,返回查找结果在Label2输出,若有多个相同数据,则返回最左侧数据的位置。Dim b(1 To 20) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As Integer, m As Integeri = 1: j = 20Key = Val(Text1.Text)Do While (1)m = (i + j + 1) \ 2If b(i) < b(m) ThenIf (2) Thenj = m - 1Elsei = m + 1ElseIf Key = b(m) ThenExit DoElseIf Key > b(m) And Key <= b(j) Theni = m + 1Elsej = m - 1End IfLoopIf (3) ThenLabel2.Caption = "数组中无此数"ElseDo While m > 0If Key = b(m) Then m = m - 1 Else Exit DoLoopLabel2.Caption = "此数在第" + Str(m + 1) + "个位置"End IfEnd Sub(1)(2)(3)处可选语句为:①i > j②i <= j③Key < b(m) And Key >= b(i)④Key> b(m) And Key <=b(j)则(1)(2)(3)处的语句依次是( )A.①③② B.②④① C.②③① D.①④②【答案】(1)C【知识点】常量、变量及变量的赋值;查找算法及程序实现【解析】【解答】(1)处是设置查找终止的条件,只要区间还有1个数就要继续找,选i<=j;(2)处判断关键字是否在左侧区间,上一行的If保证左侧区间有序,关键字大于等于i位置,小于中间值,确保在左侧区间,代码选Key < b(m) And Key >= b(i);(3)处判断是否找到,前文在区间为正时退出循环,则肯定已经找到,否则i>j说明找不到。故答案选C。【分析】本题考查的是对查找算法的理解。19.(2020高三下·金华月考)有如下VB程序段:a(1) = 1: a(2) = 3: a(3) = 5: a(4) = 7: a(5) = 9s = "ICT2019reform"For i = 1 To 5t = a(i)s = Mid(s, 1, t - 1) + Mid(s, t + 1)Next iText1.Text = s执行该程序段后,Text1显示的是( )A.ICT2019re B.CT01reor C.C21rform D.CT01reorm【答案】B【知识点】常见数据类型、数组;运算符、基本运算与表达式【解析】【解答】注意字符串s不断缩短,每一轮被删除一个字符。“ICT2019reform”第一轮后变为"CT2019reform",第二轮后变为“CT019reform”,依次类推,故答案选B。【分析】本题考查的是数组与函数的运用。20.(2020高三下·金华月考)有如下VB程序段,已知a数组各元素值为“7,5,6,3,1,8”,b数组各元素的初始值为“0”。则经过以下程序段处理后,b数组各元素分别为( )For i = 1 To 5k = iFor j = i + 1 To 6If a(k) > a(j) Then k = jNext jt = a(k): a(k) = a(i): a(i) = tb((i + 2) Mod 6 + 1) = a(i)Next iA.1 3 5 6 7 8 B.7 0 1 3 5 6 C.6 7 8 1 3 5 D.6 7 0 1 3 5【答案】D【知识点】常量、变量及变量的赋值;排序算法及程序实现【解析】【解答】这段程序首先基本实现了数组的升序排序,但新的位置把排序后的位置循环往右移动了3个位置,如元素“1”本来在第1个位置,但移动到了第4个位置,“6”本来在第4个位置,往右移3个位置,超出后到最左侧,变成在第1个位置,最后数字“8”原位置被占,但新位置没有被赋值,所以第3个位置为“0”。故答案选D。【分析】本题考查的是对排序算法的理解。21.(2020高三下·金华月考)某VB程序段如下:s = "Hello World"s1 = ""n = Len(s)For i = 1 To n \ 2If Mid(s, i, 1) > Mid(s, n - i + 1, 1) Thens1 = s1 + Mid(s, i, 1)Elses1 = Mid(s, n - i + 1, 1) + s1End IfNext iText1.Text = s1执行该程序段后,在文本框Text1中显示的是( )A.WlleH B.oorld C.dlroo D.orldo【答案】D【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】程序实现第一个字符和最后一个字符进行比较,若大于则取前面的字符,连接后按顺序赋值给变量s1,反之则取后面的字符,但是要倒序连接并赋值给变量s1,第二个字符和倒数第二个字符进行比较,……,以此类推,故答案选D。【分析】本题考查的是VB字符串的处理以及对Mid( )函数的理解。22.(2020高三下·金华月考)某VB程序段如下:s = "491053"For i = 1 To 3n = Len(s)k = 1For j = 2 To nIf Mid(s, k, 1) >= Mid(s, j, 1) Thenk = jElseExit For 'Exit For表示退出循环End IfNext js = Mid(s, 1, k - 1) + Mid(s, k + 1, n - k)Next iLabel1.Caption = s执行该程序段后,标签Label1中显示的值是( )A.053 B.953 C.913 D.103【答案】B【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】程序分析:每次都从左边开始查找,若是升序的数,则删除最前面的数,若是降序的数,则删除最后一个数。故删除的顺序是“4”“0”“1”。故答案选B。【分析】本题考查的是数据的查找。该程序段的功能是删除3个数,并保持原来的顺序不变,使得剩下的数最大。23.(2020高三下·金华月考)有VB程序段如下:s = "2019appreciate": sum = 0For i = 1 To Len(s)ch = Mid(s, i, 1)If ch >= "a" And ch <= "z" Thenm = Asc(ch) - Asc("a") + 1a(m) = a(m) + 1End IfNext iFor i = 1 To 10If a(i) > 0 Then sum = sum + 1Next i数组a各元素的初始值都为0,执行该程序段后,变量sum的值为( )A.10 B.7 C.4 D.3【答案】C【知识点】常量、变量及变量的赋值【解析】【解答】代码的作用是统计小写英文字母中前10个字符(a~ j)出现的次数并记录到相应的数组元素a(1)、a(2)、…、a(10)中,并最终统计共有几个字母出现过,根据题意可知,有4个数组元素的值大于0,因此答案是4。故答案选C。【分析】本题考查的是VB的字符串处理。24.(2019高二下·衢州期末)有VB程序段如下:RandomizeFor i = 1 To 6a(i) = Int(Rnd * 20) + 1If a(i) Mod 2 = i Mod 2 Then a(i) = a(i) - 1Elsea(i) = a(i) + 2 End IfNext i执行该程序段后,a(1)~ a(6)各元素可能的是( )A.13,2,7,12,5,18 B.20,9,18,23,4,7C.22,7,0,15,4,19 D.6,0,4,21,18,17【答案】B【知识点】程序的调试及运行【解析】【解答】分析程序段功能:根据语句a(i) = Int(Rnd * 20) + 1可知,数组a(i)元素的数值范围是[1,20]。当数组元素a(i)满足a(i) Mod 2 = i Mod 2时,执行a(i) = a(i) - 1,否则执行a(i) = a(i) + 2。所以当i为偶数时,执行程序后,a(i)应为奇数,当i为奇数时,a(i)应为偶数。选项A:当i=1时,a(1)应为偶数,而a(1)=13为奇数。A错误;选项B:当i为1,3,5时,a(1)=20,a(3)=18,a(5)=4均为偶数,当i为2,4,6时,a(2)=9,a(4)=23,a(6)=7均为奇数。B正确;选项C:a(3)=0超出数组元素的数值范围。C错误;选项D:a(2)=0超出数组元素的数值范围。D错误。故答案选B。【分析】本题考查学生分析程序段功能和理解程序段的能力。25.(2020高三下·金华月考)有如下VB程序段:Dim i As Integer, sum As IntegerDim a(1 To 6) As Integer, b(1 To 6) As Integersum = 0a(6) = 18: a(5) = 7: b(6) = 14: b(5) = 16For i = 4 To 1 Step -1a(i) = a(i + 2) - a(i + 1)b(i) = b(i + 2) - a(i)If b(i) Mod 3 = 0 Then sum = sum + b(i)Next iText1.Text = Str(sum)该程序段运行后,文本框Text1中显示的内容是( )A.39 B.30 C.-9 D.12【答案】B【知识点】常量、变量及变量的赋值;递归算法【解析】【解答】i=4时,a(4)=11,b(4)=3,sum=3;i=3时,a(3)=-4,b(3) =20;i=2时,a(2)=15,b(2)=-12,sum=-9;i=1时,a(1)=-19,b(1)=39,sum=30。故答案选B。【分析】本题考查的是对递归算法的理解。26.(2020高三下·金华月考)某VB程序段如下:Dim a (1 To 6) As IntegerRandomizea(1) = Int (Rnd*2) + 1For i = 2 To 6a(j) = Int (Rnd*i) *2 + 1If a(i) < a(i-1) Thena(i) = a(i) + a(i-1)End IfNext i执行该程序段后,数组元素a(1)到a(6)的值可能是( )A.2,4,6,8,10,12 B.1,1,3,7,12,23C.2,5,9,11,10,15 D.1,3,15,16,20,23【答案】B【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】最初时,a(1)的范围是1~2,a(2)的范围是1~3,a(3)的范围是1~5,a(4)的范围是1~7,a(5)的范围是1~9,a(6)的范围是1~11。再根据if语句进行调整,当前元素小于前面一个元素时,将这两个值相加后再赋值给当前的元素a(i)。当a(1)=2时,a(2)不可能超过3,因此可以排除AC。另外,当a(2)=3时,a(3)的值绝对不可能是15(最大值只能是5),从而排除选项D。故答案选B。【分析】本题考查VB随机数及逻辑判断。1 / 1浙江省金华市江南中学2020届高三下学期信息技术4月初测试卷一、选择题(每道题2分,共26题,52分)1.(2020高三下·金华月考)有如下VB程序段:For i= 1 To 49j=1:a(j)=a(j)+1Do While a(j)=5a(j)=0j = j + 1a(j) = a(j) + 1LoopNext i数组a中各元素初始值均为0,该程序执行后,数组a中各元素之和为( )A.9 B.0 C.3 D.492.(2020高三下·金华月考)有如下VB程序段:s = 1For i = 2 To 10 Step 3s = s + iNext i则该程序段执行后,变量s和i的值分别是( )A.16, 11 B.15, 13 C.55, 11 D.25, 133.(2020高三下·金华月考)有如下VB程序段:c = 0 :i = 1Do While i <=6k = iFor j = i + 1 To 7If a(j)<= a(k) Then k = jNext jIf a(i) <> a(k) Thent = a(i): a(i) = a(k): a(k) = tc = c + 1End Ifi = i + 1Loop数组元素a(1)到a(7)的值依次为“9,9,8,16,45,9,78”。该程序段执行后,变量c的值是( )A.0 B.3 C.4 D.64.(2020高三下·金华月考)有如下VB程序段:a(1) = 1For i = 2 To 6Randomizea(i) = a(i - 1) + Int(Rnd * 5 + 1)If a(i) Mod 2 = 1 Thena(i) = a(i) \ 2 + 1Elsea(i) = a(i) / 2End IfNext i执行程序后,a数组各元素可能是( )A.1 3 4 6 7 9 B.1 2 0 3 5 6 C.1 2 3 4 5 4 D.1 3 4 5 1 15.(2020高三下·金华月考)数组d(1)~d(100)中存储某班级50位同学的语文和数学成绩,奇数位存储语文成绩,偶数位存储对应该同学的数学成绩。该数组已经按照两科总成绩升序排序。依据对分查找思想,设计一个在数组a中查找总成绩Key的程序,如果查找成功输出语文成绩在数组中的位置。实现该功能的VB程序段如下:Key = Val(Text1.Text)i = 1: j = 100Do While i <= jm = (i + j) \ 2If (1) Then m = m - 1Sum = (2)If Key = Sum Then Exit Do ‘Exit Do表示退出循环If (3) Theni = m + 2Elsej = m - 2End IfLoopIf i > j Then Text2.Text = "没有找到!" Else Text2.Text = Str(m)实现该功能,则上述程序段3个方框处的表达式分别为( )A.(1)m Mod 2 = 1 (2)d(m) + d(m - 1) (3)Key < SumB.(1)m Mod 2 = 1 (2)d(m) + d(m + 1) (3)Key > SumC.(1)m Mod 2 = 0 (2)d(m) + d(m - 1) (3)Key > SumD.(1)m Mod 2 = 0 (2)d(m) + d(m + 1) (3)Key > Sum6.(2020高三下·金华月考)有如下VB程序段:For i = 1 To 9 Step 2b(a(i) Mod 10) = b(a(i) Mod 10) + 1Next is = 0For i = 0 To 9 Step 3s =s + b(i)Next i数组b各元素初始值为0, 数组元素a(1)到a(9)的值依次为“29,74,12,38,16,45,21,57,33”,则执行该程序段后,s的值为( )A.5 B.4 C.3 D.27.(2020高三下·金华月考)有如下VB程序段:Dim i As Integer, j As Integer, a(1 To 5) As IntegerFor i =1 To 5a(i)=Int(Rnd*5+1)For j = 1 To i-1If a(i)=a(j) Theni=i-1 : Exit ForEnd IfNext jNext i执行程序后,数组中的数据可能是( )A.1 4 3 2 5 B.1 1 3 5 4 C.1 4 5 6 3 D.2 3 4 5 58.(2020高三下·金华月考)有如下VB程序段:s = "123456789"g = ""For i = 1 To 3n = Len(s)x = Int(Rnd * n) + 1g = g + Mid(s, x, 1)s = Mid(s, 1, x - 1) + Mid(s, x + 1, n - x)Next i在程序执行时,若变量x的值依次为3,3,6,则最终变量g的值为( )A."336" B."346" C."348" D.159.(2020高三下·金华月考)有如下 VB 程序段:For i=1 To 3For j=1 To 5-iIf a(j)>a(j+1) Thent=a(j): a(j)=a(j+1): a(j+1)=tEnd IfNext jText1.Text = Text1.Text + Str(a(i))Next i数组元素a(1)到a(5)的值依次为“3,9,6,8,4”。该程序段执行后,文本框 Text1 显示的内容是( )A.3 4 6 B.6 8 9 C.3 6 4 D.3 6 610.(2020高三下·金华月考)某VB程序段如下:Function f(n As Integer) As LongIf n = 1 Thenf =5Elsef =2 * f(n - 1) - 3End IfEnd FunctionPrivate Sub Command1_click()Dim n As Integern = Val(Text1.Text)Text2.Text = Str(f(n))End Sub该程序段运行后,在文本框Text1中输入5,单击命令按钮Command1后,文本框Text2中显示的是( )A.18 B.35 C.63 D.12311.(2020高三下·金华月考)某对分查找算法的VB程序段如下:i = 1: j = 8: s = ""key =Text1.TextDo While i <= jm =(i + j) \ 2If key = a(m) Thens = s + "M"Exit DoElseIf key > a(m) Thenj = m - 1: s = s + "L"Elsei = m + 1: s = s + "R"End IfLoopText1.Text = s数组元素a(1)到a(8)的值依次为“4,22,27,32,35,44,56,59”,该程序段执行后,文本框Text1中显示的内容不可能是( )A.M B.LR C.RM D.LM12.(2020高三下·金华月考)有如下VB程序段:For i = 1 To 3k = ""For j = 1 To 2 * i - 1k = k + " * "Next jList1.AddItem kNext i该程序段运行后,在列表框List1中显示的是( )A. B. C. D.13.(2020高三下·金华月考)下列程序执行后文本框Text1显示的内容是( )s = "Inter(R) Core(TM) i3-4130 CPU @ 3.40GHz"flag = False:k = 0For i = 1 To Len(s)ch = Mid(s, i, 1)If ch >= "A" And ch <= "Z" or ch >= "0" And ch <= "9" ThenIf Not flag Thenk = k + 1flag = TrueEnd IfElseflag = FalseEnd IfNext iText1.Text = Str(k)A.6 B.9 C.10 D.1814.(2020高三下·金华月考)有如下VB程序段:Function GCD(m As Long, n As Long) As LongDim temp As Long, r As LongIf m < n Then temp = m: m = n: n = tempd = m - nDo While d <> nIf d >= n Thenm = dElsem = nn = dEnd Ifd = m - nLoopGCD = nEnd FunctionPrivate Sub Command1_Click()Text1.Text = Str(GCD(48,36))End Sub程序运行完后,单击Command1按钮,文本框Text1中显示的是 ( )A.12 B.18 C.36 D.4815.(2020高三下·金华月考)有如下VB程序段:Dim a(1 To 5) As Integer, i As IntegerDim flag As Boolean, j As Integera(1) =1 : a(2) = 1 : a(3) = 1 : a(4)= 1 : a(5) = 1RandomizeFor i = 1 To 5j = 1: flag = TrueDo While j <= i - 1 And flag = Truea(i) = Int(Rnd * 5 + 1)If a(i) = a(j) Theni = i - 1: flag = FalseEnd Ifj = j + 1LoopNext i运行程序后,数组中的数据值可能是( )A.1 4 3 1 5 B.1 1 3 5 4 C.1 2 3 5 5 D.1 3 4 5 616.(2020高三下·金华月考)如果数组a(下标1到n)满足a(1)≤a(2)≤…≤a(i-1)≤a(i)≥a(i+1)≥…≥a(n),则称数组a是单峰的,并称a(i)是数组a的“峰顶”。下列程序段用于查找数组a中的“峰顶”,并返回该“峰顶”值。Dim a(1 To 10) As IntegerFunction Search(L As Integer, R As Integer) As IntegerM = (L + R) \ 2If a(M) < a(M - 1) And a(M) > a(M + 1) Then⑴ElseIf a(M) > a(M - 1) And a(M) > a(M + 1) Then⑵ElseIf a(M) > a(M - 1) And a(M) < a(M + 1) Then⑶End IfEnd FunctionPrivate Sub Command1_Click()Label1.Caption = "“峰顶”值是:" + Str(Search(1, 10))End Sub上述程序中划线处可选语句为:①Search = Search(M + 1 , R)②Search = Search(L , M - 1)③Search = a(M)则(1)(2)(3)处的语句依次是( )A.①②③ B.①③② C.③①② D.②③①17.(2020高三下·金华月考)有以下VB程序段:For i = 1 To 4For j = 4 To i + 1 Step -1s = "*" + sNext jList1.AddItem sNext i运行上述程序段后,列表框List1中显示的结果是( )A. B. C. D.18.(2020高三下·金华月考)数组b是一个有重复数据的递增数组,现把前面n个元素整体移动到最后形成如“7,8,9,10,1,2,3,4”的排列形式。下列程序实现如下功能:输入一个数,利用对分查找算法在数组b中查找,返回查找结果在Label2输出,若有多个相同数据,则返回最左侧数据的位置。Dim b(1 To 20) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As Integer, m As Integeri = 1: j = 20Key = Val(Text1.Text)Do While (1)m = (i + j + 1) \ 2If b(i) < b(m) ThenIf (2) Thenj = m - 1Elsei = m + 1ElseIf Key = b(m) ThenExit DoElseIf Key > b(m) And Key <= b(j) Theni = m + 1Elsej = m - 1End IfLoopIf (3) ThenLabel2.Caption = "数组中无此数"ElseDo While m > 0If Key = b(m) Then m = m - 1 Else Exit DoLoopLabel2.Caption = "此数在第" + Str(m + 1) + "个位置"End IfEnd Sub(1)(2)(3)处可选语句为:①i > j②i <= j③Key < b(m) And Key >= b(i)④Key> b(m) And Key <=b(j)则(1)(2)(3)处的语句依次是( )A.①③② B.②④① C.②③① D.①④②19.(2020高三下·金华月考)有如下VB程序段:a(1) = 1: a(2) = 3: a(3) = 5: a(4) = 7: a(5) = 9s = "ICT2019reform"For i = 1 To 5t = a(i)s = Mid(s, 1, t - 1) + Mid(s, t + 1)Next iText1.Text = s执行该程序段后,Text1显示的是( )A.ICT2019re B.CT01reor C.C21rform D.CT01reorm20.(2020高三下·金华月考)有如下VB程序段,已知a数组各元素值为“7,5,6,3,1,8”,b数组各元素的初始值为“0”。则经过以下程序段处理后,b数组各元素分别为( )For i = 1 To 5k = iFor j = i + 1 To 6If a(k) > a(j) Then k = jNext jt = a(k): a(k) = a(i): a(i) = tb((i + 2) Mod 6 + 1) = a(i)Next iA.1 3 5 6 7 8 B.7 0 1 3 5 6 C.6 7 8 1 3 5 D.6 7 0 1 3 521.(2020高三下·金华月考)某VB程序段如下:s = "Hello World"s1 = ""n = Len(s)For i = 1 To n \ 2If Mid(s, i, 1) > Mid(s, n - i + 1, 1) Thens1 = s1 + Mid(s, i, 1)Elses1 = Mid(s, n - i + 1, 1) + s1End IfNext iText1.Text = s1执行该程序段后,在文本框Text1中显示的是( )A.WlleH B.oorld C.dlroo D.orldo22.(2020高三下·金华月考)某VB程序段如下:s = "491053"For i = 1 To 3n = Len(s)k = 1For j = 2 To nIf Mid(s, k, 1) >= Mid(s, j, 1) Thenk = jElseExit For 'Exit For表示退出循环End IfNext js = Mid(s, 1, k - 1) + Mid(s, k + 1, n - k)Next iLabel1.Caption = s执行该程序段后,标签Label1中显示的值是( )A.053 B.953 C.913 D.10323.(2020高三下·金华月考)有VB程序段如下:s = "2019appreciate": sum = 0For i = 1 To Len(s)ch = Mid(s, i, 1)If ch >= "a" And ch <= "z" Thenm = Asc(ch) - Asc("a") + 1a(m) = a(m) + 1End IfNext iFor i = 1 To 10If a(i) > 0 Then sum = sum + 1Next i数组a各元素的初始值都为0,执行该程序段后,变量sum的值为( )A.10 B.7 C.4 D.324.(2019高二下·衢州期末)有VB程序段如下:RandomizeFor i = 1 To 6a(i) = Int(Rnd * 20) + 1If a(i) Mod 2 = i Mod 2 Then a(i) = a(i) - 1Elsea(i) = a(i) + 2 End IfNext i执行该程序段后,a(1)~ a(6)各元素可能的是( )A.13,2,7,12,5,18 B.20,9,18,23,4,7C.22,7,0,15,4,19 D.6,0,4,21,18,1725.(2020高三下·金华月考)有如下VB程序段:Dim i As Integer, sum As IntegerDim a(1 To 6) As Integer, b(1 To 6) As Integersum = 0a(6) = 18: a(5) = 7: b(6) = 14: b(5) = 16For i = 4 To 1 Step -1a(i) = a(i + 2) - a(i + 1)b(i) = b(i + 2) - a(i)If b(i) Mod 3 = 0 Then sum = sum + b(i)Next iText1.Text = Str(sum)该程序段运行后,文本框Text1中显示的内容是( )A.39 B.30 C.-9 D.1226.(2020高三下·金华月考)某VB程序段如下:Dim a (1 To 6) As IntegerRandomizea(1) = Int (Rnd*2) + 1For i = 2 To 6a(j) = Int (Rnd*i) *2 + 1If a(i) < a(i-1) Thena(i) = a(i) + a(i-1)End IfNext i执行该程序段后,数组元素a(1)到a(6)的值可能是( )A.2,4,6,8,10,12 B.1,1,3,7,12,23C.2,5,9,11,10,15 D.1,3,15,16,20,23答案解析部分1.【答案】A【知识点】常见数据类型、数组;常量、变量及变量的赋值【解析】【解答】题中使用的是双重循环,计算比较复杂,每循环1次,a(1)加1,循环5次清0;每循环5次,a(2)加1,循环25次清0;每循环25次,a(3)加1。根据代码进行模拟得到的结果是a(1)=4,a(2)=4,a(3)=1,其他元素全部是0。故答案选A。【分析】本题考查的是数组的运用。2.【答案】A【知识点】常量、变量及变量的赋值【解析】【解答】注意s的初值为1,步长为3,另外运行结束后i的终值为11,故答案是A。【分析】本题考查的是对VB语句的理解。3.【答案】B【知识点】排序算法及程序实现【解析】【解答】排序时对“有重复数据进行排序时不交换”进行了优化,确定交换次数为3次。故答案选B。【分析】本题主要考查的是选择排序算法的理解。4.【答案】C【知识点】常见数据类型、数组;运算符、基本运算与表达式【解析】【解答】题中a(2)的范围是1~3,a(3)~a(5)的范围都是1~5,排除A、B,选项D中a(4)=5,可推知a(5)为3~ 5,不可能是1,只有C都符合。故答案选C。【分析】本题考查的是数组的运用以及对常用函数的理解。5.【答案】D【知识点】常量、变量及变量的赋值;查找算法及程序实现【解析】【解答】当查找位置m为偶数时,其前面的数据为该同学的语文成绩,确定(1)空为m Mod 2 = 0;语文成绩的对应位置为m,则该同学的总成绩为d(m) + d(m+1),确定(2)空为d(m)+d(m+1);由题干中描述“数组已经按照两科总成绩升序排序”,可知当查找成绩大于当前总成绩时,执行“i = m + 2”,确定(3)空为Key > Sum。故答案选D。【分析】本题主要考查的是对分查找。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。6.【答案】C【知识点】常见数据类型、数组;常量、变量及变量的赋值【解析】【解答】数组元素的个位数按照桶排序进行计数,步长为2,故统计a(1) Mod 10,a(3) Mod 10,a(5) Mod 10,a(7) Mod 10,a(9) Mod 10的结果,因此1、2、3、6、9的值数组加1,而累加时的步长是3,b(3)、b(6)和b(9)的值被累加,故答案是3。故答案选C。【分析】本题考查的是数组和统计。7.【答案】A【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】代码中产生的是不重复的1~ 5之间的数,故答案选A。【分析】本题考查的是生成不重复随机数。生成随机数使用函数的是Rnd( )。8.【答案】C【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】变量值的变化如下:i 1 2 3x 3 3 6g "3" "34" "348"s "12456789" "1256789" "125679"故答案选C。【分析】本题考查的是对基本函数功能以及程序语句的理解。Mid ( )函数是从文本字符串中指定的开始位置起返回指定长度的字符。Rnd( )函数是产生随机数。9.【答案】D【知识点】排序算法及程序实现【解析】【解答】对这5个数据,冒泡排序将数值大的数据往后交换。进行前3轮的升序排序,然后分别输出第一轮的第一项,第二轮的第二项,第三轮的第三项。第一轮排序后结果:3,6,8,4,9,输出第一项3;第二轮排序后结果:3,6,4,8,9,输出第二项6;第三轮排序后结果:3,4,6,8,9,输出第三项6,故答案选D。【分析】本题主要考查对冒泡排序算法的理解。10.【答案】B【知识点】常量、变量及变量的赋值;递归算法【解析】【解答】f(1)=5,f(2)=2*f(1)-3=7,f(3)=2*f(2)-3=11,f(4)=2*f(3)-3=19,f(5)=2*f(4)-3=35,故答案选B。【分析】本题考查的是递归算法。11.【答案】B【知识点】常量、变量及变量的赋值;查找算法及程序实现【解析】【解答】若key值能在a(1)到a(8)中找到,s中最后一个字符一定为“M”。若key值不能在a(1)到a(8)中找到,则需查找4次才能结束,s的字符串长度应为4。故答案选B。【分析】本题考查的是对分查找算法。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。12.【答案】A【知识点】常量、变量及变量的赋值【解析】【解答】变量i表示行,变量j表示列,例如当i=2时,从1到3,表示有三个“*”。故答案选A。【分析】本题主要考查字符的输出。13.【答案】B【知识点】算法的控制结构;常量、变量及变量的赋值【解析】【解答】For循环的作用是依次从字符串s中读取每个字符(结合Mid函数),程序的作用为统计字符串s中连续大写字母或数字的字符串个数,If Not flag Then中条件Not flag等价于flag = False,本题还有一个地方要注意,当取字符为“3.40GHz”中的字符“0”后flag = True,取到“G”时不累加k的值。故答案选B。【分析】本题考查的是VB的循环结构和分支结构。14.【答案】A【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】48和36的最大公约数是12。故答案选A。【分析】本题考查的是VB的自定义函数及求两个数最大公约数的“更相减损术”算法。15.【答案】A【知识点】算法的控制结构;运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】For循环的作用是控制产生a(i)的次数,每次Do循环j的值从1到i-1,每次随机产生一个整数a(i),一方面,a(i)的范围是[1,5],另一方面,每次产生的数与前一个不重复,否则重新产生。因此,排除选项B,C,D。故答案选A。【分析】本题考查的是VB的循环结构和分支结构以及随机函数。16.【答案】D【知识点】查找算法及程序实现;递归算法【解析】【解答】如果a(M) > a(M - 1) And a(M) > a(M + 1),则此时的M即为“峰顶”,因此(2)处填Search = a(M);当a(M) < a(M - 1) And a(M) > a(M + 1)时,说明“峰顶”在左半区,因此L不变,R=M-1,(1)处应填Search = Search(L , M - 1)。故答案选D。【分析】本题考查的是VB的递归算法及对分查找算法。17.【答案】A【知识点】算法的控制结构;常量、变量及变量的赋值【解析】【解答】i=1时,语句s="*"+s 被执行3次,所以第一行为3个"*";i=2时,语句s="*"+s 被执行2次,所以第二行共有5个"*";i=3时,语句s="*"+s 被执行1次,所以第三行共有6个"*";i=4时,语句s="*"+s 没有被执行,因此第四行仍然打印6个"*"。故答案选A。【分析】本题考查的是对循环语句的理解。18.【答案】(1)C【知识点】常量、变量及变量的赋值;查找算法及程序实现【解析】【解答】(1)处是设置查找终止的条件,只要区间还有1个数就要继续找,选i<=j;(2)处判断关键字是否在左侧区间,上一行的If保证左侧区间有序,关键字大于等于i位置,小于中间值,确保在左侧区间,代码选Key < b(m) And Key >= b(i);(3)处判断是否找到,前文在区间为正时退出循环,则肯定已经找到,否则i>j说明找不到。故答案选C。【分析】本题考查的是对查找算法的理解。19.【答案】B【知识点】常见数据类型、数组;运算符、基本运算与表达式【解析】【解答】注意字符串s不断缩短,每一轮被删除一个字符。“ICT2019reform”第一轮后变为"CT2019reform",第二轮后变为“CT019reform”,依次类推,故答案选B。【分析】本题考查的是数组与函数的运用。20.【答案】D【知识点】常量、变量及变量的赋值;排序算法及程序实现【解析】【解答】这段程序首先基本实现了数组的升序排序,但新的位置把排序后的位置循环往右移动了3个位置,如元素“1”本来在第1个位置,但移动到了第4个位置,“6”本来在第4个位置,往右移3个位置,超出后到最左侧,变成在第1个位置,最后数字“8”原位置被占,但新位置没有被赋值,所以第3个位置为“0”。故答案选D。【分析】本题考查的是对排序算法的理解。21.【答案】D【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】程序实现第一个字符和最后一个字符进行比较,若大于则取前面的字符,连接后按顺序赋值给变量s1,反之则取后面的字符,但是要倒序连接并赋值给变量s1,第二个字符和倒数第二个字符进行比较,……,以此类推,故答案选D。【分析】本题考查的是VB字符串的处理以及对Mid( )函数的理解。22.【答案】B【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】程序分析:每次都从左边开始查找,若是升序的数,则删除最前面的数,若是降序的数,则删除最后一个数。故删除的顺序是“4”“0”“1”。故答案选B。【分析】本题考查的是数据的查找。该程序段的功能是删除3个数,并保持原来的顺序不变,使得剩下的数最大。23.【答案】C【知识点】常量、变量及变量的赋值【解析】【解答】代码的作用是统计小写英文字母中前10个字符(a~ j)出现的次数并记录到相应的数组元素a(1)、a(2)、…、a(10)中,并最终统计共有几个字母出现过,根据题意可知,有4个数组元素的值大于0,因此答案是4。故答案选C。【分析】本题考查的是VB的字符串处理。24.【答案】B【知识点】程序的调试及运行【解析】【解答】分析程序段功能:根据语句a(i) = Int(Rnd * 20) + 1可知,数组a(i)元素的数值范围是[1,20]。当数组元素a(i)满足a(i) Mod 2 = i Mod 2时,执行a(i) = a(i) - 1,否则执行a(i) = a(i) + 2。所以当i为偶数时,执行程序后,a(i)应为奇数,当i为奇数时,a(i)应为偶数。选项A:当i=1时,a(1)应为偶数,而a(1)=13为奇数。A错误;选项B:当i为1,3,5时,a(1)=20,a(3)=18,a(5)=4均为偶数,当i为2,4,6时,a(2)=9,a(4)=23,a(6)=7均为奇数。B正确;选项C:a(3)=0超出数组元素的数值范围。C错误;选项D:a(2)=0超出数组元素的数值范围。D错误。故答案选B。【分析】本题考查学生分析程序段功能和理解程序段的能力。25.【答案】B【知识点】常量、变量及变量的赋值;递归算法【解析】【解答】i=4时,a(4)=11,b(4)=3,sum=3;i=3时,a(3)=-4,b(3) =20;i=2时,a(2)=15,b(2)=-12,sum=-9;i=1时,a(1)=-19,b(1)=39,sum=30。故答案选B。【分析】本题考查的是对递归算法的理解。26.【答案】B【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值【解析】【解答】最初时,a(1)的范围是1~2,a(2)的范围是1~3,a(3)的范围是1~5,a(4)的范围是1~7,a(5)的范围是1~9,a(6)的范围是1~11。再根据if语句进行调整,当前元素小于前面一个元素时,将这两个值相加后再赋值给当前的元素a(i)。当a(1)=2时,a(2)不可能超过3,因此可以排除AC。另外,当a(2)=3时,a(3)的值绝对不可能是15(最大值只能是5),从而排除选项D。故答案选B。【分析】本题考查VB随机数及逻辑判断。1 / 1 展开更多...... 收起↑ 资源列表 浙江省金华市江南中学2020届高三下学期信息技术4月初测试卷(学生版).docx 浙江省金华市江南中学2020届高三下学期信息技术4月初测试卷(教师版).docx