(1)在考生文件夹中有工程文件sjt3.vbp,程序界面如图所示。当在文本框中输入正整数N,单击“计算”命令按钮,进行计算。若N是奇数,计算1+3!+5!+……+N!,若N是偶数,计算1+3!+5!+...
(2)在考生文件夹下有一个工程文件sjt4.vbp,该程序的功能是显示月历。运行程序后,在Text1、Text2中分别输入年份和月份,并在左边的框架中选择该年的1月1日是星期几,然后单击“显示月历”按钮,即可在下面的图片框内显示该年该月的月历。下图所示的是2008年2月份的月历。请将事件过程中的注释符去掉,把?改为正确的内容,以实现上述程序功能。
注意:
不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。
参考解析: (1)【考点分析】本题考点有:文本框的Text属性,标签的Caption属性,命令按钮的Click事件,Val()函数,自定义函数及调用,if语句及for语句。
【解题思路】通过Val()函数得到输入N值,利用N与2相除求得余数是否为0来判断N是奇数还是偶数。自定义函数f来计算N!,通过for循环调用函数f来求出题目要求的和。
【操作步骤】
步骤1:打开本题工程文件。
步骤2:打开代码编辑窗口,去掉程序中的注释符,将问号改为正确的内容。
参考答案(阴影部分是需要考生填入的内容)
Private Sub Command1_Click()
Dim sum As Long
n = Val(Text1.Text) '将文本框中文本转换为数值
sum = 0
If n Mod 2 = 0 Then '判断奇数还是偶数
m = n + 1
Else
m = n
End If
For i = 1 To m Step 2
sum = sum + f(i) '调用f来求得题目要求的和
Next
Label2.Caption = sum
End Sub
Private Function f(ByVal x As Integer) As Long '定义f,求N!
y = 1
For i = 1 To x
y = y * i
Next
f = y
End Function
程序结束
步骤3:调试并运行程序,关闭程序后按题目要求存盘。
(2)【考点分析】本题考点有:自定义数组及初始化,单选按钮控件数组,自定义函数及调用,if语句,for语句,IIf()函数以及闰年如何判断。
【解题思路】首先判断年份是否为闰年,然后计算到要显示月历的月份之前共有多少天,再计算出要显示月历的月份的第1天是星期几,最后输出月历。
【操作步骤】
步骤1:打开本题工程文件。
步骤2:打开代码编辑窗口,去掉程序中的注释符,将问号改为正确的内容。
参考答案(阴影部分是需要考生填入的内容)
Option Base 1 'month_days 数组下界为1
Private Sub Command1_Click()
Dim days%, month%, year%, day1_1%, n%
Static month_days As Variant
month_days = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
For k = 0 To 6
If Option1(k).Value = True Then
day1_1 = k
End If
Next k
days = 0
month = Text2
year = Text1
month_days(2) = IIf(leap_year(year), 29, 28) '调用leap_year函数判断闰年
'IIF( 逻辑表达式 , 表达式1 , 表达式2 ),为真,返回表达式1 ,否则返回表达式2
'======== 计算到要显示月历的月份之前共有多少天 =========
For k = 1 To month - 1
days = days + month_days(k)
Next k
'======== 计算要显示月历的月份的第1天是星期几 =========
n = (days Mod 7 + day1_1) Mod 7
'================ 输出月历 ==================
Picture1.Cls
Picture1.Print " SUN MON TUE WED THU FRI SAT"
For k = 1 To month_days(month)
Picture1.Print Tab(5 * n + 1); k;
n =&nbs