第一章
1、 B
2、 A
3、 B
4、 答:属性:红色、充满氢气;事件:松手、针刺;方法:飞走、爆破。
5、 答:事件是指对象能够识别并作出反映的外部刺激。事件驱动又称消息驱动,事件驱动程序设计是指每个事件对应有相应的程序代码,仅在该事件发生时,该段代码才会被执行。事件发生的顺序决定了代码执行的顺序,因此每次执行应用程序时,程序代码并不是按照程序编写的顺序来执行的。
6、 答:VB是一个包括界面设计、程序编码、调试、编译并创建可执行程序的集成开发环境。VB的集成开发环境的主界面中包含:标题栏、菜单栏、工具栏、控件箱、工程资源管理器、属性窗口、“窗体布局”窗口、窗体设计器、代码编辑器等元素组成。
7、 答: VB菜单条通常情况下有:文件、编辑、视图、工程、格式、调试、运行、查询、图
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
、工具、外接程序、窗口、帮助等13项菜单项组成。
8、 答:工具栏可自行定义。标准工具栏中通常情况下有:添加标准exe工程、添加窗体、菜单编辑器、打开工程、保存工程、剪切、复制、粘贴、查找、撤消、重复、启动、中断、结束、工程资源管理器、属性窗口、窗体布局窗口、对象浏览器、工具箱、数据视图窗口、可视化元件管理器等按钮组成。
9、 答:创建VB应用程序的一般步骤为:创建界面;设置窗体和控件属性;编写代码;保存工程;运行并调试程序;检查并排除错误;创建可执行文件。
Private Sub Command1_Click()
Label1.Caption = "I love vb,I hate vb"
End Sub
第二章
1、
2、
3、S1 输入待判断自然数: N(N>=2);
S2 i=2;
S3 判断i是否小于N-1,若不是转S5
S4 判断N除以i的余数是否为0,如果不是则i=i+1转S3;
S5 判断i是否等于N,若是输出“是素数”,否则输出“不是素数”。
4、S1 输入待判断自然数: N;
S2 将N转换成字符S,计算S的长度K;
S3 i=1;
S4 判断i是否小于K-1,若不是转S6;
S5 判断S中的第i位和第K-i+1位是否相等,如果是则i=i+1转S4,如果不是则转S6;
S6 判断i是否是中间位数,若是输出“是回文数”,否则输出“不是回文数”。
5、S1 输入待判断自然数: a;
S2 i=1;
S3 判断i是否小于a-1,若不是转S5
S4 判断a除以i的余数是否为0,如果是则保留因子i,否则i=i+1转S3;
S5 输出所有因子。
6、
第三章
1、窗体的属性主要分为杂项、外观、行为、字体、位置等五类。Caption是窗体标题,出现在窗体标题栏的文本内容;而Name是窗体名称,在程序代码中被作为窗体的标识名。
2、ABDE
4、改变窗口的工作状态会引发Activate事件,改变窗口大小会引发resize事件。
5、forecolor和backcolor属性首先选择系统中的选项,然后在调色板中设置相应的颜色;font属性设置好以后,在窗体上放置的任何控件都会继承窗体的font属性。
6、C
7、Label、optionbutton、checkbox、commandbutton有caption属性,没有text属性;text、combobox有text属性,没有caption属性
8、对象的属性可以在设计界面时在属性窗口中和运行中在代码中设置;属性窗口中的属性列表并没有包括对象的所有属性。
9、picturebox、frame等
10、optionbutton和checkbox。Optionbox的Value可以取true-选中和false-未选中,checkbox的Value可以取0-未选中,1-选中,2-变灰,表示暂时不能访问。
11、text、commandbutton可以获得焦点。在设计界面时第一个放在窗体上的文本框或命令按钮将得到焦点。
12、C
13、把Value的值设为2,表示暂时不能访问复选框,点击复选框后就可以访问了,而把enabled属性设为false则是复选框变灰,完全不能访问。若把一个控件的Visible属性设为false则在程序运行时看不到该控件。
14、用additem来添加列表项,用removeitem删除已有的列表项,用clear删除所有列表项。
15、
16、
Private Sub Check1_Click()
If Check1.Value = 1 Then
Label2.Font.Italic = True
ElseIf Check1.Value = 0 Then
Label2.Font.Italic = False
End If
End Sub
Private Sub Check2_Click()
If Check2.Value = 1 Then
Label2.Font.Bold = True
ElseIf Check2.Value = 0 Then
Label2.Font.Bold = False
End If
End Sub
Private Sub Command1_Click()
End
End Sub
Private Sub Option1_Click()
If Option1.Value Then Label2.Font.Size = 12
Label2.Refresh
End Sub
Private Sub Option2_Click()
If Option2.Value Then Label2.Font.Size = 14
Label2.Refresh
End Sub
Private Sub Option3_Click()
If Option3.Value Then Label2.Font.Size = 16
Label2.Refresh
End Sub
Private Sub Option4_Click()
If Option4.Value Then Label2.Font.Name = "宋体"
Label2.Refresh
End Sub
Private Sub Option5_Click()
If Option5.Value Then Label2.Font.Name = "隶书"
Label2.Refresh
End Sub
Private Sub Option6_Click()
If Option6.Value Then Label2.Font.Name = "黑体"
Label2.Refresh
End Sub
17、
18、
第四章
1. B
2. 见教材P40-41
3. 不对,通用过程也可以存在于窗体模块中
4. 见教材P43
5. 字符串型常量的界定符是双引号",日期型数据的界定符是磅号#。A、B是字符型,C、D是日期型,E、F不属于任何类型。
6. 合法变量名有:A、C、D (VB中合法变量名只能由字母、数字和下划线构成,并且只能以字母开头)
7. 见教材P46
8. (1) a/(b+c/d)
(2) (sqr(x^2+1)+x)^(1/3)
(3) (2*y)/((a*x+b*y)*(a*x-b*y))
(4) 1+1/(1+1/m)
(5) (d/3)^(2*x)/2
(6) log(y+cos(x)^2)
(7) fabs((exp(x)+sin(x)^3)/(x+y))
(8)log((exp(x*y)+fabs(tan(z)^-1+cos(x)^3))/(x+y-z))
9. (1)(2) (A+B)/(A-B)
(3)(4) A*B*C/((D+1)*Y)
(5)(6) (X*Y)^5
10. A x+y<10 and x-y>0
B x*y>0 and x=fix(x) and y=fix(y)
C A=0 XOR B=0
D C1+C2+C3>=255 and C1>90 and C2>90 and C3>80
11. T F F F F
12. BCDE (A会发生溢出的错误)
13. (1) "3548" (2) 3548 (3) "3548"
(4) 3548
(5) "83" (6) 83 (7) "3548"
(8) 3548
14. 以2为底的X的对数:log(x)/log(2)
15. C
16. z=Inputbox("输入一个数:","程序示例",1.5)
17. Msgbox "Z的值1.5大于0",48,"程序示例"
Option Explicit
Const PI As Single = 3.14159
Private Sub Command1_Click()
Dim a As Single, b As Single, c As Single, area As Single
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text) * PI / 180 '角度角转换为弧度角
area = a * b * Sin(c) / 2
Text4 = CStr(Format(area, "0.00")) '使纯小数能出现整数位的0
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub Command3_Click()
End
End Sub
第五章
1.
Option Explicit
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = 1: b = 0
Do While a <= 5
b = b + a * a
a = a + 1
Loop
Print a, b
End Sub
Private Sub Command2_Click()
Dim ch As String, i As Integer
ch = "DEF"
For i = 1 To Len(ch) '循环的上界不会变
ch = Mid(ch, 2 * i - 1, 1) & Left(ch, Len(ch))
Print ch
Next i
End Sub
Private Sub Command3_Click()
Dim p As Integer, i As Integer
p = 1
For i = 1 To 5
p = p + (2 * i - 1) / (2 * i + 1)
If p >= 20 Then Exit For '跳出循环前执行不到这一句
Next i
Print i, p
End Sub
Private Sub Command4_Click()
Dim p As Integer, i As Integer, n As Integer
p = 2: n = 20
For i = 1 To n Step p '计数循环的初值、终值和步长都不会变
p = p + 2
n = n - 3
i = i + 1
If p >= 10 Then Exit For
Next i
Print i, p, n
End Sub
2.
Option Explicit
Dim n1 As Integer, n2 As Integer, n3 As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
For i = 1 To 10
For j = 1 To 10
k = Int(Rnd * 90 + 10)
Print k;
If k <= 40 Then
n1 = n1 + 1
ElseIf k <= 70 Then
n2 = n2 + 1
Else
n3 = n3 + 1
End If
Next j
Print
Next i
End Sub
Private Sub Command2_Click()
Print "小于等于40的数据个数为:" & n1 & "个"
Print "大于40小于等于70的数据个数为:" & n2 & "个"
Print "大于70的数据个数为:" & n3 & "个"
End Sub
Private Sub Command3_Click()
Cls
End Sub
3.
Option Explicit
Private Sub Command1_Click()
Dim x As Integer, y As Integer
x = Text1.Text
If x <= 0 Then
y = 2 - x
ElseIf x <= 2 Then
y = x + 2
ElseIf x <= 5 Then
y = x ^ 2
Else
y = 25 - x
End If
Text2.Text = y
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2 = ""
End Sub
4.
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
For i = 1 To 2
For j = 1 To 10
k = Int(Rnd * 900 + 100)
Picture1.Print k;
If k Mod 2 <> 0 Then
List1.AddItem k
Else
List2.AddItem k
End If
Next j
Picture1.Print
Next i
End Sub
5.
Option Explicit
Private Sub Command1_Click()
Dim m As Integer, n As Integer, r As Integer
m = Val(Text1.Text)
n = Val(Text2.Text)
Do
r = m Mod n
If r <> 0 Then
m = n
n = r
Else
Exit Do
End If
Loop
Text3.Text = Val(Text1.Text) * Val(Text2.Text) / n
End Sub
6.
Option Explicit
Dim r1 As Integer, r2 As Single 'r2可能是个很大的数,最好定义成单精度型
Private Sub Command1_Click()
Dim i As Integer, k As Integer
r1 = 0: r2 = 1 'r2一定要初始化为1,否则积为0
For i = 1 To 10
k = InputBox("请输入第" & i & "个数")
Picture1.Print k;
r1 = r1 + k
r2 = r2 * k
Next i
End Sub
Private Sub Command2_Click()
Text1 = r1
End Sub
Private Sub Command3_Click()
Text2 = r2
End Sub
7.
Option Explicit
Private Sub Command1_Click()
Dim s As String, s1 As String, s2 As String, i As Integer
s1 = Text1.Text
For i = 1 To Len(s1)
s = Mid(s1, i, 1)
If s >= "0" And s <= "9" Then
s2 = s2 & s
End If
Next i
Text2.Text = s2
End Sub
8.
Option Explicit
Private Sub Command1_Click()
Text1 = ""
Text2 = ""
End Sub
Private Sub Command2_Click()
Dim n As Integer, r As String, s As String
n = Val(Text1.Text)
Do
r = n Mod 2
s = r & s
n = n \ 2
Loop Until n = 0 '当商为0时则跳出循环
Text2.Text = s
End Sub
9.
Option Explicit
Private Sub Command1_Click()
Dim a As Long, b As Long, c As Long
For a = 1 To 100
For b = 1 To 100
For c = 1 To 100
If a * a + b * b = c * c Then
List1.AddItem a & "," & b & "," & c
End If
Next c
Next b
Next a
End Sub
10.
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, r1 As Integer, r2 As Integer, r3 As Integer
For i = 100 To 999
r1 = i \ 100
r2 = (i \ 10) Mod 10 '或者r2 = (i mod 100)\10
r3 = (i Mod 100) Mod 10
If r1 < r2 And r2 < r3 Then
List1.AddItem i
End If
Next i
End Sub
11.
Option Explicit
Private Sub Command1_Click()
Dim a As Single, b As Single, c As Single
a = 0: b = 1
c = (a + b) / 2
Do
If f(a) * f(c) > 0 Then
a = c
Else
b = c
End If
c = (a + b) / 2
Loop Until Abs(b - c) <= 0.00001
Text1.Text = Format(c, "0.########")
End Sub
Private Function f(x As Single) As Single
f = x ^ 3 - x ^ 4 + 4 * x ^ 2 - 1
End Function
第六章
6-1 请同学上机运行代码。
6-2
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim i As Integer, t As Integer
Dim a(15) As Integer
Randomize
For i = 1 To 15
a(i) = Int(100 * Rnd)
Text1 = Text1 & Str(a(i))
Next i
For i = 1 To 7
t = a(i)
a(i) = a(16 - i)
a(16 - i) = t
Next i
For i = 1 To 15
Text2 = Text2 & Str(a(i))
Next i
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
End Sub
Private Sub Command3_Click()
End
End Sub
6-3
Option Explicit
Dim a(20) As Integer
Private Sub Command1_Click()
Dim i As Integer
Randomize
For i = 1 To 20
a(i) = Int(90 * Rnd) + 10
Text1 = Text1 & Str(a(i))
Next i
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, f As Boolean
Dim n As Integer
For i = 1 To 20
f = True
For j = i + 1 To 20
If a(i) = a(j) Then f = False
Next j
If f = True Then n = n + 1
Next i
Text2 = n
End Sub
Private Sub Command3_Click()
Text1 = ""
End Sub
Private Sub Command4_Click()
End
End Sub
6-4
Option Explicit
Dim a(20) As Integer
Private Sub Command1_Click()
Dim i As Integer
Randomize
For i = 1 To 20
a(i) = Int(90 * Rnd) + 10
Text1 = Text1 & Str(a(i))
Next i
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, max As Integer
Dim n As Integer, w As Integer, p As Integer
For i = 1 To 20
n = 0: p = i
For j = 1 To 4
If i > 20 Then p = p - 20
n = n + a(p)
Next j
If n > max Then
max = n
w = i
End If
Next i
Text2 = max
Picture1.Print w & "--" & w + 4
End Sub
Private Sub Command3_Click()
Text1 = ""
End Sub
Private Sub Command4_Click()
End
End Sub
6-5
Dim a(5, 5) As Integer
Private Sub Command1_Click()
For i = 1 To 4
For j = 1 To 5
a(i, j) = Int(9 * Rnd) + 1
Picture1.Print a(i, j);
Next j
Picture1.Print
Next i
End Sub
Private Sub Command2_Click()
For j = 1 To 5
s = 0
For i = 1 To 4
s = s + a(i, j)
Next i
Text1 = Text1 & Str(s)
Next j
End Sub
Private Sub Command3_Click()
For i = 1 To 4
s = 0
For j = 1 To 5
s = s + a(i, j)
Next j
Text2 = Text2 & Str(s) & Chr(13) & Chr(10)
Next i
End Sub
Private Sub Command4_Click()
Text1 = ""
Text2 = ""
Picture1.Cls
End Sub
Private Sub Command5_Click()
End
End Sub
6-6
Option Explicit
Private Sub Command1_Click()
Dim a(5, 5), i As Integer, j As Integer
Dim n As Integer, m As Integer, t As Integer
Randomize
For i = 1 To 5
For j = 1 To 5 - 1
a(i, j) = Int(40 * Rnd) * 2 + 10
Next j
Next i
For i = 1 To 5
For j = 5 To 6 - i Step -1
a(i, j) = Int(40 * Rnd) * 2 + 11
Next j
Next i
For i = 1 To 5
For j = 1 To 5
Text1 = Text1 & Str(a(i, j))
Next j
Text1 = Text1 & vbCrLf
Next i
End Sub
6-7 同6-4
6-8
Dim a(5, 5) As Integer
Private Sub Command1_Click()
Randomize
For i = 1 To 5
For j = 1 To 5
a(i, j) = Int(100 * Rnd) + 1
Picture1.Print Right(" " & a(i, j), 4);
Next j
Picture1.Print
Next i
End Sub
Private Sub Command2_Click()
For i = 1 To 5
For j = 1 To 5
s = s + a(i, j)
Next j
Next i
Text1 = Str(s)
End Sub
Private Sub Command3_Click()
For i = 1 To 5
For j = 1 To 5
If i = 1 Or j = 1 Or i = 5 Or j = 5 Then
s = s + a(i, j)
End If
Next j
Next i
Text2 = Str(s)
End Sub
Private Sub Command4_Click()
For i = 1 To 5
For j = 1 To 5
If i = j Or j = 6 - i Then
s = s + a(i, j)
End If
Next j
Next i
Text3 = Str(s)
End Sub
6-9
Option Explicit
Private Sub Command1_Click()
Dim a() As Integer, i As Integer, j As Integer
Dim max As Integer, k As Integer, f As Boolean
Dim n As Integer, m As Integer, t As Integer
n = InputBox("输入矩阵的行数:")
m = InputBox("输入矩阵的列数:")
ReDim a(n, m)
Randomize
For i = 1 To n
For j = 1 To m
a(i, j) = Int(90 * Rnd) + 10
Text1 = Text1 & Str(a(i, j))
Next j
Text1 = Text1 & vbCrLf
Next i
For i = 1 To n
max = 0
For j = 1 To m
If a(i, j) > max Then
max = a(i, j)
t = j
End If
Next j
For k = 1 To n
If a(k, t) < max Then Exit For
Next k
If k > n Then
Picture1.Print "鞍点:"; a(i, t); "第"; i; "行"; t; "列"
f = True
End If
Next i
If f = False Then Picture1.Print "没有鞍点"
End Sub
Private Sub Command2_Click()
Text1 = ""
Picture1.Cls
End Sub
Private Sub Command3_Click()
End
End Sub
6-10
Option Explicit
Private Sub Form_Click()
Dim a() As Integer, n As Integer
Dim i As Integer, j As Integer
n = InputBox("层数")
ReDim a(n, n)
For i = 1 To n
Print Tab(20 - 2 * i);
For j = 1 To i
If i = 1 Or i = j Then
a(i, j) = 1
Else
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
End If
Print Left(a(i, j) & " ", 4);
Next j
Print
Next i
End Sub
6-11
Option Explicit
Private Sub Command1_Click()
Dim a(4, 5), i As Integer, j As Integer
Dim b(4) As Integer, max As Integer, min As Integer
Dim n As Integer, m As Integer, t As Integer
Randomize
max = 0: min = 32767
For i = 1 To 4
For j = 1 To 5
a(i, j) = Int(90 * Rnd) + 10
Text1 = Text1 & Str(a(i, j))
b(i) = b(i) + a(i, j)
Next j
Text1 = Text1 & vbCrLf
If max < b(i) Then
max = b(i): m = i
ElseIf min > b(i) Then
min = b(i): n = i
End If
Next i
Label1.Caption = "max行和: " & max & " min行和 :" & min & vbCrLf & "max行: " & m & " min行: " & n & " 交换这两行"
For j = 1 To 5
t = a(m, j)
a(m, j) = a(n, j)
a(n, j) = t
Next j
For i = 1 To 4
For j = 1 To 5
Text2 = Text2 & Str(a(i, j))
Next j
Text2 = Text2 & vbCrLf
Next i
End Sub
6-12
Option Explicit
Private Sub Command1_Click()
Dim a(), i As Integer, j As Integer
Dim b(4) As Integer, max As Integer, min As Integer
Dim n As Integer, m As Integer, t As Integer
Randomize
n = InputBox("矩阵阶数n:")
ReDim a(n, n)
For i = 1 To n
For j = 1 To n
a(i, j) = Int(90 * Rnd) + 10
Text1 = Text1 & Str(a(i, j))
Next j
Text1 = Text1 & vbCrLf
Next i
For i = 1 To n
For j = 1 To n
Text2 = Text2 & Str(a(j, i))
Next j
Text2 = Text2 & vbCrLf
Next i
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
End Sub
Private Sub Command3_Click()
End
End Sub
6-13
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim a(3, 3) As Integer, i As Integer, j As Integer
Dim max As Long, k As Long, f As Integer
Dim n As Integer, m As Integer
Randomize
For i = 1 To 3
For j = 1 To 3
a(i, j) = Int(90 * Rnd) + 10
Text1 = Text1 & Str(a(i, j))
Next j
Text1 = Text1 & vbCrLf
Next i
For i = 1 To 3 '主对角线方向
m = i
k = 1
For j = 1 To 3
k = k * a(m, j)
m = m + 1
If m > 3 Then m = 1
Next j
If k > max Then
max = k
n = i
f = 1
End If
Next i
For i = 1 To 3 '辅对角线方向
m = i
k = 1
For j = 1 To 3
k = k * a(j, m)
m = m - 1
If m < 1 Then m = 3
Next j
If k > max Then
max = k
n = i
f = 2
End If
Next i
Picture1.Print "最大组元素:"
If f = 1 Then
For i = 1 To 2
Picture1.Print "a("; n; ","; i; ")="; a(n, i); " ";
n = n + 1
If n > 3 Then n = 1
Next i
Picture1.Print "a("; n; ","; i; ")="; a(n, i)
ElseIf f = 2 Then
For i = 1 To 2
Picture1.Print "a("; i; ","; n; ")="; a(i, n); " ";
n = n - 1
If n < 1 Then n = 3
Next i
Picture1.Print "a("; i; ","; n; ")="; a(i, n)
End If
Picture1.Print "乘积="; max
End Sub
Private Sub Command2_Click()
Text1 = ""
Picture1.Cls
End Sub
Private Sub Command3_Click()
End
End Sub
6-14
Option Explicit
Private Sub Command1_Click()
Dim a(3, 3) As Integer, i As Integer, j As Integer
Dim k As Integer
i = 3: j = 2: a(i, j) = 1: k = 1
Do Until k > 9
k = k + 1
If i + 1 > 3 And j + 1 <= 3 Then
i = 1: j = j + 1
ElseIf i + 1 <= 3 And j + 1 > 3 Then
i = i + 1: j = 1
ElseIf i + 1 > 3 And j + 1 > 3 Then
i = i - 1
ElseIf i + 1 <= 3 And j + 1 <= 3 And a(i + 1, j + 1) <> 0 Then
i = i - 1
Else
i = i + 1: j = j + 1
End If
a(i, j) = k
Loop
For i = 1 To 3
For j = 1 To 3
Picture1.Print a(i, j);
Next j
Picture1.Print
Next i
End Sub
Private Sub Command2_Click()
Dim a() As Integer, i As Integer, j As Integer
Dim k As Integer
Dim n As Integer
n = InputBox("幻方阶数:")
ReDim a(n, n)
i = n: j = (n + 1) / 2: a(i, j) = 1: k = 1
Do Until k > n * n
k = k + 1
If i + 1 > n And j + 1 <= n Then
i = 1: j = j + 1
ElseIf i + 1 <= n And j + 1 > n Then
i = i + 1: j = 1
ElseIf i + 1 > n And j + 1 > n Then
i = i - 1
ElseIf i + 1 <= n And j + 1 <= n And a(i + 1, j + 1) <> 0 Then
i = i - 1
Else
i = i + 1: j = j + 1
End If
a(i, j) = k
Loop
For i = 1 To n
For j = 1 To n
Picture1.Print Right(" " & a(i, j), 4);
Next j
Picture1.Print
Next i
End Sub
6-15
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim a() As Integer, i As Integer, j As Integer
Dim max As Long, k As Long, f As Integer
Dim n As Integer, m As Integer
Ran