2005春5VB上机及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二级Visual Basic语言(试卷代号 VB05)
(本试卷完成时间 70分钟)
【考试须知】
1. 改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;
2. 考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分;
3. 程序代码书写应呈锯齿形。

一、改错题(14分)
【题目】下面程序功能是:已知三角形三个顶点的坐标,通过距离公式求出三边长度,再求出三角形的面积。

Option Explicit
Private Sub Command1_Click()
Dim xy(3,2) As Single,i As Integer
Dim st As String,n As Integer,n1 As Integer,s As String
Text1="(28.5,36.7),(12.3,10.9),(45.5,25.4)"
st=Text1 //此处插入图片
Do
i=i+1
n=InStr(st,")")
s=Mid(st,2,n-1)
n1=InStr(s,",")
xy(i,1)=Left(s,n1-1)
xy(i,2)=Mid(s,n1+1,n-n1-n2)
If n<=Len(st) Then '<
st=Right(st,Len(st)-n) 'Len(st)-n-1
Else
Exit Do
End If
Loop
Text2=area(xy)
End Sub
Private Function area(xy() As Single) As Single
Dim d(3) As Single,i As Integer,j As Integer,k As Integer,s As Single For i=1 To UBound(xy,1) -1
For j=i+1 To UBound(xy,2) 'UBound(xy,1)
k=k+1
d(k)=Sqr((xy(i,1)-xy(j,1))^2+(xy(i,2)-xy(j,2))^2)
s=s+d(k)
Next j
Next i
s=s/2
area=Sqr(s*(s-d(1))*(s-d(2))*(s-d(3)))
End Function
【要求】
1. 新建工程,输入上述代码,改正程序中的错误;
2. 改错时,不得增加或删除语句,但可适当调整语句位置;
3. 将窗体文件和工程文件分别命名为F1和P1,并保存到软盘A的根目录下。

二、编程题(26分)
【题目】输入数据位数K(3~5),编程找出所有由1至9这九个数字组成的K 位数,且满足从低位到高位的数字依次增大,任意相邻
两位数字之差都大于1。

【编程要求】
1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2.在文本框1中输入数据位数K,单击“开始”按钮,找出所有满足上述条件的K位数,并以每行5个数的形式显示在多行文本框2中;
3.程序中应至少定义一个通用过程,用于判断某个K位数是否满足给定条件。

【要求】
将窗体文件和工程文件分别命名为F2和P2,并保存到软盘A的目录下。

源程序:
Private Sub commandl_Click()
Dim Num() AS Integer,N AS Integer,I AS Integer,K AS Integer
Dim counter AS Integer
K=Text2
ReDim Num(K)
For N=10^(k-1) To 10^k-1
For I=1 To k
Num(I)=Mid(Cstr(N),I,1)
If Num(I)=0 Then
Exit For
End If
Next I
If I>K Then
If Check(Num) Then
Counter=Counte r+1
Text1=Text1&Str(N)
If Counter Mod 5=0 Then
Text1=Text1&vbCrLf End If
End If
End if
Next N
End Sub
Private Function Check(N() As Integer) As Boolean Dim Ub AS Integer,I AS Integer,J AS Integer Ub=UBound(N)
For I=1 To Ub-1
For J=I+1 To Ub
If N(I)<=N(J) Or N(I)-N(J)=1 Then Check=False
EXit Function
End If
Next J
Next I
Check=True
End Function。

相关文档
最新文档