浙江高考信息技术 · 浙江普通高等学校招生全国统一考试2016A 信息技术 第 16 题

选择题 · 答案 2Abs(w(imax) - w(imax - 1))

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

题目

【加试题】某地1900-1999年的平均降水量数据保存在数据库中。现要求找出相邻两年年平均降水量变化(即本年度与上年度“年平均降水量”差值的绝对值)最大的年份区间。如果多个符合要求的年份区间,只输入距今最近的。小吴为此编写了VB程序,程序运行时,单击按钮Command1后,在文本框Text1中输出运行结果。实现上述功能的VB代码如下,但加框处代码有错,请改正。

![](http://luogu-ipic.oss-cn-shanghai.aliyuncs.com/5qsqi.jpg)

答案:2Abs(w(imax) - w(imax - 1))

解题思维

这题考VB数组下标越界和绝对值函数。拿到题先看数组定义的下界,再想怎么把相邻两年差值算出来,用Abs函数套上两个元素相减,最后注意输出的是差值的绝对值不是年份。

常见错误

最容易错在数组下标从0还是1开始,若按0起算直接写w(i)-w(i-1)就会报下标越界;其次是把差值当成正数输出忘了取绝对值,或者把年份本身当成差值输出;还有可能混淆了题目要求,输出了年份区间而不是差值大小。

详细解析(节选)

这题考什么

这道题考查VB语言中数组的下标范围、数组元素的访问以及Abs函数的使用。

核心概念

数组是VB中用来存储一组相同类型数据的容器,可以用下标来访问其中的元素。数组的下标范围取决于声明时的设置:用Dim a(n)声明时,下标默认从0到n,共n+1个元素;若用Dim a(1 to n)声明,则下标从1到n。数组元素通过数组名(下标)访问,下标必须是整数且在合法范围内。

Abs函数用于求绝对值,语法为Abs(数值),返回该数值的非负值。

命题人怎么挖坑

命题人喜欢在这里设两个坑:一是数组下标越界,学生容易忽略数组是从0还是1开始,导致访问不存在的下标;二是忘记取绝对值,直接输出差值可能为负数,不符合题意。

思考心法

拿到题先看数组定义,确认下界。若数组是从0开始,那么第一个元素是w(0),第二个是w(1),以此类推。要找相邻两年的差值,就是w(i) - w(i-1),但要注意i从1开始,因为w(0-1)会越界。所以循环应从i = 1开始,计算w(i) - w(i-1),再用Abs取绝对值。

具体怎么算

题目要求输出相邻两年年平均降水量变化最大的差值绝对值。代码中已有循环遍历所有年份,计算差值并更新最大值。框中的代码应为Abs(w(i) - w(i-1)),其中i是当前年份的下标,i-1是前一年。用Abs确保结果为非负数。

避坑指南

别把数组下界想错了,VB默认数组从0开始,除非显式声明从1开始。别忘了取绝对值,差值可能是负数。别把年份当成差值输出,题目要的是差值的绝对值。

考频与趋势

根据历年数据,数组下标越界是VB高频考点,每年约出现2-3次,尤其在填空题和改错题中常见。Abs函数使用也是基础必考,但单独考的情况较少,多与数组结合。整体来看,这类题目在NOIP和CSP-J/S中保持稳定,预计未来仍会高频出现,尤其是数组操作相关的题目。

预测

结合考频趋势,未来VB题目很可能继续侧重数组下标和数学函数的结合,如求最大值、平均值等。若数据不足以支撑更具体的预测,暂无足够依据预测。

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