阅读程序 · 答案 29pa + 2b(pb+i-1)=a(pa+2)pb-1
← 整套速查表 浙江高考信息技术 全部真题【加试题】某数据压缩方法描述如下: 1)原始数据中,某数不为0且相邻无重复,压缩数据用该数据表示; 2)原始数据中,某数为0且相邻无重复,压缩数据用两个数表示,第1个位0,第2个为0; 3)原始数据中,某数据相邻有重复,压缩数据用3个数表示:第1个位0,第2个为重复数的个数,第3个为该数本身; 根据上述压缩方法,对应的解压缩方法示例如图a所示。  小明编写了一个解压送VB程序,功能如下:窗体加载时,自动读取压缩数据,依次存储在数组元素a(1)、a(2)、a(3)……中,压缩数据的个数存储在变量n中,压缩数据显示咋文本框Text1中。单击“解压缩”按钮Command1,程序对压缩数据依次进行解压缩处理,解压缩数据显示在文本框Text2中。程序运行界面如图b所示。 
(1)如果压缩数据为“23,0,21,66,0,0,77,0,5,0”,则解压缩数据的个数是_____。 (2)实现上述功能的VB程序如下。请在划线处填入合适代码。 
这道题考查数据压缩与解压缩的逻辑转换,核心在于读懂压缩规则并模拟指针移动过程。拿到题先别急着写代码,把压缩数据‘翻译’成解压缩后的数据,再数个数。
容易在模拟指针移动时越界,比如pb+i-1当i=1时变成pb,导致数组访问错误;或者忘记压缩规则中‘0,0’代表一个数,导致解压缩时多算或少算;还有可能把压缩数据的个数n当成解压缩后的个数,直接填n=13,其实解压缩后多了两个数,应该是29。
本题属于信息编码与解码类问题,考查学生将压缩规则转化为程序逻辑的能力。命题人喜欢用“指针移动”“数组访问”来模拟解压过程,同时埋下边界检查和重复计数的坑。这类题在浙江高考信息技术中属于高频考点,历年考频稳定在3-5次/年,常出现在加试题第17题左右,难度中等偏上。