试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省临海市白云高级中学2018-2019学年高二下学期信息技术期中考试试卷

由数组a生成数组b的方法描述如下:

⑴将数组a中的n个元素依次分割出若干个数据块,每个数据块有m×m个元素,m最大值为8,最小值为2。分割时,按尽可能大的数据块进行分割;

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

⑶数组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)、请在划线处填入合适的代码。

Const n = 120

Dim a(1 To n) As Integer

Dim b(1 To n) As Integer

Private Sub Command1_Click()

Dim m As Integer, i As Integer

Dim Start As Integer   '当前未分割数据的第1个元素下标

Dim Left As Integer    '当前未分割数据的个数

Dim pa As Integer      '数组a的下标

Dim pb As Integer      '数组b的下标

'读取n个转换前的数据,依次存储到a(1)、a(2)、……a(n)中,代码略

m = 8

Start = 1

Left = n

Do While Left > 3

   If Left < m * m Then

      m =

   Else

     pa = Start

     pb = Start

     For i = 1 To m * m

        b(pb) = a(pa)

        pb = pb + 1

        If i Mod m = 0 Then

           

        Else

           pa = pa + m

        End If

     Next i

    

     Start = Start + m * m

  End If

Loop

For i = Start To n

   b(i) = a(i)

Next i

'依次输出转换后数据b(1)、b(2)、……b(n)中,代码略

End Sub

举一反三
返回首页

试题篮