当前位置:文档之家› 教材课后习题参考答案新版_学生版(1-4)章_

教材课后习题参考答案新版_学生版(1-4)章_

《Visual Basic程序设计基础》教材习题第1章 Visual Basic 6.0程序设计概述习题一、判断题参考答案:1.√2.√3.√4.×5.√6.×7.√8.×9.√10.√11.×12.√13.×14.√15.√二、选择题参考答案:1. C2. B 3.D 4.C 5.B 6.A 7.D 8.A 9.B 10.D三、填空题参考答案:1.对象、事件2.属性、方法、事件3.控件、屏幕(Screen)4.Left 5. Top 6.属性、<对象名>.<属性名>=<表达式>7.网格8.F o rm19.Load或Initialize或Resize或Activate(自动执行的先后顺序也按此排列)10.Activate、Deactivate四、程序设计题参考代码:程序1.界面设计参看表1。

表1 各控件的主要属性设置过程设计如下:Private Sub Command1_Click()Label2.Visible = False ‘使控件Label2看不见Label1.Caption = Text1.Text + ": 欢迎使用" + Label1.Caption Text1.Visible = False ‘使控件Text1看不见Command1.Enabled = False ‘使控件Command1不能用Command2.Enabled = True ‘使控件Command2能用End SubPrivate Sub Command2_Click()End ‘结束程序运行End Sub程序2.界面设计,过程设计如下:Private Sub Command1_Click() '字体变大Form1.FontSize = Form1.FontSize + 3Form1.Cls: Print "欢迎使用VB"End SubPrivate Sub Command2_Click() '字体变小Form1.FontSize = Form1.FontSize - 3Form1.ClsPrint "欢迎使用VB"End SubPrivate Sub Command3_Click() '字体加粗Form1.FontBold = TrueForm1.Cls: Print "欢迎使用VB"End SubPrivate Sub Command4_Click() '字体不加粗Form1.FontBold = FalseForm1.Cls: Print "欢迎使用VB"End Sub运行时,不得连续、过多次单击“字体变小”按钮,因为当FontSize属性值小于0会产生适时错误。

程序3.界面设计运行效果图过程设计如下(窗体Height值的计量包括标题、边框,而ScaleHeight值仅与窗体有效绘图区域的高度有关):Private Sub Form_Load()Text1.Text = "Visual Basic 程序设计"End SubPrivate Sub Form_Resize()Text1.Top = 0: Text1.Left = 0Text1.Width = Form1.ScaleWidth/2 '用Form1.ScaleWidth效果优于用Form1. WidthText1.Height = Form1.ScaleHeight/2 '用Form1.ScaleHeight优于用Form1. HeightCommand1.Top = Form1.ScaleHeight - Command1.HeightCommand1.Left = Form1.ScaleWidth - Command1.WidthEnd SubPrivate Sub Command1_Click()EndEnd Sub第2章程序设计基础习题一、判断题1.√2.×3.×4.×5.√6.×7.√8.√9.√10.×二、选择题1.B 2.D 3.A 4.C 5.C 6.B 7.A 8.D 9. C 10.A三、填空题参考答案1.String 2.4 3."aaa" 4.145 5.6 6.3 7.18 8.False9.(x Mod 10) * 10 + x \ 10 10.10 + Int( Rnd * 90 ) 11.a * b Mod c12.Log(x)+Sin(3.141593/6) 13.Const PI=3.1415926 14.日期15.Int(x)+1四、程序设计题参考答案程序1、Private Sub Command1_Click()Dim x As Double, y#, s#x = Val(InputBox("请输入x"))y = Val(InputBox("请输入y"))s = Sqr( (x ^ 3 + Exp(-6) * Log(y)) * (Sin(x)* Cos(y)) / (x * x + y * y) _+ (2 * Sin(90 * 3.14156 / 180) + 2 * x * Exp(y)) / Sqr(Abs(x * y)))Print "当x="; x; "当y="; y; "时,计算结果:"; sEnd Sub程序2、Private Sub Command1_Click()Dim s As Double, l As DoubleDim r As DoubleConst pi = 3.1415926r = Val(Text1.Text)l = 2 * 3.1415926 * rs = r * r * 3.1415926Label2.Caption = Str(s)Label5.Caption = Str(l)End Sub'删除文本框后Private Sub Command2_Click()Dim s As Double, l As DoubleDim r As DoubleConst pi = 3.1415926r = Val(InputBox("请输入半径:"))l = 2 * 3.1415926 * rs = r * r * 3.1415926Label2.Caption = Str(s)Label5.Caption = Str(l)End Sub程序3、Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Command1.Move Int(Rnd * (Form1.ScaleWidth - Command1.Width)), Int(Rnd * (Form1.ScaleHeight - Command1.Height))End Sub程序4、Private Sub Command1_Click()Command1.Move Int(Rnd * (Form1.ScaleWidth - Command1.Width)), Int(Rnd * (Form1.ScaleHeight - Command1.Height))End Sub程序5、Private Sub Command1_Click()Text1.Text = Int(Rnd * (6)) + 1Text2.Text = Int(Rnd * (6)) + 1Text3.Text = Val(Text1.Text) + Val(Text2.Text)Form1.BackColor = RGB(Int(Rnd * 255) + 1, Int(255 * Rnd) + 1, Int(255 * Rnd) + 1)End Sub第3章结构化程序设计与数组习题一、判断题参考答案1.√2.×3.√4.×5.√6.×7.×8.√9.×10.×二、选择题参考答案1.A 2.A 3.D 4.C 5.C 6.D 7. D 8.B(提示:因为If m Mod i=0 Then Exit For :Next i 在同一行上,系统认为是if语句)三、填空题参考答案1.If x>y Then t=y: y=x: x=t 2.IS3.For i = 0 to 9: B(i) = InputBox("B(" & i & ")="): Next i4.ReDim c(n) as single 5.String 6.8 (4个元素,每个元素2个字节)四、程序阅读题(写出下列程序的运行结果)参考答案:程序1. 55 11 程序2. 20 程序3. 2 4 7 11 16程序4. 1 4 9 16 25程序5. 程序6.五、程序填空题参考答案:1.(1)s=1 (2)n (3)s=s+p2.(1)While r<>0 (2)r=m Mod n (3) print n3.(1)v = 0 (2)v=v+a(i) (3) v=v/n (4) a(i)>v4.(1)m (2)n (3) exit for (4) j<=n5.(1)k=i (2)k=j (3)a(k)=t (4)a(i) Mod 2 = 16.(1)j+i-1 (2)6-i+1 (3) print六、程序设计题参考答案:程序1.Private Sub Form_Click()Dim x As Integer, y As Integer, z As IntegerDim max As Integer, midd As Integer, min As Integerx = InputBox("请输入x的值:")y = InputBox("请输入y的值:")z = InputBox("请输入z的值:")If x < y Then t = x: x = y: y = tIf x < z Then t = x: x = z: z = tIf y < z Then t = y: y = z: z = tPrint x; y; zEnd Sub程序2.界面设计略,过程设计如下:Private Sub Form_Click()Dim x As Single, y As Singlex = InputBox("请输入x的值:")If x > 3 Theny = x + 3ElseIf x >= 1 Theny = x * xElseIf x > 0 Theny = Sqr(x)Elsey = 0End IfPrint yEnd Sub程序3.Private Sub Form_Click()Dim i As Byte, j As ByteFor i = 1 To 9For j = 1 To iPrint Tab(8 * (j - 1)); Trim(Str(i)); "*"; Trim(Str(j)); "="; Trim(Str(i * j)); Next jPrintNext iEnd Sub程序4.Private Sub Form_Click()Dim x As Integer, n As Integer, i As Integer, p As Single, s As Single n = Val(InputBox("请输入n"))x = Val(InputBox("请输入x"))s = 1 + x: p = 1For i = 2 To (n + 1) Step 1p = p * x / is = s + pNext iPrint sEnd Sub程序5.Private Sub Form_Click()Dim e As Single, a As Single, n As Integera = 1 '级数第1项为1e = 1 '将第1项存入en = 0 '变量n记录当前已累加的项数While a > (0.0001)n = n + 1: a = a / n: e = e + aWendPrint "e="; e; "n="; nEnd Sub程序6.方法一Public Sub Form_Click()'同构数是指一个数出现在它的平方数的右端'如25在25平方625的右端,则25为同构数'利用数字转字符再取出右端字符的方法进行判断Dim i As LongDim x1 As String, x2 As StringFor i = 1 To 1000x1 = Trim(Str(i)) '将i转字符型x2 = Trim(Str(i ^ 2)) '将i^2转字符型If Right(x2, Len(x1)) = x1 ThenForm1.Print i; "是同构数"End IfNext iEnd Sub方法二Private Sub Form_Click()Dim i&, ws As IntegerFor i = 1 To 1000ws = Len(Str(i)) - 1If (i * i - i) Mod 10 & ^ ws = 0 Then Print i; NextEnd Sub程序7.Private Sub Form_Click()Dim i%, j%, s As Double, x(10) As Single, y(10) As Single RandomizeFor i = 1 To 10 '生成10个坐标点x(i) = Int(Rnd * 90) + 10Print "(" & x(i) & ",";y(i) = Int(Rnd * 90) + 10Print y(i) & ")";NextFor i = 1 To 9 '按公式计算For j = i + 1 To 10s = s + Sqr((x(i) - x(j)) ^ 2 + (y(i) - y(j)) ^ 2)NextNextPrintPrint "各点距离之和:" & sEnd Sub程序8.Private Sub Form_Click()Dim n As Integer, m As Integer, i As Integer, j As Integerm = Val(InputBox("请输入a数组元素个数: "))n = Val(InputBox("请输入b数组元素个数: "))ReDim a(m) As Integer, b(n) As IntegerFor i = 1 To ma(i) = Val(InputBox("a(" & i & ")="))Next iFor i = 1 To nb(i) = Val(InputBox("b(" & i & ")="))Next iFor i = 1 To mFor j = 1 To nIf a(i) = b(j) Then Exit ForNext jIf j > n Then Print a(i);Next iFor j = 1 To nFor i = 1 To mIf a(i) = b(j) Then Exit ForNext iIf i > m Then Print b(j);Next jEnd Sub程序9.Private Sub Form_Click()Dim a(5, 5) As Integer, i As Integer, j As Integer For i = 1 To 5For j = 1 To 5 - i + 1a(i, j) = 7 - i - jNext jNext iFor i = 2 To 5For j = 5 - i + 1 To 5a(i, j) = j + i - 5Next jNext i'打印二维数组For i = 1 To 5For j = 1 To 5Print a(i, j);Next jPrintNext iEnd Sub程序10.(1)Option Base 1Private Sub Form_Click()Dim n As Integer, i As Integer, j As Integer, k As Integer, c%() n = Val(InputBox("请输入行数n:"))n = n + 1ReDim c(n, n)For i = 1 To nc(i, 1) = 1c(i, i) = 1Next iFor i = 3 To nFor j = 2 To i - 1c(i, j) = c(i - 1, j - 1) + c(i - 1, j)Next jNext iFor i = 1 To nFor j = 1 To iPrint c(i, j);Next jPrintNext iEnd Sub(2)Private Sub Form_Click()Dim n As Integer, i As Integer, j As Integer, k As Integer, c%() Do ‘假设n范围在1-9n = Val(InputBox("请输入行数n:"))Loop Until n > 0 And n < 10n = n + 1ReDim c(n, n)'产生杨辉三角形For i = 1 To nc(i, 1) = 1c(i, i) = 1Next iFor i = 3 To nFor j = 2 To i - 1c(i, j) = c(i - 1, j - 1) + c(i - 1, j)Next jNext i'打印杨辉三角形,每个数字占4列For i = 1 To n '打印n 行Print Tab((4 * n - 4 * i) / 2); '确定打印起始列For j = 1 To i '打印i 个数字Print Space(4 - Len(Trim(Str(c(i, j))))) & Trim(Str(c(i, j)));Next jPrintNext iEnd Sub第4章函数与过程习题一、判断题1.×2.√3.×4.×5.√6.×7.×8.√9. √10. √二、填空题参考答案1.按地址传送2.b() As Long 3.6 4.按值传递5.按地址传递6.Public x As Single 7.Static x As Integer 8.Form2.y9. function f9(a() as single,n) as single 10.sub f10(a() as single ,n as integer)11. sub f10(a() as single ,m as integer,n as integer ,max as single,min as single)12. c=form1.f12(a,b)三、程序阅读题(写出下列程序的运行结果)程序1. s = 2 程序2. command1 command2s = 5 1 1s = 9 1 21 31 4程序3. Byref时分别输出0 101 ,0 110 ,0 1011 ,0 10001(注意:语句Print n; f(n)在一行上结果如上)Byval时分别输出5 101 ,6 110 ,11 1011 ,17 10001程序4. 分别输出:0 3 2 3程序5. 结果(杨辉三角形)四、程序填空题参考答案:1.(1)ByeVal (2)n Mod k=0 (3)n = n \ i (4)Call pp(i) 2.(1)as string (2)n>0 (3)f16=chr(65+k)+f16 (4)n=n\16 3.(1)a() As Double, n As Integer (2)t = t * x (3)f = s4. (1)a() Aa Double,n as integer (2)n-1 (3)a(j) < a(k)五、程序设计题参考答案程序1.Function f1(x%, y%, z%) As IntegerDim max As Integermax = xIf max < y Then max = yIf max < z Then max = zf1 = maxEnd Function‘验证Private Sub Command1_Click()Dim a%, b%, c%a = 40:b = 120:c = 30Print f1(a, b, c)End Sub程序2.Private Function fsum(x() As Double, n As Integer) As DoubleDim i As IntegerFsum=0For i = 1 To nfsum = fsum + x(i)Next ifsum = fsum / nEnd Function程序3.界面设计略,过程设计如下:Private Sub ff(a() As Single, n As Integer)Dim i As Integer, x As SingleFor i = 1 To n \ 2x = a(n - i + 1): a(n - i + 1) = a(i): a(i) = x‘(a(1)⇔a(n),a(2)⇔a(n-1),...,a(i)⇔a(n-i+1))Next iEnd Sub程序4.Private Sub find(x() As Single,m As byte,n As Byte,ki As Byte,kj As Byte)xmax = x(1,1)ki = 1: kj = 1For i = 1 To mFor j = 1 To nIf Abs(x(i, j)) > Abs(xmax) Then xmax = x(i, j): ki = i: kj = j Next j, iEnd Sub程序5.Option ExplicitPublic Function g1(a%(), n%) As DoubleDim i%For i = 1 To ng1 = g1 + a(i)Nextg1 = g1 / nEnd FunctionPublic Function g2(a%(), n%) As Double Dim i%, t#t = g1(a, n)For i = 1 To ng2 = g2 + (a(i) - t) ^ 2Next ig2 = Sqr(g2) / nEnd Function'调用Private Sub Command1_Click()Dim x%(10), g#, i%For i = 1 To 10x(i) = iNext iPrint g2(x, 10) '计算g2End Sub。

相关主题