资源描述
2(2)在考生文件夹下有一个工程文件sjt4.vbp,运行情况如图所示。程序的功能是计算下列表达式的值:
z=(x+2)2+(x+3)3+(x+4)4+…………+(x+n)n
其中的N和x的值通过键盘分别输入到文本框Text1、Text2中。之后如果单击标题为"计算"、名称为Command1的命令按钮,则计算表达式的值z,并将计算结果显示在名称为Label1的标签中。
注意:考生不得修改窗体文件中已经存在的程序。程序中不得使用^运算符,而应使用函数xn进行幂运算。程序至少运行一次,按照下图输入数据,使x=10,N=5,单击"计算"按钮,计算z的值,并将结果显示在标签Label1中,否则没有成绩。最后,程序按原文件名存盘。
【考点分析】本题考点有:标签的Caption属性, Function()过程,Val()函数,Call语句,Sub()函数,文件操作(Open、Close、Output),App.Path相对路径以及For循环语句。
【解题思路】通过For循环语句实现xn()的乘幂运算;Click事件过程中通过Val()函数实现字符类型向数值型的转换,通过循环语句及调用xn()函数,获得函数返回值,实现表达式的运算结果;运用Call 语句调用SaveResult函数对于结果进行保存,涉及文件的Open、Close和Output操作,最后将结果保存在文件夹下的 out4.dat文件中。
Private Function xn(a As Single, m As Integer)
Dim i As Integer
tmp = 1
For i = 1 To m
' tmp = ?
Next
'xn = ?
End Function
Private Sub Command1 Click()
Dim n As Integer
Dim i As Integer
Dim t As Single
Dim s, x As Single
n = Val(Text1.Text)
x = Val(Text2.Text)
z = 0
For i = 2 To n
t = x + i
' z = z +?
Next
'Label1.Caption = ?
Call SaveResult
End Sub
Private Sub SaveResult()
Open App.Path & "\out4.dat" For Output As #1
Print #1, Label1.Caption
Close #1
End Sub
参考答案:①a ^ I ②tmp ③xn(t, i) ④z
22(1)程序的功能是计算如下表达式的值:
z=(x-2)!+(x-3)!+(x-4)!+…+(x-N)!
其中的N和x值通过键盘分别输入到两个文本框Text1、Text2中。单击名称为Command1、标题为"计算"的命令按钮,则计算表达式的值,并将计算结果在名称为Label1的标签中显示。
要求:程序调试通过后,必须按照如图所示输入N=5,x=12,然后计算z的值,并将计算结果显示在标签Label1中,否则没有成绩。
【考点分析】本题考点有:标签的Caption属性, Function()过程,Val()函数,Call语句,Sub()函数,文件操作(Open、Close、Output),App.Path相对路径以及For循环语句。
【解题思路】通过循环语句实现xn()的乘幂运算;在命令按钮的单击事件过程中通过Val()函数实现字符类型向数值型的转换,通过循环语句及调用xn()函数,获得函数返回值,实现表达式的结果运算;最后运用Call 语句调用SaveResult函数语句,并将结果进行保存在文件夹下的 out4.dat文件中。
Private Function xn(m As Integer) As Long
Dim i As Integer
Dim tmp As Long
'tmp = ?
For i = 1 To m
'tmp =?
Next
'? = tmp
End Function
Private Sub Command1 Click()
Dim n As Integer
Dim i As Integer
Dim t As Integer
Dim z As Long, x As Single
n = Val(Text1.Text)
x = Val(Text2.Text)
z = 0
For i = 2 To n
t = x - i
'z = z + ?
Next
Label1.Caption = z
Call SaveResult
End Sub
Private Sub SaveResult()
Open App.Path & "\out3.dat" For Output As #1
Print #1, Label1.Caption
Close #1
End Sub
参考答案:①1 ②tmp * I ③xn ④xn(t)
11(2)程序的功能是计算M!+(M+1)!+(M+2)!+…+N!之和。窗体上有名称分别为Text1、Text2的两个文本框,用于接收输入的M和N(要求M<N)。单击名称为Command1、标题为"计算"的命令按钮,计算M!+(M+1)!+(M+2)!+…N!的值,并将计算结果显示在标签lblResult中。
【考点分析】本题考点有:标签的Caption属性,Val()函数,For循环语句。
【解题思路】Function f()过程函数用于实现对数值阶乘的运算,Val()函数实现文本框中的字符转换成数值型,通过循环累加调用过程函数实现表达式结果运算。
Private Sub Command1 Click()
Dim m As Integer
Dim n As Integer
Dim s As Long
Dim i As Integer
m = Val(Text1.Text)
n = Val(Text2.Text)
s = 0
'For i =? To n
't =?
's = s + ?
Next
lblResult.Caption = s
End Sub
Private Function f(ByRef x As Integer) As Long
Dim t As Long
t = 1
For i = 1 To x
't = ?
Next
'f =?
End Function
参考答案:①1 ②m+1 ③f(t) ④t*I ⑤t
3(1)工程文件sjt3.vbp,其功能是: ①单击"读数据"按钮,则将考生文件夹下in3.dat文件中的100个0到999之间的整数读入到数组a中;
②单击"计算"按钮,则找出这100个整数中的所有水仙花数,并将它们的最大值与最小值分别显示在文本框Text1、Text2中。(注:当一个数的值等于该数中的各位数字的立方和时,此数被称为水仙花数。如:153=13+53+33所以153就是一个水仙花数) 。要求编写"计算"命令按钮的事件过程。
【解题思路】Fix 函数删除 number 参数的小数部分并返回以整数部分。格式为:
Fix(number) ,number 参数可以是任意有效的数值表达式。如果 number 参数包含 Null,则返回 Null。
Val 函数返回包含于字符串内的数字,语法:Val(string) ,必要的 string 参数可以是任何有效的字符串表达式。
循环遍历数组a,通过调用Function 过程判断是否为水仙花数,并通过If语句对于数值进行比较,如果 max <= a(i) 那么max = a(i),最小值同理。在设置变量初值时,max=-1,min=1000。目的是方便比较数的大小。因为数组中的数值最小的是0,最大的是999,那么,让max先=-1,小于数组中的最小值,在程序执行过程中,只要有水仙花数,就一定会大于max,这样才会赋值给max,min=1000也是同样的道理!
Dim a(100) As Integer
Private Sub Command1 Click()
Dim k As Integer
Open App.Path & "\in3.dat" For Input As #1
For k = 1 To 100
Input #1, a(k)
Next k
Close #1
End Sub
Private Sub Command2 Click()
'需考生编写
End Sub
'以下Function 过程用于判断某数是否为水仙花数
Function isnarc(p As Integer)
x = Fix(p / 100)
y = Fix((p - x * 100) / 10)
z = p - x * 100 - y * 10
If p = x ^ 3 + y ^ 3 + z ^ 3 Then
isnarc = True
Else
isnarc = False
End If
End Function
Private Sub Form Unload(Cancel As Integer)
Open App.Path & "\out3.dat" For Output As #1
Print #1, Val(Text1.Text)
Print #1, Val(Text2.Text)
Close #1
End Sub
参考答案
Dim i As Integer
Dim max As Integer, min As Integer
max = -1
min = 1000
For i = 1 To 100
If isnarc(a(i)) Then
If max <= a(i) Then max = a(i)
If min >= a(i) Then min = a(i)
End If
Next i
text1=max
text2=min
End Sub
【举一反三】第11套第三大题。
17(1)工程文件功能是:
①单击"读数据"按钮,则将考生文件夹下in3.dat文件中的100个正整数读入数组a中;
②单击"计算"按钮,则找出这100个正整数中的所有完全平方数(一个整数若是另一个整数的平方,那么它就是完全平方数。如:36=62所以36就是一个完全平方数),并计算这些完全平方数的平均值,最后将计算所得平均值截尾取整后在文本框Text1中显示。
在结束程序运行之前,必须进行"计算",且必须用窗体右上角的关闭按钮结束程序,否则无成绩。
【考点分析】本题考点有:Fix 函数,App.Path相对路径,文件编辑,Sqr函数,^运算符,For循环语句以及If条件判断语句。
【解题思路】通过文件操作读入数据,并将数值赋值给数组a(k),根据题意,程序要实现寻找完全平方数,并求出完全平方数的平均值,现在读入和保存程序已经编写完整,需要编写的是求出完全平方数的平均值的代码。通过循环语句和判断语句确定完全平方数,并进行完全平方数和的累加,求出平均数。Int 和 Fix 函数都可以移除 Number 的小数部分并返回得到的整数值。Fix 函数实现平均值的截尾取整,在这里也可以使用Int函数。Int 和 Fix 函数之间的区别在于:如果 Number 为负,则 Int 返回小于或等于 Number 的第一个负整数,而 Fix 返回大于或等于 Number 的第一个负整数。例如,Int 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。
Dim a(100) As Integer
Private Sub Command1 Click()
Dim k As Integer
Open App.Path & "\in3.dat" For Input As #1
For k = 1 To 100
Input #1, a(k)
Next k
Close #1
End Sub
Private Sub Command2 Click()
'考生编写
End Sub
Private Sub Form Unload(Cancel As Integer)
Open App.Path & "\out3.dat" For Output As #1
Print #1, Text1.Text
Close #1
End Sub
参考答案
Private Sub Command2 Click()
Dim sum As Long
Dim k As Integer
Dim m As Integer
For k = 1 To 100
For m = 1 To Sqr(a(k))
If a(k) = m ^ 2 Then
sum = sum + a(k)
n = n + 1
End If
Next m
Next k
Text1 = Fix(sum / n)
End Sub
3(2)在考生文件夹下有一个工程文件sjt4.vbp。请在窗体上添加一个组合框,名称为cb1,并输入三个列表项:"3"、"7"、"11"(列表项的顺序不限,但必须是这3个数字);添加一个名为Text1的文本框;再添加一个标题为"计算"、名称为C1的命令按钮。如图所示。请编写适当的事件过程,使得在程序运行时,在组合框中选定一个数字后,单击"计算"按钮,则计算5000以内能够被该数整除的所有数之和,并放入Text1中。最后,按原文件名存盘。
提示:由于计算结果较大,应使用长整型变量。
注意:考生不得修改窗体文件中已经存在的程序,在结束程序运行之前,必须至少进行一次计算。并且必须用窗体右上角的关闭按钮结束程序,否则无成绩。
【解题思路】Mod取模运算,就是求余数,比如: 10 mod 3 = 1 因为10除以3等于3余1,结果就是余数。如果a mod b=0,则说明a能被b整除,反之a mod b<>0,则a不能被b整除。
组合框(ComboBox)将文本框与列表框的特性组合在一起,既可在组合框的文本框部分输入信息,也可在列表框部分选择项目;组合框的列表项可在设计阶段通过其List属性添加,每输入完一项后按<Ctrl+Enter>键换行再输入下一项;其Text属性用于设置或返回其文本框部分当前的文本。
根据题意,用For逐一循环5000内的整数,通过If语句的条件表达式:i Mod n=0,判断各个数是否能被n整除,把能被整除的数累加到变量sum。i为循环变量,n的值为Val(Cb1.Text)。
Private Sub Form Unload(Cancel As Integer)
unload sub
End Sub
模块代码
Sub unload sub()
Open "out4.dat" For Output As #1
Print #1, Val(Form1.Cb1.Text), Val(Form1.Text1. Text)
Close #1
End Sub
参考答案
Private Sub C1_Click()
Dim sum As Long
Dim n As Integer
Dim i As Integer
n = Val(Cb1.Text)
For i = n To 5000
If i Mod n = 0 Then
sum = sum + i
End If
Next i
Text1.Text = sum
End Sub
【易错提示】在定义变量时注意,由于数值较大,应定义为长整型变量,防止数值过大溢出。
【举一反三】第4套第二部分第二小题。
5(2)通过调用过程FindMin求数组的最小值。程序运行后,在四个文本框中各输入一个整数,然后单击命令按钮,即可求出数组的最小值,并在窗体上显示出来(如图所示)。
【考点分析】本题考点有:Array()函数,UBound 函数,LBound 函数,Val() 函数,Print方法,CInt 函数循环语句以及If判断语句。
【解题思路】文本框里的内容(包括数字)默认都是当作字符串来处理的,如果需要参与数据运算,则需先用Val()函数将其转化为数字(如Val(Text1.Text))。CInt 函数将一数值转换为整型。
这里需要指出的是,利用Array对数组各元素赋值,声明数组的类型只能是Variant。
在本题的FindMin过程中,用变量Min记录最小值,最初把数组的第一个元素的值赋给Min,然后通过For循环语句将其后的元素依次与之比较,如果小于Min的值则与之交换,依次类推,最终Min的值就是数组各元素中的最小值。
在窗体上打印信息可以通过Print方法来实现,其形式为:[对象.]Print 要显示的内容
Option Base 1
Private Function FindMin(a() As Integer)
Dim Start As Integer
Dim Finish As Integer, i As Integer
'Start = ?(a)
'Finish = ?(a)
''Min = ?(Start)
For i = Start To Finish
'If a(i) ? Min Then Min = ?
Next i
FindMin = Min
End Function
Private Sub Command1 Click()
Dim arr1
Dim arr2(4) As Integer
arr1 = Array(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text), Val(Text4.Text))
For i = 1 To 4
arr2(i) = CInt(arr1(i))
Next i
'M = FindMin(?)
Print "最小值是: "; M
End Sub
参考答案:①Lbound ②Ubound ③a
④< ⑤a(i) ⑥arr2
【易错提示】option base:在模块级别中使用,用来声明数组下标的默认下界 ,option base后面只能是0或者1 ,默认值为0。
26(2)通过调用过程FindMax求数组的最大值。程序运行后,在四个文本框中各输入一个整数,然后单击"求最大值"即可求出数组的最大值,并显示在窗体上
【考点分析】本题考点有:LBound函数,UBound函数,Val函数,Print方法,CInt函数以及For循环语句。
【解题思路】文本框里的内容(包括数字)情况下,都是当作字符串来处理的,如果要参与数据运算,则须先用Val() 函数将其转化为数字(如Val(Text1.Text))。
这里需要指出的是,利用Array对数组各元素赋值,声明数组的类型只能是Variant。数组的上下界可用LBound函数和UBound函数分别获得;程序中变量Max保存最大数,最初把数组的第一个元素赋给Max,然后将其后的元素依次与之比较,如果大于Max的值则与之交换,依次类推,最终Max中的元素就是最大值。在窗体上输出信息可以通过Print方法来实现,其形式为:
[对象.]Print 要显示的内容
Option Base 1
Private Function FindMax(a() As Integer)
Dim Start As Integer
Dim Finish As Integer, i As Integer
'Start = ?(a)
'Finish = ?(a)
'Max = ?(Start)
For i = Start To Finish
'If a(i) ? Max Then Max = ?
Next i
FindMax = Max
End Function
Private Sub Command1 Click()
Dim arr1
Dim arr2(4) As Integer
arr1=Array(Val(Text1.Text),Val(Text2.Text), Val(Text3.Text), Val(Text4.Text))
For i = 1 To 4
'arr2(i) = CInt(?)
Next i
'M = FindMax(?)
Print "最大值是: "; M
End Sub
参考答案:①Lbound ②Ubound ③a ④>
⑤a(i) ⑥arr1(i) ⑦arr2
28 (2)在考生文件夹下有一个工程文件sjt4.vbp(相应的窗体文件名为sjt4.frm),其功能是通过调用过程Average求数组的平均值。程序运行后,在四个文本框中各输入一个整数,然后单击命令按钮,即可求出其平均值,并显示在窗体上(如图所示)。
【解题思路】文本框里的内容(包括数字)默认情况下都是当作字符串来处理的,如果要参与数据运算则需先用Val函数将其转化为数值类型。这里需要指出的是,利用Array函数对数组各元素赋值,声明的数组只能是Variant类型,数组的上下界可用UBound和LBound函数获得, LBound函数返回"数组"的下界,而UBound函数返回"数组"某一"维"的上界值,这两个函数一起使用即可确定一个数组的大小。
Option Base 1
Private Function Average(a() As Integer) As Single
Dim Start As Integer, Finish As Integer
Dim i As Integer
Dim Sum As Integer
'Start = ?(a)
'Finish = ?(a)
'Sum = ?
For i = Start To Finish
'Sum = Sum + ?
Next i
'Average = ?
End Function
Private Sub Command1 Click()
Dim arr1
Dim arr2(4) As Integer
arr1 = Array(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text), Val(Text4.Text))
For i = 1 To 4
arr2(i) = CInt(arr1(i))
Next i
'Aver = Average(?)
Print "平均值是: "; Aver
End Sub
参考答案:①Lbound ②Ubound ③a(Start)
④a(i) ⑤Sum / 4 ⑥arr2
6(1)在考生文件夹下有一个工程文件sjt3.vbp,相应的窗体文件为sjt3.frm。其功能是随机产生30个0 1000的整数,放入一个数组中,然后输出其中的最小值。程序运行后,单击命令按钮(名称为Command1,标题为"输出最小值"),即可求出其最小值,并在窗体上显示出来(如图所示)。这个程序不完整,请把它补充完整,并能正确运行。
要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。
【考点分析】本题考点有:Randomize语句,Rnd()函数,Int()函数,循环语句,判断语句以及Print方法。
【解题思路】Rnd()函数用于产生一个小于1但大于或等于0的随机数,其语法格式为:
Rnd[(number) ] 可选的number参数是Single或任何有效的数值表达式。
为使每次程序运行时,得到不同的随机数数列,在使用Rnd()函数产生随机数前应用Randomize语句对随机数生成器进行初始化。生成某个范围内的随机整数,参考所发的资料。
本题程序用变量Min记录最小数,最初把数组的第一个元素的值赋给Min,然后通过For循环语句将其后的元素依次与之比较,如果其值小于Min,则将其赋值给Min,依次类推,最终Min的值就是数组各元素中的最小值。
Option Base 1
Private Sub Command1 Click()
Dim arrN(30) As Integer
Dim Min As Integer
Randomize
For i = 1 To 30
'arrN(i) = Int(Rnd * ?)
Next i
'? = arrN(1)
For i = 2 To 30
'If ? Then
Min = arrN(i)
End If
Next i
Print Min
End Sub
答案:①1001②Min③arrN(i) < Min或Min > arrN(i)
31(1)在考生文件夹下有一个工程文件sjt3.vbp,相应的窗体文件为sjt3.frm。其功能是随机产生30个0 1000的整数,将其放入一个数组中,然后输出其中的最大值。程序运行后,单击命令按钮(名称为Command1,标题为"输出最大值",如图所示),即可求出其最大值,并显示在窗体上。这个程序不完整,请把它补充完整,并能正确运行。
【考点分析】本题考点有:Int 函数,Rnd()函数,For 循环语句,Option Base数组下标和If判断语句。
【解题思路】Rnd()函数用于产生一个小于1但大于或等于0的随机数。
本题程序用变量Max记录最大数,最初把数组的第一个元素的值赋给Max,然后通过For循环语句将其后的元素依次与之比较,如果其值大于Max则将其赋值给Max,依次类推,最终Max的值就是数组各元素中的最大值。
Option Base 1
Private Sub Command1 Click()
Dim arrN(30) As Integer
Dim Max As Integer
Randomize
For i = 1 To 30
'arrN(i) = Int(Rnd * ?)
Next i
'? = arrN(1)
For i = 2 To 30
'If ? Then
Max = arrN(i)
End If
Next i
Print Max
End Sub
参考答案: ①1001 ②max
③arrN(i) > Max或Max < arrN(i)
6(2)程序运行后,单击命令按钮,即可计算出0 1000范围内不能被7整除的整数的个数,并在文本框中显示出来。在窗体的代码窗口中,已给出了部分程序,其中计算不能被7整除的整数的个数的操作在通用过程Fun中实现,请编写该过程的代码。
要求:请勿改动程序中的任何内容,只在Function Fun()和End Function之间填入你编写的若干语句。最后将修改后的文件按原文件名存盘。
【考点分析】本题考点有:Mod运算符,文件编辑,For循环语句,If判断语句以及过程函数。
【解题思路】可通过求余运算符Mod来计算某数M能否被7整除,如果M Mod 7=0,那么M能被7整除;如果M Mod 7≠0,那么M不能被7整除。可利用For循环语句来逐个判断0~1000范围内的整数能否被7整除,然后用一个变量来统计不能被7整除的整数个数。
Sub SaveData()
Open App.Path & "\" & "outtxt.txt" For Output As #1
Print #1, Text1.Text
Close #1
End Sub
Function Fun()
End Function
Private Sub Command1 Click()
d = Fun()
Text1.Text=d
SaveData
End Sub
参考答案:
Function Fun()
Dim s As Integer, i As Integer
For i = 0 To 1000
If i Mod 7 = 0 Then
s = s + 1
End If
Next i
Fun = s
End Function
40(2)在考生文件夹下有一个工程文件sjt4.vbp,相应的窗体文件为sjt4.frm,在窗体上有一个文本框和一个命令按钮。程序运行后,单击命令按钮,即可计算出0 200范围内能被3整除的所有整数的和,并显示在文本框中。在窗体的代码窗口中,已给出了部分程序,其中计算能被3整除的整数的和的操作在通用过程Fun中实现,请编写该过程的代码。
要求:请勿改动程序中的任何内容,只在Function Fun()和End Function之间填入你编写的若干语句。
【考点分析】本题考点有:Mod运算符,App.Path相对路径,文件编辑,文本框的Text属性,For循环语句以及If判断语句。
【解题思路】判断0~200范围内的数能不能被3整除,须使用求余运算符Mod,如果余数不为0,则表示该数不能被整除。并需要设置一个变量,以累计不能被3整除的数的和。
Sub SaveData()
Open App.Path & "\" & "outtxt.txt" For Output As #1
Print #1, Text1.Text
Close #1
End Sub
Function Fun()
End Function
Private Sub Command1 Click()
d = Fun()
Text1.Text = d
SaveData
End Sub
参考答案
Function Fun()
Dim s As Integer, i As Integer
For i = 0 To 200
If i Mod 3 = 0 Then
s = s + i
End If
Next i
Fun = s
End Function
9(1)在考生文件夹下有一个工程文件sjt3.vbp,在程序运行时,单击"输入整数"按钮,输入一个整数,并在窗体上显示此整数的所有不同因子和因子个数。图1是输入53后的结果,图2输入100的结果。
【考点分析】本题考点有:InputBox函数,Function fun()过程函数,Abs()函数,Mod函数,For循环语句,If判断语句以及Print方法。
【解题思路】通过InputBox函数实现对话框来中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的 String。
Abs()函数用于返回一个数的绝对值。语法:Abs(number) ,number参数是任何有效的数值表达式,如果number包含Null,则返回Null,如果number是未初始化的变量,则返回0。
通过Function fun()过程函数,实现对于因子数的确定和查找,Mod函数则判断是否能够整除,即判断是否为因子数。
Private Sub Command1 Click()
Dim n As Integer
Cls
' ? = InputBox("请输入一个整数")
Print "因子数="; fun(n)
End Sub
Function fun(m As Integer)
Dim s As Integer
s = 0
For k = 1 To Abs(m) / 2
' If m Mod k = ? Then
s = s + 1
Print k
End If
Next k
' ?
End Function
参考答案: ①n ②0 ③fun = s
【易错提示】在进行循环的时候注意变量k的上限为 Abs(m) / 2,这样可以节省循环的次数。
14(2)在考生文件夹下有一个工程文件sjt4.vbp,窗体如图所示。其功能是单击"输入数据"按钮,则可输入一个整数n(要求:;单击"计算"按钮,则计算1!+2!+3!…+n!的值,并将计算结果显示在文本框中;单击"存盘"按钮,则把文本框中的结果保存到考生文件夹下的out4.dat文件中。
注意:不得修改已经存在的内容和控件属性,在结束程序运行之前,必须用"存盘"按钮存储计算结果,否则无成绩。最后将修改后的文件按原文件名存盘。
【考点分析】本题考点有:Val函数,InputBox函数,MsgBox函数,命令按钮的Enabled属性以及文件操作。
【解题思路】在Command1 Click事件过程中通过Val函数和InputBox函数,取得输入对话框中的数值,如果输入的数值不在范围内,那么弹出对话框MsgBox ("数据错误,请重新输入"),并使命令按钮Command2,Command3不可用,Function f()函数则用来实现阶乘的计算,Command2 Click事件过程中,运用循环语句的累加实现表达式求和运算,Command3 Click事件过程通过文件操作实现数据的存盘处理。
Dim n As Integer
Private Sub Command1 Click()
n = Val(InputBox("请输入整数(8-12)", "输入"))
' If n > ? Or n < 8 Then
MsgBox ("数据错误,请重新输入")
Command2.Enabled = False
Command3.Enabled = False
Else
Command2.Enabled = True
Command3.Enabled = True
End If
End Sub
Private Sub Command2 Click()
Dim s As Long, k As Integer
'考生应编写的程序
End Sub
Function f(n As Integer) As Long
' s = ?
For k = 2 To n
s = s * k
Next
' f = ?
End Function
Private Sub Command3 Click()
Open App.Path & "\out4.dat" For Output As #1
Print #1, n, Text1
Close #1
End Sub
参考答案:①12 ②1 ③s ④t*I ⑤t
'考生应编写的程序
s = 0
For k = 1 To n
s = s + f(k)
Next k
Text1 = s
15(2)在考生文件夹下有一个工程文件sjt4.vbp。窗体上的控件如图所示。程序运行时,若选中"累加"单选按钮,则"10"、"12"菜单项不可用,若选中"阶乘"单选按钮,则"1000"、"2000"菜单项不可用(如图所示)。选中菜单中的一个菜单项后,单击"计算"按钮,则相应的计算结果在文本框中
展开阅读全文