大学计算机VB程序设计教程课后答案
参考答案
第1章 概述
二(选择题:
1.C 2. B. 3.C. 4.C. 5.A
6.C 7.D 8.B 9.B 10.B
11.A 12.C 13.D 14.C 15.D
16.A 17.C 18.A 19.A 20.D 21.B
三(填空题:
1.面向对象,事件驱动
2.编译,解释
计,运行,中断 3.设
4.F5
5.调试
6.切换文件夹
四(编程及上机调试:
1( 略
2( Sub Form_Click( )
Label1.Caption = “你单击了窗体”
End Sub
Sub Form_DblClick( )
Label1.Caption = “你双击了窗体”
End Sub
第2章 面向对象编程基础
二(选择题:
1.C 2. C. 3.B. 4.B. 5.D
6.D 7.B 8.B 9.C 10.D
11.B 12.B 13.B 14.C 15.A
16.B 17.B 18.B 19.C 20.B
三(填空题:
1.窗体,控件
2.属性,事件,方法
3.command2_click
4.picture
5.中部,代码
四(编程及上机调试:
1(Private Sub Command1_Click()
Form1.WindowState = 2
End Sub
Private Sub Command2_Click()
Form1.WindowState = 0
1
第1章 概述
End Sub
Private Sub Command3_Click()
Form1.WindowState = 1
End Sub
2(Private Sub Command1_Click()
orm1.Picture = LoadPicture("d:\picture\flower.wmf") F
Command1.Visible = False
Command2.Visible = False
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_DblClick()
Form1.Picture = LoadPicture("")
Command1.Visible = True
Command2.Visible = True
End Sub
第3章 常用
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
控件
二(选择题:
1.C 2. B 3.C. 4.D 5.B
6.B 7.A 8.C 9.B 10.C
11.C 12.A 13.C 14.B 15.D
16.D 17.C 18.A 19.D 20.A 21.B
三(编程及上机调试:
1.
Private Sub Check1_Click()
If Check1.Value = 1 Then
Text1.FontBold = True
Else
Text1.FontBold = False
End If
End Sub
Private Sub Check2_Click()
If Check2.Value = 1 Then
Text1.FontItalic = True
Else
2
第1章 概述
Text1.FontItalic = False End If
End Sub
Private Sub Check3_Click() If Check1.Value = 1 Then
Text1.FontUnderline = True Else
Text1.FontUnderline = False End If
End Sub
Private Sub Command1_Click() Text1.Text = " "
End Sub
2.
Private Sub Command1_Click()
Text2.Text = List1.ListCount End Sub
Private Sub Command2_Click()
List1.AddItem Text1.Text Text1.Text = " "
End Sub
Private Sub Command3_Click()
Dim i As Integer
i = List1.ListIndex
List1.RemoveItem i
Command3.Enabled = False Text1.SetFocus
Text2.Text = List1.ListCount End Sub
Private Sub Form_Load()
Command3.Enabled = False End Sub
Private Sub List1_Click()
Command3.Enabled = True End Sub
3
第1章 概述
第4章 VB语言基础
二(选择题:
1.A 2. D 3.D. 4.A 5.A
6.A 7.C 8.D 9.C 10.B
11.A 12.D 13.C 14.A 15.A
16.C 17.D 18.A 19.B 20.D
21.C 22.A 23.B 24.C 25.C
三(编程及上机调试:
1(Private Sub Form_Load()
Dim x As Integer, s As String, d As Integer
Randomize
d = Val(Right(s, 1) + Mid(s, 3, 1) + Mid(s, 2, 1) + Left(s, 1))
Show
"; x; "倒序数"; d Print "产生的数;
End Sub
2(Private Sub Form_KeyPress(KeyAscii As Integer)
Print "输入字符:"; Chr(KeyAscii), "ASCII码为:"; KeyAscii
End Sub
Private Sub Form_DblClick()
Cls
End Sub
3(Private Sub Form_Click()
MsgBox "在这里显示提示" & vbCrLf & "提示信息", 2 + 16, "请确认"
End Sub
或
Private Sub Form_Click()
MsgBox "在这里显示提示" + Chr(13) + "提示信息", vbAbortRetryIgnore _
+ vbCritical, "请确认"
End Sub
第5章 程序控制结构
二(单选题
1.D 2. C 3.C. 4.D. 5.B
6.C 7.A 8.A 9.D 10.C
11.C 12.C 13.B 14.B
四(编程及上机调试
1. Private Sub Form_Click()
Dim x As Integer, y As Integer
4
第1章 概述
x = InputBox("请输入一个数值&quo
If k Mod 2 = 0 Then Print End If
Next i
End Sub
3(
Private Sub Command1_Click()
p = 60: r = 0.014
5
第1章 概述
Do
p = p * (1 + r)
n = n + 1
Loop Until p >= 70
" Print n; "年后世界人口达到"; p; "亿
End Sub
4(s = s + t
Loop
Print s
End Sub
第6章 数组
二(单选题:
1.A 2.A. 3.A 4.C 5.D
6.D 7.A 8.D 9.B 10.B
四.编程及上机调试:
1.
Option Base 1
Private Sub Form_Click()
Dim a(10) As Integer
Dim i As Integer, t As Integer
Print "数组的原始数据为:";
For i = 1 To 10
a(i) = Int(11 * Rnd) + 10
Print a(i);
Next i
Print
Print "变化后数组数据为:";
For i = 1 To 5
6
第1章 概述
t = a(i)
a(i) = a(10 - i + 1)
a(10 - i + 1) = t
Next i
For i = 1 To 10
Print a(i);
Next i
End Sub
2.
Option Base 1
Private Sub Form_Click()
Dim a(3, 4) As Integer, i As Integer, j As Integer, k As Integer, p As Integer
Randomize
For i = 1 To 3
For j = 1 To 4
a(i, j) = Int(90 * Rnd + 10)
Print a(i, j);
Next j
Print
Next i
Max = a(1, 1): k = 1: p = 1
For i = 1 To 3
For j = 1 To 4
If a(i, j) > Max Then
Max = a(i, j)
k = i
p = j
End If
Next j
Next i
Print "最大的数为第" & k & "行,第" & p
& "列的数:" & Max
End Sub
3.
Option Base 1
Dim a(4, 5) As Integer „在窗体声明段声明数组 Dim i As Integer, j As Integer
Private Sub cmdmatrix_Click() „"生成数组"按钮 Randomize
For i = 1 To 4
For j = 1 To 5
a(i, j) = Int(Rnd * 10) „一位的随机数
7
第1章 概述
Picture1.Print a(i, j); „输出元素 Next j
Picture1.Print
Next i
End Sub
Private Sub cmdcol_Click() „"求列和"按钮 Dim colsum As Integer
txtcol.Text = ""
For j = 1 To 5 „列变量先循环
colsum = 0
For i = 1 To 4
colsum = colsum + a(i, j)
Next i
txtcol.Text = txtcol.Text & Str(colsum)
Next j
End Sub
" Private Sub cmdrow_Click() „"求行和按钮 Dim rowsum As Integer
txtrow.Text = ""
For i = 1 To 4 „行变量先循环
rowsum = 0
For j = 1 To 5
rowsum = rowsum + a(i, j)
Next j
txtrow.Text = txtrow.Text & CStr(rowsum) & vbCrLf
Next i
End Sub
Private Sub cmdclear_Click() „"清除"按钮 Picture1.Cls
txtcol.Text = ""
txtrow.Text = ""
End Sub
Private Sub cmdexit_Click() „"结束"按钮 End
End Sub
4. Option Base 1
Private Sub Form_Click()
8
第1章 概述
Dim a() As Integer, b() As Integer, i As Integer, j As Integer, x As Integer, y As
Integer x = InputBox("第一维上界")
Do While Not IsNumeric(x)
x = Int(InputBox("第一维上界"))
Loop
y = InputBox("第二维上界")
Do While Not IsNumeric(x)
y = Int(InputBox("第二维上界"))
Loop
ReDim a(x, y)
Print "原数组元素为:"
For i = 1 To x
For j = 1 To y
a(i, j) = Int(90 * Rnd) + 10
Print a(i, j);
Next j
Print
Next i
Print "转置后数组元素为:"
For i = 1 To y
For j = 1 To x
Print a(j, i);
Next j
Print
Next i
End Sub
5. Option Base 1
Private Sub Form_Click()
Dim a(10, 10) As Integer, i As Integer, j As Integer
For i = 1 To 10
For j = 1 To 10
If i = j Or i + j = 11 Then
a(i, j) = 0
Else
a(i, j) = 1
End If
Print a(i, j);
Next j
Print
Next i
9
第1章 概述
End Sub
6. Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim i As Integer, j As Integer, n As Integer, k As Integer, a(11) As Integer
j = 1
For i = 3 To 21 Step 2
a(j) = i
Print a(j);
j = j + 1
Next i
Print
n = InputBox("请输入一个数")
For i = 1 To 10
If n = a(i) Then
For j = i To 10
a(j) = a(j + 1)
k = k + 1
Next j
End If
Next i
For i = 1 To 9
Print a(i);
Next i
End Sub
7. Option Base 1
Private Sub Form_Click()
Dim a As Variant, k As Integer, i As Integer, j As Integer
Dim b As Variant
b = Array(17, 35, 128, 235, 89, 121, 143, 189, 231, 94)
a = Array(11.3, 12.3, 12#, 11.8, 12.6, 11.6, 12.8, 11.8, 12.4, 12.1)
For i = 1 To 9 „对数组a的元素排序
k = i
For j = i + 1 To 10
If a(k) > a(j) Then k = j
Next j
If k <> i Then „数组b的元素随数组a的元素一起变动 t = a(i)
a(i) = a(k)
a(k) = t
10
第1章 概述
t = b(i)
b(i) = b(k)
b(k) = t
End If
Next i
Print "按名字的排列顺序为:"
For i = 1 To 10
If Len(b(i)) = 2 Then b(i) = "0" & b(i) „补上数组b中长度为,的编号前的"0" Print "第" & i &
"名的号码为:" & b(i) & ",成绩为:" & a(i)
Next i
End Sub
第7章 过程
二、单选题
1.C 2. D 3.C 4.D 5. B
6.A 7. B 8.B 9.C 10.D
11.C 12.D 13.B 14.B 15.C
16.A 17.B 18.B
三、填空题
1(52 51
2(4 11
8 35
3(1 3 5
四.编程及上机调试:
1. Private Sub Command1_Click()
Dim n As Integer
For n = 100 To 1600 Step 500
Print "n="; n; "时π的近似值是:"; pi(n)
Next n
End Sub
Private Function pi(x As Integer) As Single
Dim s As Single, k As Integer, m As Integer
s = 0
k = 1
m = 1
Do
s = s + m / k
m = -m
k = k + 2
11
第1章 概述
Loop While k <= x
pi = 4 * s
End Function
Private Sub Command2_Click()
End
End Sub
2. Private Sub Command1_Click()
Dim x As Integer, i As Integer
x = Val(Text1)
For i = 1 To x
If prime(i) And prime(x - i) Then
Label2 = Str(x) & "是" & Str(i) & "和"
& Str(x - i) & "两个素数之和" Exit Sub
End If
Next i
End Sub
Private Function prime(x As Integer) As Boolean
For i = 2 To Int(Sqr(x))
If x Mod i = 0 Then
prime = False
Exit Function
End If
Next i
prime = True
End Function
Private Sub Command2_Click()
End
End Sub
3. Option Explicit
Option Base 1
Dim a(10) As Integer
Private Sub Command1_Click()
Randomize
Dim i As Integer
For i = 1 To 10
a(i) = Int(Rnd * 90) + 10
Text1 = Text1 + Str(a(i))
Next i
Call sort(a)
For i = 1 To 10
Text2 = Text2 + Str(a(i))
12
第1章 概述
Next i
End Sub
Private Sub sort(a() As Integer)
Dim k As Integer, i As Integer, j As Integer, t As Integer k = UBound(a)
For i = 1 To k - 1
For j = i + 1 To k
If a(i) < a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i
End Sub
Private Sub Command2_Click()
End
End Sub
4. Option Explicit
Private Sub Command1_Click()
Dim i As Integer, j As Integer, s As Integer
For i = 2 To 1000
S=0
For j=1 To i - 1
If I mod j=0 Then s=s+j
Next j
If s=i Then Print I,
Next i
End Sub
5. Public a(10) As Integer
Public Sub sort(a() As Integer)
Dim i As Integer, j As Integer, t As Integer
For i = 1 To UBound(a) - 1
For j = i + 1 To UBound(a)
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i
13
第1章 概述
End Sub
Public Function max(a() As Integer) As Integer max = a(1)
For i = 2 To UBound(a)
If max < a(i) Then
max = a(i)
End If
Next i
End Function
窗体Form1代码
Private Sub Command1_Click()
Dim i As Integer
Randomize
For i = 1 To UBound(a)
a(i) = Int(Rnd * 90) + 11
Text1 = Text1 & Str(a(i))
Next i
End Sub
Private Sub Command2_Click()
Form1.Hide
Form2.Show
End Sub
Private Sub Command3_Click()
Text2 = max(a)
End Sub
Private Sub Command4_Click()
End
End Sub
窗体Form2代码
Private Sub Command1_Click()
Call sort(a)
For i = 1 To UBound(a)
Text1 = Text1 & Str(a(i))
Next i
End Sub
Private Sub Command2_Click()
Form2.Hide
Form1.Show
End Sub
第8章 程序调试
14
1章 概述
二(上机调试题
1. Option Explicit
Private Sub Form_Click()
Dim a() As Single, i As Integer
Dim y As Single
i = 1
Do
ReDim a(i) ,改为ReDim Preserve A(I)
a(i) = 1 / fib(i)
,改为a(i) < 0.0001 y = y + a(i)
i = i + 1
Loop
Print "y="; y
For i = 1 To UBound(a)
Print a(i);
Next i
End Sub
Private Function fib(i As Integer) As Integer
If i = 1 Then
fib = 1
ElseIf i = 2 Then
fib = 2
Else
Fib(i) = fib(i - 1) + fib(i - 2) ,改为Fib=Fib(I-1)+Fib(I-2) End If
End Function
2. Option Explicit
Private Sub Command1_Click()
Dim i As Integer, k As Integer, st As String
For i = 10 To 500
If wanshu(i) Then
st = CStr(i)
Text1.Text = Text1.Text & st
Call test(st)
Text1.Text = Text1.Text & Chr(13) & Chr(10)
End If
Next i
End Sub
Private Function wanshu(n As Integer) As Boolean
15 第
第1章 概述
Dim i As Integer, sum As Integer
– 1 ,改为i=1
If n Mod i = 0 Then
sum = sum + i
End If
Next i
If sum = n Then wanshu = True
End Function
Private Sub test(s As String)
Dim i As Integer, sum As Integer ,位置错,和for 语句位置调换 Do While Len(s) > 1
For i = 1 To Len(s)
sum = sum + Val(Mid(s, i, 1))
Next i
Text1.Text = Text1.Text & "->" & Str(sum)
, 改为s = CStr(sum) Loop
End Sub
第9章 数据文件
一、单选题
1(B 2(C 3(A 4(B 5(C
6(B 7(C 8(B 9( 10(A
11. 12.A 13. 14. 15.A 16.B
二、编程及上机调试
1(Private Sub Form_Load()
Open "d:\my\text2.txt" For Output As #1
End Sub
Private Sub Text1_keyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Close #1
End
End If
Write #1, Text1
Text1.Text = ""
End If
End Sub
16
第1章 概述
2(Option Explicit
Private Type Student
name As String * 10
age As Integer
End Type
Private Sub Command1_Click()
Dim Stu As Student
Open "d:\my\text2.txt" For Random As #1 Len = Len(Stu)
Stu.name = "WangYing"
Stu.age = 20
Put #1, , Stu
Close #1
Open "d:\my\text2.txt" For Random As #1 Len = Len(Stu)
Get #1, , Stu
Print "姓名:", Stu.name
Print "年龄:", Stu.age
Close #1
End Sub
第10章 其它控件
二、选择题
1(B 2(B 3(B 4(C 5(
6(A,C 7(A 8( 9( 10(
11. 12.B 13.
三、填空题
1(菜单编辑器
2(下拉式菜单 弹出式
3( 顶
4( PopupMenu
5( 多文档窗体
6( MDIChild
7( Private Sub HScroll1_Change()
text1 = HScroll1.End Sub
text1 = HScroll1.Value
End Sub
8(Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1
17
第1章 概述
Case 2
Form1.BackColor = vbGreen
Case 3
End Select
End Sub
四、编程及上机调试
1(Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
If Button = 1 Then
StatusBar1.Panels.Item(2) = "Y=" & Y
End If
End Sub
2(Private Sub Command1_Click()
CommonDialog1.FileName = ""
CommonDialog1.InitDir = "D:\"
CommonDialog1.Filter = "Word Files|*.doc|文
CommonDialog1.DialogTitle = "打开文件" „设置打开对话框的标题 CommonDialog1.Action = 1
„创建"打开"对话框 If CommonDialog1.FileName = ""
Then „判断文件名是否为空 MsgBox "
没有选择文件", 37, "检查" „若为空,则显示信息 Else
Open CommonDialog1.FileName For Input As #1 „打开选定的文件 Do While Not EOF(1)
Line Input #1, a$ „读文件的一行 Text1 = Text1 & a$ & vbCrLf „输出所读的 Loop
End If
End Sub
Private Sub Command2_Click()
CommonDialog1.Flags = 3 „列出打印机和屏幕字体
CommonDialog1.Action = 4 „打开"字体"对话框
Text1.FontName = CommonDialog1.FontName „改变文本框的字体
Text1.FontSize = CommonDialog1.FontSize
Text1.FontBold = CommonDialog1.FontBold
18
第1章 概述
Text1.FontItalic = CommonDialog1.FontItalic
Text1.FontUnderline = CommonDialog1.FontUnderline End Sub
Private Sub Command3_Click()
End
End Sub
11章 略
19