浙江高考信息技术 · 浙江普通高等学校招生全国统一考试2017B 信息技术 第 17 题

阅读程序 · 答案 4m-1int(sqr(left))pa=pa-m*(m-1)+1pa=start=i\3left=left-m*m

← 整套速查表 浙江高考信息技术 全部真题

题目

【加试题】由数组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数据块为例,转换过程如下图所示: ![](http://luogu-ipic.oss-cn-shanghai.aliyuncs.com/youti/92.png) 小明依据上述描述设计了如下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
     p

(本题为阅读程序 / 完善程序,完整题目与测试数据见平台)
答案:4m-1int(sqr(left))pa=pa-m*(m-1)+1pa=start=i\3left=left-m*m

解题思维

本题考查基础知识的理解与应用,需要结合所学概念进行分析和判断。

常见错误

注意审题,看清题目要求是选择"正确的"还是"不正确的"。逐一分析每个选项,排除明显错误的选项。

详细解析(节选)

核心概念:本题涉及计算机科学基础知识,需要准确理解相关概念的定义和应用场景。

推导分析:逐一检查每个选项是否符合题目的条件和要求;对于不确定的选项,可以尝试举反例验证;结合排除法缩小选择范围。

避坑指南:注意否定词如"不正确的是""不属于";注意限定词如"一定""可能""必须"等绝对化表述往往是陷阱。

解题技巧:先排除明显错误的选项,在剩余选项中仔细比较。对于计算题,列出公式仔细计算。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断