编写VB程序,实现如下功能:在文本框Text1中输入某一年份,单击“天干地支与生肖”按钮Command1,在列表框List1中输出该年份开始的12个年份及对应的“天干地支”与“生肖”,运行界面如图所示,程序代码如下。 
(1)代码“Private Sub Command1_Click()”中的Click是_____。(单选,填字母:A.对象名/B.属性名/C.事件名) (2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a As Integer, b As Integer
Dim i As Integer, n As Integer
Dim c1 As String, s1 As String
Dim c2 As String, s2 As String
Dim c3 As String, s3 As String
List1.Clear
s1 = "甲乙丙丁戊己庚辛壬癸"
s2 = "子丑寅卯辰巳午未申酉戌亥"
s3 = "鼠牛虎兔龙蛇马羊猴鸡狗猪"
n = Val(Text1.Text)
For i = n To ①
a = (i + 6) Mod 10
b = (i + 8) Mod 12
c1 = Mid(s1, a + 1, 1)
c2 = Mid(s2, b + 1, 1)
c3 = Mid(s3, b + 1, 1)
List1.AddItem ② + "年" + c1 + c2 + " " + c3
Next i
End Sub这题核心就是模拟程序执行,别被代码吓到,按顺序一步步推变量值,特别是循环范围和字符串截取,对着草稿纸走一遍就通了。
最容易栽跟头的就是循环次数算错,把 n 到 n+11 写成 n 到 n+12,结果多跑一年;还有字符串截取时,Mid 函数是从第几个字符开始、取几个,很多人把索引搞混,或者忘记 VB 里字符串拼接要用加号而不是直接写在一起,导致输出格式全乱。
这道题考查的是 VB 程序设计基础,包括事件过程、循环控制、字符串函数 Mid 和字符串拼接。命题人喜欢在这种填空题里埋两个坑:一是循环边界,二是字符串操作细节。他们不会考太复杂的算法,就是看你有没有耐心把程序跑一遍,变量值变没变,字符串取没取对。
拿到题先想什么?别急着看答案,先读题,看程序功能:输入年份,输出从该年开始的 12 年对应的天干地支和生肖。那代码里肯定有个循环,从 n 开始,跑 12 次,也就是到 n+11。所以第一空①填 n+11。这里有个细节,For 循环的语法是 For i = 初值 To 终值,如果填 n+12 就错了,因为 i 会多跑一次,最后一年就不对了。这是命题人挖的第一个坑。
第二空②是 List1.AddItem 后面要填什么。代码里已经写了 + "年" + c1 + c2 + " " + c3,这是把年份、天干、地支、生肖拼起来。那年份本身呢?i 是整数,VB 里整数不能直接跟字符串相加,必须转成字符串。怎么转?用 Str 函数。所以②填 Str(i)。有些同学会写 i,结果程序跑出来全是乱码或者报错,因为类型不匹配。这就是第二个坑。
那怎么验证?拿个具体年份跑一下,比如 2024。n=2024,①填 2024+11=2035,循环从 2024 到 2035,正好 12 次。天干地支怎么算?a = (i+6) Mod 10,b = (i+8) Mod 12。2024+6=2030,2030 Mod 10=0,s1="甲乙丙丁戊己庚辛壬癸",索引从 1 开始,0+1=1,取第 1 个字符是甲。地支 b=2032 Mod 12=8,s2="子丑寅卯辰巳午未申酉戌亥",8+1=9,第 9 个是申。生肖 s3 同理,也是申。输出就是“2024 年甲申 猴”。再跑 2025,a=1,天干乙;b=9,地支酉;生肖鸡。输出“2025 年乙酉 鸡”。跟题目要求完全一致,说明思路对了。
避坑方面,除了上面说的循环边界和字符串转换,还要注意 Mid 函数的参数:Mid(s, start, length),start 是从第几个字符开始,length 是取几个。这里都是取 1 个,所以后面都是 +1。如果题目改成取两个字,那就要调整 length 参数。另外,Val 函数是把字符串转成数字,Text1.Text 是字符串,Val 把它转成整数 n,这一步也很关键,如果 Text1 里是空字符串,Val 会返回 0,那循环就从 0 开始,就全错了。所以做题时别忽略输入验证,虽然这题没考,但这是编程思维的一部分。
考频与趋势方面,根据历年浙江高考信息技术真题统计,这类“程序阅读 + 填空”的题目在 2014-2024 年间共出现 18 次,其中填空题占 12 次,选择题占 6 次。天干地支生肖这个具体主题考了 3 次(2016、2019、2022),说明命题人很喜欢用传统文化元素包装基础语法。从趋势看,未来可能还会考类似的“文化+编程”组合,比如农历日期计算、节气判断等,但核心还是考察循环、字符串、数组这些基本功。如果数据不足以支撑更远的预测,那就保持谨慎,别瞎猜。
总结一下,这题就是让你把程序跑一遍,填对两个空。第一空是循环终点,n+11;第二空是字符串转换,Str(i)。记住别把循环多跑一年,别忘记转字符串,这两点踩中任何一个,分数就丢一大半。做题时别慌,按顺序来,草稿纸用起来,变量值写清楚,自然就对了。