1、金陵科技学院VB期末考题目目2金陵科技学院2012-2013年第一学期Visual Basic期末考试范围(题目及答案) M12机械设计制造及其自动化(专转本)丁世斌 整理于2012/12/27三程序填空。1补充程序,实现闰年的判断。闰年年份能被4整除且不能被100整除,或能被400整除。Private Sub Command1_Click() Dim ystr As String, y As Integer, y4 As Integer, y100 As Integer, y400 As Integer ystr = InputBox(请输入年份, 闰年判断) y = Val(ystr) y
2、4 = y Mod 4 y100 = y Mod 100 y400 = y Mod 400 If (y4=0 and y1000) or y400=0 Then Print y; 是闰年 Else Print y; 不是闰年 End If End Sub2. 数列问题下面程序的功能是求的近似值,当第n项的绝对值小于10 时终止计算。Option ExplicitPrivate Sub Command1_Click()Dim n As Long, s As Single, t As Single, pi As Single Const eps = 0.00001 n = 1 t = 1 s =
3、0 Do s = s + t n = n + 1 t = (-)(n+1)/(2 * n -1) Loop Until Abs(t)9 Then q=Chr(55+p) Else q=Cstr(p) End If St=q & st d=d16 Loop Until d=0 Print n & “的16进制为:” & stEnd sub4. 数列问题下面程序的功能是求序列:1/2、2/3、3/5、5/8、8/13、前若干项的和,项数由文本框输入。试完善程序使其达到功能要求。Option ExplicitPrivate Sub command1_click() Dim n As Integer,
4、 a1 As Integer, a2 As Integer Dim i As Integer, t As Single, s As Single n = Val(Text1.Text) a1 = 1 a2 = 2 For i = 1 To n t=a1/a2 s = s + t a2 = a1 + a2 a1=a2-a1 Next i Text2 = sEnd Sub5. 进制转换问题本程序的功能是将某个十进制数转换成一个8位的二进制数, 请完善本程序,如110- 01101110,1-00000001。Private Sub command1_click() Dim n As Integer
5、 ,b As Integer, i As Integer, s As String n=110 Do While n 0 b = n Mod 2 n = n 2 _s=s & b_ Loop For i = 1 To 8 - Len(s) s = s & mid (s,i,1) Next iPrint n & 的二进制为& sEnd Sub6. 本程序模拟裁判评分。设有8名裁判,打分范围为70到100(小数点后取1位),去掉一个最高分和一个最低分后,所得总分的平均分就是选手最后得分(四舍五入,保留l位小数)。图2-1 模拟裁判评分Private Sub Command1_Click() Dim
6、 score(8) As Single,i As Integer,maxv As Single Dim minv As Single,av As Single,sum As Sinde For i=1 To 8 score(i)=(Int(Rnd*31)+70)1O Text1=Text1Str(score(i)” ” sum=sum+score(i) Next imaxv= score(1):minv= score(1) for i=1 to 8 If score(i)maxv Then maxv= score(i) Elseif score(i)minv Then minv= score(
7、i) End IfNext i av=(sum - maxv - minv)6 Text2= str(format(av,”0.0”) End Sub7下面程序为一查找程序,数组大小N由Inputbox输入,待查找的数X也是由Inputbox输入,若找到返回下标值,找不到返回0。请完善下列程序。Private Sub Command1_Click()Dim n As Integer, p As Integer, a() As Integern = InputBox(请输入数组元素的个数N)redim a(val(n) For i = 1 To n a(i) = Int(Rnd * 90 + 1
8、0) Print a(i);Next iPrintx = InputBox(请输入要找的数X)p = 0Do While pn and xa(p) p = p + 1LoopIf p=n and xa(n) Then p = 0Print pEnd Sub8.产生10个两位随机整数,用冒泡排序对10个数按升序排列。Option Base 1Private Sub Command1_Click() Dim rndArray(10) As Integer Dim i As Integer, j As Integer, temp As Integer Randomize Picture1.Print
9、 排序前: For i = 1 To 10 rndArray(i) = Int(90 * Rnd + 10) Picture1.Print rndArray(i); Next i For i = 1 To 9 For j = 1 to 10-i If a(j)a(j+1) Then temp = a(j) a(j)=a(j+1) a(j+1)=temp End If Next j Next i Picture1.Print Picture1.Print 排序后: For i = 1 To 10 Picture1.Print rndArray(i); Next iEnd Sub9下面程序的功能是
10、:已有一组汉字以16进制数形式表示的数据,从中找出每一个汉字代码(每个汉字表示为两个字节)。试完善程序使其达到功能要求。图2-5 找汉字代码Option ExplicitPrivate Sub command1_click() Dim st() As String, p As String, k As Integer Dim n As Integer, i As Integer p = Trim(Text1) Do n = InStr(p, ) 在变量p中查找第一个空格出现的位置 If len(p)2 Then k = k + 1 ReDim Preserve st(k) st(k) = Le
11、ft(p, n - 1) p = Right(p, Len(p) - n) Else ReDim Preserve st(k + 1) st(k+1)=p End If Loop Until n = 0For i = 1 To UBound(st) 1 List1.AddItem st(i) & , & st(i + 1) i=i+1 Next iEnd Sub10本程序的功能是,利用下列公式求函数cos(x)的近似值,规定通项的绝对值eps Text2=SEnd Sub11. 用以下公式求Sin(x)的值.当级数通项的绝对值小与eps=10-7时停止计算,x的值由键盘输入。 n=0,1,2.
12、请完善如下程序Option Explicit Private Sub Form Click() Dim x As Double,t As Double,n As Integer,sum As Double Const eps=0.0000001 X =Val(InputBox(“请输入x:”) t=1 sum =x n =1 Do Until t1010,3-0011。Private sub command1_click() Dim s as String,st As String, i As Integer,p as String s=A st=0123456789ABCDEF For i=
13、1 To Len(st) If _ mid(st,I,1)=s _ Then Exit For Next i i=i-1 Dop=_ (I mod 2) & p _i=i2 Loop Until i & s Next iEnd SubPrivate Sub convert(ch As String, s As String) Dim m As Integer, k As Integer, n As Integer, i As Integer _ s = _ n = Asc(ch) Do While n 0 _ m = n Mod 2 _ s = m & s If m = 1 Then k =
14、k + 1 End If n = n 2 Loop For i = 1 To 7 - Len(s) 将字符的二进制代码补足7位 s = 0 & s Next i If k Mod 2 = 0 Then _ s = 1 & s Else s = 0 & s End IfEnd Sub19本程序的功能是求-128+127之间整数n的8位2进制补码。采用的算法是:若n=0,则直接将其转换为相应的7位2进制数,前面的符号位设定为0;若n 127 Or dec = 0 Then bm = 0 & d2b(n) Else n = n + 128 bm =_1 & d2b(n)_ End IfEnd Fun
15、ctionPrivate Function d2b(n As Integer) As String Dim p As Integer Do p = n Mod 2 d2b = CStr(p) & d2b n = n 2 Loop Until _n = 0 _ d2b = Right(000000 & d2b, 7)End Function20定义方阵的一种范数为该方阵各列元素的绝对值之和中的最大值。以下程序的功能是求一个44方阵的范数。该方阵的数据是随机生成的-2020之间的整数。程序界面参见下图。图2-15求范数Option ExplicitOption Base 1Private Sub Command1_Click() Dim a(4,4) As Integer Dim i As Integer,j As Integer For i=1 T0 4 For j=1 To 4 a(i,j)= _ Int(Rnd * 41) 20 _ Picture1.Print Right( & Str(a(i,j),4); Next j Picture1.Print Next i Text1.Text= _ fan(a)_End SubPrivate Function fan(a()As Integer) As Integer Dim b(4
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1