1、江苏计算机等级考试二级 Visual+BASIC 上机真题 2012 年 3 月及答案解析(总分:40.00,做题时间:70 分钟)一、考试说明:(总题数:1,分数:0.00)1.改错题(14 分) 【题目】 本程序的功能是在六位正整数中查找超级自恋数。如果将一个六位正整数从高位到低位,每两位分为一组,共分为三组,三组数据的立方的和正好等于其本身,则称该六位正整数为超级自恋数。 1 Option Explicit 2 Private Sub CmdFind_Click() 3 Dim k As Long,num()As Integer,fg As Boolean 4 Dim i As Inte
2、ger,st As String 5 st=“ 6 For k=100000 To 999999 7 fg=False 8 Call judge(k,num,fg) 9 If fg Then 10 For i=UBound(num) To 1 Step -1 11 st=st 按“清除“按钮,将两个文本框与列表框清空,焦点置于文本框“A:“上。 3.程序中至少应定义一个通用过程,用于求一个整数各位数字之和或判断一个整数是否是素数(注意:1 不是素数)。 【要求】 将窗体文件和工程文件分别命名为 F2 和 P2,并保存到 T 盘的根目录下。(分数:26.00)_江苏计算机等级考试二级 Visua
3、l+BASIC 上机真题 2012 年 3 月答案解析(总分:40.00,做题时间:70 分钟)一、考试说明:(总题数:1,分数:0.00)1.改错题(14 分) 【题目】 本程序的功能是在六位正整数中查找超级自恋数。如果将一个六位正整数从高位到低位,每两位分为一组,共分为三组,三组数据的立方的和正好等于其本身,则称该六位正整数为超级自恋数。 1 Option Explicit 2 Private Sub CmdFind_Click() 3 Dim k As Long,num()As Integer,fg As Boolean 4 Dim i As Integer,st As String 5
4、 st=“ 6 For k=100000 To 999999 7 fg=False 8 Call judge(k,num,fg) 9 If fg Then 10 For i=UBound(num) To 1 Step -1 11 st=st 按“清除“按钮,将两个文本框与列表框清空,焦点置于文本框“A:“上。 3.程序中至少应定义一个通用过程,用于求一个整数各位数字之和或判断一个整数是否是素数(注意:1 不是素数)。 【要求】 将窗体文件和工程文件分别命名为 F2 和 P2,并保存到 T 盘的根目录下。(分数:26.00)_正确答案:( Option Explicit Private Sub
5、CmdFind_Click() Dim a As Integer,b As Integer,ss As Long Dim n As Integer,st As String,k As Integer a=Text1: b=Text2 For n=a To b ss=n*n st=“ k=nsum(ss,st) If prime(k) Then List1.AddItem n & “2=“ & ss & “:“ & st & “=“ & k End If Next n End Sub Private Function nsum(n As Long,st As String) As Integer
6、 Dim p As String,q As String,i As Integer p=CStr(n) For i=1 To Len(P) q=Mid(p,i,1) nsum=nsum+Val(q) st=st & q & “+“ Next i st=Left(st,Len(st)-1) End Function Private Function prime(n As Integer)As Boolean Dim i As Integer If n=1 Then Exit Function For i=2 To Sqr(n) If n Mod i=0 Then Exit Function Next i prime=True End Function Private Sub CmdClear_Click() Text1=“ : Text2=“ List1.Clear Text1.SetFocus End Sub)解析: