2023年12月6日发(作者:)
课后答案网,用心为你服务!第一章1、B
2、A
3、B
4、答:属性:红色、充满氢气;事件:松手、针刺;方法:飞走、爆破。5、答:事件是指对象能够识别并作出反映的外部刺激。事件驱动又称消息驱动,事件驱动程序设计是指每个事件对应有相应的程序代码,仅在该事件发生时,该段代码才会被执行。事件发生的顺序决定了代码执行的顺序,因此每次执行应用程序时,程序代码并不是按照程序编写的顺序来执行的。6、答:VB、答:VB是一个包括界面设计、程序编码、调试、编译并创建可执行程序的集成开发环境。VB集成开发环境。VB的集成开发环境的主界面中包含:标题栏、菜单栏、工具栏、控件箱、工程资源管理器、属性窗口、“窗体布局”窗口、窗体设计器、代码编辑器等元素组成。7、答: VB、答: VB菜单条通常情况下有:文件、编辑、视图、工程、格式、调试、运行、查询、图表、工具、外接程序、窗口、帮助等13项菜单项组成。8、答:工具栏可自行定义。标准工具栏中通常情况下有:添加标准exe工程、添加窗体、菜单编辑器、打开工程、保存工程、剪切、复制、粘贴、查找、撤消、重复、启动、中断、结束、工程资源管理器、属性窗口、窗体布局窗口、对象浏览器、工具箱、数据视图窗口、可视化元件管理器等按钮组成。9、答:创建VB应用程序的一般步骤为:创建界面;设置窗体和控件属性;编写代码;保存工程;运行并调试程序;检查并排除错误;创建可执行文件。10、10、Private Sub Command1_Click()
n = "I love vb,I hate vb"
End Sub 课后答案网,用心为你服务!
课后答案网,用心为你服务!
第二章
第二章
1、
开始
输入x、y
2、
开始
否
b>a?
是
交换a、b
temp=x x=y
否
c>a?
是
交换a、c
y=temp
输出新的x、y
结束
c>b?
是
交换b、c
否
输出a、b、c
结束 课后答案网,用心为你服务!
课后答案网,用心为你服务!
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
S3;
判断a除以i的余数是否为0,如果是则保留因子i,否则i=i+1转S5 输出所有因子。
6、
开始
否
边长>0?
是
输出
是否能组
成三角形
是
计算
否
出错信息
结束 课后答案网,用心为你服务!
课后答案网,用心为你服务!
第三章
1、窗体的属性主要分为杂项、外观、行为、字体、位置等五类。Caption、窗体的属性主要分为杂项、外观、行为、字体、位置等五类。Caption是窗体标题,出现在窗体标题栏的文本内容;而Name是窗体名称,在程序代码中被作为窗体的标识名。
作为窗体的标识名。
2、ABDE
4、改变窗口的工作状态会引发Activate事件,改变窗口大小会引发resize事件。
件。
5、forecolor和backcolor属性首先选择系统中的选项,然后在调色板中设置相应的颜色;font应的颜色;font属性设置好以后,在窗体上放置的任何控件都会继承窗体的font属性。
属性。
6、C
7、Label、Label、optionbutton、optionbutton、checkbox、checkbox、commandbutton有caption属性,没有text属性;text属性;text、text、combobox有text属性,没有caption属性
属性
8、对象的属性可以在设计界面时在属性窗口中和运行中在代码中设置;属性窗口中的属性列表并没有包括对象的所有属性。
口中的属性列表并没有包括对象的所有属性。
9、picturebox、picturebox、frame等
10、10、optionbutton和checkbox。checkbox。Optionbox的Value可以取true-选中和true-选中和false-未选中,checkbox-未选中,checkbox的Value可以取0-未选中,1-未选中,1-选中,2-选中,2-变灰,表示暂时不能访问。
暂时不能访问。
11、11、text、text、commandbutton可以获得焦点。在设计界面时第一个放在窗体上的文本框或命令按钮将得到焦点。
本框或命令按钮将得到焦点。
12、12、C
13、把13、把Value的值设为2,表示暂时不能访问复选框,点击复选框后就可以访问了,而把enabled属性设为false则是复选框变灰,完全不能访问。若把一个控件的Visible属性设为false则在程序运行时看不到该控件。
则在程序运行时看不到该控件。
14、用14、用additem来添加列表项,用removeitem删除已有的列表项,用clear删除所有列表项。
除所有列表项。
15、15、
课后答案网,用心为你服务!
课后答案网,用心为你服务!
16、16、
Private Sub Check1_Click()
If = 1 Then
= True
ElseIf = 0 Then
= False
End If
End Sub
Private Sub Check2_Click()
If = 1 Then
= True
ElseIf = 0 Then
= False
End If
End Sub
Private Sub Command1_Click()
End
End Sub
Private Sub Option1_Click()
If Then = 12
h
End Sub
Private Sub Option2_Click() 课后答案网,用心为你服务!
课后答案网,用心为你服务!
If Then = 14
h
End Sub
Private Sub Option3_Click()
If Then = 16
h
End Sub
Private Sub Option4_Click()
If Then = "宋体 If Then = "宋体"
宋体"
h
End Sub
Private Sub Option5_Click()
If Then = "隶书 If Then = "隶书"
隶书"
h
End Sub
Private Sub Option6_Click()
If Then = "黑体 If Then = "黑体"
黑体"
h
End Sub
17、17、
课后答案网,用心为你服务!
课后答案网,用心为你服务!
第四章
第四章
1.
1. B
2.
2. 见教材P40-41
3.
3. 不对,通用过程也可以存在于窗体模块中
4.
4. 见教材P43
5.
5. 字符串型常量的界定符是双引号"字符串型常量的界定符是双引号",日期型数据的界定符是磅号#。A、B是字符型,C是字符型,C、D是日期型,E、F不属于任何类型。
不属于任何类型。
6.
6. 合法变量名有:A合法变量名有:A、C、D (D
(VB中合法变量名只能由字母、数字和下划线构成,并且只能以字母开头)
7.
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.
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
10.
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
11.
12. BCDE (12.
CDE
(A会发生溢出的错误)
会发生溢出的错误)
13. (1) "3548" (2) 3548 (3) "3548" (4) 3548
13.
(5) "83" (6) 83 (7) "3548" (8) 3548
14. 以2为底的X的对数:log(x)/log(2)
14.
的对数:log(x)/log(2)
15. C
15.
16. z=Inputbox("输入一个数:16.
=Inputbox("输入一个数:"输入一个数:","程序示例"程序示例",1.5)
17. Msgbox "Z的值1.5大于0",17.
0",48,48,"程序示例"
程序示例"
18.
18.
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()
b = Val()
c = Val() * PI / 180 '角度角转换为弧度角
角度角转换为弧度角
area = a * b * Sin(c) / 2
Text4 = CStr(Format(area, "0.00")) '使纯小数能出现整数位的0
End Sub
Private Sub Command2_Click()
= ""
= ""
= ""
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) '循环的上界不会变 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 '跳出循环前执行不到这一句 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 '计数循环的初值、终值和步长都不会变 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
Next i
End Sub
Private Sub Command2_Click()
Print "小于等于 Print "小于等于40的数据个数为:" & n1 & "的数据个数为:" & n1 & "个" & n1 & "个"
Print "大于 Print "大于40小于等于70的数据个数为:" & n2 & "的数据个数为:" & n2 & "个" & n2 & "个"
Print "大于 Print "大于70的数据个数为:" & n3 & "的数据个数为:" & n3 & "个" & 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 =
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
= y
End Sub
Private Sub Command2_Click()
= ""
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)
k;
If k Mod 2 <> 0 Then
m k 课后答案网,用心为你服务!
课后答案网,用心为你服务!
Else
m k
End If
Next j
Next i
End Sub
5.
Option Explicit
Private Sub Command1_Click()
Dim m As Integer, n As Integer, r As Integer
m = Val()
n = Val()
Do
r = m Mod n
If r <> 0 Then
m = n
n = r
Else
Exit Do
End If
Loop
= Val() * Val() / 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("请输入第 k = InputBox("请输入第" & i & "请输入第" & i & "个数" & i & "个数")
个数")
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 =
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
= 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()
Do
r = n Mod 2
s = r & s
n = n 2
Loop Until n = 0 '当商为 Loop Until n = 0 '当商为0时则跳出循环
时则跳出循环
= 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
m 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 10) Mod 10 '或者r2 = (i mod 100)10
r3 = (i Mod 100) Mod 10
If r1 < r2 And r2 < r3 Then
m 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
= 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 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 a(i, j); Next j 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 = "" 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 Right(" " & a(i, j), 4); Next j 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 "鞍点:"; a(i, t); "第"; i; "行"; t; "列" f = True End If Next i If f = False Then "没有鞍点" End Sub Private Sub Command2_Click() Text1 = "" 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 n = "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 "最大组元素:" If f = 1 Then For i = 1 To 2 "a("; n; ","; i; ")="; a(n, i); " "; n = n + 1 If n > 3 Then n = 1 Next i "a("; n; ","; i; ")="; a(n, i) ElseIf f = 2 Then For i = 1 To 2 "a("; i; ","; n; ")="; a(i, n); " "; n = n - 1 If n < 1 Then n = 3 Next i "a("; i; ","; n; ")="; a(i, n) End If "乘积="; max End Sub Private Sub Command2_Click() Text1 = "" 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 a(i, j); Next j 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 Right(" " & a(i, j), 4); Next j 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 Randomize f = InputBox("输入方阵阶数:") ReDim a(f, f) For i = 1 To f For j = 1 To f a(i, j) = Int(90 * Rnd) + 10 Text1 = Text1 & Str(a(i, j)) Next j Text1 = Text1 & vbCrLf Next i For i = 1 To f '副对角线方向
副对角线方向
m = i k = 0 For j = 1 To f k = k + a(j, m) m = m - 1 If m < 1 Then m = f Next j If k > max Then max = k n = i End If Next i "max:"; max For i = 1 To f "a("; i; ","; n; ")="; a(i, n)
n = n - 1 If n < 1 Then n = f Next i End Sub Private Sub Command2_Click() Text1 = "" End Sub Private Sub Command3_Click() End End Sub 课后答案网,用心为你服务!
课后答案网,用心为你服务!
1.在过程中声明的局部变量其生命期只到本次过程执行结束就终止了,但是在过程中声明的静态变量其生命期是只有当包含此过程的窗体被终止的时候才终止。
的静态变量其生命期是只有当包含此过程的窗体被终止的时候才终止。
有三种形式,传值、传址和利用全局变量向过程传递数据。
2.有三种形式,传值、传址和利用全局变量向过程传递数据。
传值:给过程传递的是变量的值,不会有副作用。
传值:给过程传递的是变量的值,不会有副作用。
传址:给过程传递的是变量的地址,有副作用
传址:给过程传递的是变量的地址,有副作用
利用全局变量:有副作用,
利用全局变量:有副作用,
3.
Private Sub C1_Click() Dim i As Integer, j As Integer i = 8: j = 8 Call aa(i, j) Print i Print j End Sub
Private Sub aa(ByVal m As Integer, ByRef n As Integer) m = m + 1 n = n + 1 End Sub
4.(1) BASIC (2) 26;第二行: 2 62;第三行: -2 98 第一行: 6 (3) 第一行: 23 ; 第二行: 47 (4) -10;第三行:52;第四行:12 -10 第一行: 10 8; 第二行:12
5.
Private Sub Command1_Click() Dim ss As Single, hs As Single ss = Text1 Text2 = tra(ss) End Sub
Private Sub Command2_Click() = "" Text2 = "" End Sub
Private Sub Command3_Click() End End Sub
Public Function tra(ByVal C As Single) As Single al C As Single) As Single Dim F As Single F = (C * 9) / 5 + 32 tra = F End Function
第七章
课后答案网,用心为你服务!
课后答案网,用心为你服务!
6.
Private Sub Command1_Click() Dim data_one As Integer data_one = InputBox("请输入要判断的数:", "素数判断") If Prime(data_one) Then sushu = Str(data_one) + " 是素数" else sushu = Str(data_one) + " 不是素数" End If End Sub
Private Sub Command2_Click() Text1 = "" End Sub
Private Sub Command3_Click() End End Sub
Public Function Prime(ByVal N As Integer) As Boolean Dim k As Integer For k = 2 To Sqr(N) If N Mod k = 0 Then Exit Function Next k Prime = True End Function
Private Sub Command1_Click() Dim ss As String Dim i As Integer For i = 1 To 100 If Prime(i) And Prime(i + 2) Then ss = ss & Chr(13) & Chr(10) & i & Str(i + 2) End If Next i Text1 = ss End Sub
Public Function Prime(ByVal N As Integer) As Boolean
Dim k As Integer For k = 2 To Sqr(N) If N Mod k = 0 Then Exit Function Next k Prime = True End Function 7.
8.
Option Explicit Option Base 1 Private Sub Form_Click() Dim a As Integer, n As Integer Dim i As Integer Randomize 课后答案网,用心为你服务!
课后答案网,用心为你服务!
Dim aa(20) As Integer a = Int(100 * Rnd() * 1) n = 1 Do For i = 1 To n - 1 If a = aa(i) Then Exit For End If Next i If i >= n Then aa(n) = a n = n + 1 End If a = Int(100 * Rnd() * 1) Loop While n <= 20 For i = 1 To 20 Print aa(i); Next i End Sub
9.
Dim a(19) As Integer Private Sub Command1_Click() a(0) = Int(100 * Rnd) + 1 For i = 1 To 19 a(i) = Int(100 * Rnd) + 1 For j = 0 To i - 1 If a(i) = a(j) Then i = i - 1 Exit For End If Next j If j = i Then Print a(i); Next i End Sub
Private Sub Command2_Click() Max = a(0) + a(1) + a(2) + a(3) maxi = 0 For i = 0 To 19 s = a(i) + a((i + 1) Mod 20) + a((i + 2) Mod 20) + a((i + 3) Mod 20) If s > Max Then Max = s maxi = i End If Next i Print Str(a(maxi)) & "+" & Str(a(maxi + 1)) & "+" & Str(a(maxi + 2)) & "+" & Str(a(maxi + 3)) & "=" & Str(Max) End Sub
10.
Private Sub Command1_Click() Dim a(5, 5) As Integer Randomize For i = 1 To 5 For j = 1 To 5 课后答案网,用心为你服务!
课后答案网,用心为你服务!
a(i, j) = Int(100 * Rnd) + 1 Print a(i, j); Next j Print Next i Call fmax(a) End Sub
Private Sub fmax(a() As Integer) Max = a(1, 1) maxi = 1 maxj = 1 For i = 1 To 5 For j = 1 To 5 If a(i, j) > Max Then Max = a(i, j) maxi = i maxj = j End If Next j Next i Print "最大元素为:a(" + Str(maxi) + "," + Str(maxj) + ")=" + CStr(Max) End Sub
11 .
Private Sub Command1_Click() Dim i As Integer For i = 1 To 6 Text1 = Text1 & Str(fab(i)) Next i End Sub
Long Private Function fab(n As Integer) As If n = 1 Or n = 2 Then fab = 1 Else fab = fab(n - 1) + fab(n - 2) End If End Function Private Sub Command1_Click() Dim i As Integer a = InputBox("请输入一个大于2的偶数:") n = Val(a) If n = 4 Then Print "4 = 2 + 2" Exit Sub End If For i = 3 To n - 1 Step 2 If prime(i) And prime(n - i) Then Print Str(n) + "=" + Str(i) + "+" + Str(n - i) Exit Sub
12 . 课后答案网,用心为你服务!
课后答案网,用心为你服务!
End If Next i Print "歌德巴赫猜想不对!" End Sub
Private Function prime(ByVal n As Integer) As Boolean
For i = 2 To n - 1 If n Mod i = 0 Then prime = False Exit Function End If Next i prime = True End Function
13.
Private Sub Command1_Click() Dim i As Integer For i = 10 To 9999 Call arm(i) Next i End Sub
Private Sub arm(j As Integer) a = CStr(j) n = Len(a) For k = 1 To n b = Mid(a, k, 1) s = s + Val(b) ^ n Next k If s = j Then Print j End If End Sub
14.
Private Sub Command1_Click() Dim n As Integer, m As String, b As Integer n = InputBox("请输入原始数的进制(2-16):") m = InputBox("请输入原始数:") n = Str(n) + "进制数" Text1 = m b = trans(m, n) Text2 = Str(b) End Sub
Private Function trans(m As String, n As Integer) As Integer Dim k As Integer, t As String, r As Integer, s As Integer k = Len(m) For i = 1 To k t = UCase(Mid(m, i, 1)) If t >= "A" And t <= "F" Then r = Asc(t) - 55 Else r = Val(t) 课后答案网,用心为你服务!
课后答案网,用心为你服务!
End If s = s + r * n ^ (k - i) Next i trans = s End Function
15.
Form1:
Dim b(5) As Single Private Sub Command1_Click() Dim a As Single Randomize For i = 0 To 5 a = (Int(61 * Rnd) + 40) / 10 b(i) = a Text1(i) = Str(a) Next i End Sub
Private Sub Command2_Click() Min = b(0) Max = b(0) Sum = b(0) For i = 1 To 5 If b(i) > Max Then Max = b(i) If b(i) < Min Then Min = b(i) Sum = Sum + b(i) Next i Sum = Sum - Max - Min Text2 = Str(Sum / 4) End Sub
Private Sub Command3_Click() For i = 0 To 5 Text1(i) = "" Next i Text2 = "" End Sub
Private Sub Command4_Click() End End Sub
Form2:
Dim b(5) As Single Private Sub Command1_Click() Dim a As Single Randomize For i = 0 To 5 a = (Int(61 * Rnd) + 40) / 10 b(i) = a m Chr(65 + i) + ":" + Str(a) Next i End Sub
Private Sub Command3_Click() 课后答案网,用心为你服务!
课后答案网,用心为你服务!
Text1 = "" End Sub
Private Sub Command4_Click() End End Sub Private Sub Command2_Click() Min = b(0) Max = b(0) Sum = b(0) For i = 1 To 5 If b(i) > Max Then Max = b(i) If b(i) < Min Then Min = b(i) Sum = Sum + b(i) Next i Sum = Sum - Max - Min Text1 = Str(Sum / 4) End Sub
16.
Private Sub Command1_Click() Dim i As Integer, k As Integer, m As Integer Dim s As Single, t As Single i = 1 Do t = 1 For k = 1 To i m = 2 * k t = t * m Next k s = s + 1 / t If 1 / t < 0.00001 Then Exit Do i = i + 1 Loop Print s End Sub
17.
Private Sub Command1_Click() Dim n As Integer, t As Single, s As Single, x As Single n = 2: s = 0 x = InputBox("input x:") Do t = (x ^ f(n)) / (f(n - 1) * f(n)) s = s + t If t < 0.00001 Then Exit Do n = n + 1 Loop Print s End Sub
Private Function f(n As Integer) As Integer If n = 1 Or n = 2 Then f = 1 Else f = f(n - 1) + f(n - 2) End If 课后答案网,用心为你服务!
课后答案网,用心为你服务!
18.
End Function Private Sub Form_Click() Dim a(10) As Integer Randomize For i = 1 To 10 a(i) = Int(Rnd * 20) + 1 a(i); Next i Call insertion(a) For i = 1 To 10 a(i); Next i End Sub
Private Sub insertion(sort() As Integer) Dim mid As Integer, left As Integer, right As Integer ub = UBound(sort) If sort(1) > sort(2) Then temp = sort(1) sort(1) = sort(2) sort(2) = temp End If For i = 3 To ub flg = False flg1 = False temp = sort(i) If temp < sort(1) Then flg = True mid = 0 End If left = 1 right = i - 1 Do While left <= right And Not flg mid = Int((left + right) / 2) If sort(mid) = temp Then flg1 = False Exit Do ElseIf sort(mid) < temp Then left = mid + 1 flg1 = False Else right = mid - 1 flg1 = True End If Loop If flg1 Then mid = mid - 1 For j = i - 1 To mid + 1 Step -1 sort(j + 1) = sort(j) Next j sort(mid + 1) = temp Next i End Sub 课后答案网,用心为你服务!
课后答案网,用心为你服务!
19.
Option Explicit Option Base 1 Dim aa(2, 25) As Integer Dim bb(25) As Integer Private Sub C1_Click() Dim v As Integer, y As Integer Dim s As String For v = 1 To 25 If XXX(v) = Val(T1) Then For y = 1 To 25 s = s & Str(bb(y)) Next y End If Next v T2 = s End Sub
Public Function XXX(ByVal num As Integer) As Integer Dim i As Integer, j As Integer, m As Integer, n As Integer Dim ct As Integer, cnt As Integer Dim flag As Boolean '给数组赋初值
给数组赋初值
For i = 1 To 25 aa(2, i) = 1 Next i For j = 1 To 25 aa(1, j) = j
Next j '依次取数,记录取数的序列,并返回最后取到的数值
依次取数,记录取数的序列,并返回最后取到的数值
m = 1 ct = 1 Do If aa(2, num) = 1 Then bb(m) = aa(1, num) m = m + 1 If m > 25 Then Exit Do aa(2, num) = 0 cnt = 0 End If ct = ct + 1 Do While ct <> cnt num = num + 1 If num > 25 Then num = num Mod 25 cnt = aa(2, num) + cnt Loop Loop XXX = bb(25) End Function
20.
Option Explicit Dim ss As String 课后答案网,用心为你服务!
课后答案网,用心为你服务!
Private Sub C1_Click() Call great_zs T1 = ss End Sub
'产生6个不同的数
个不同的数
Public Sub great_zs() Dim shu_1 As Integer, shu_2 As Integer, shu_3 As Integer, shu_4 As Integer, shu_5 As Integer, shu_6 As Integer Dim shu As Single For shu_1 = 1 To 9 For shu_2 = 1 To 9 For shu_3 = 1 To 9 For shu_4 = 1 To 9 For shu_5 = 1 To 9 For shu_6 = 1 To 9 shu = Val(CStr(shu_1) & CStr(shu_2) & CStr(shu_3) & CStr(shu_4) & CStr(shu_5) & CStr(shu_6)) If lala(shu) And zhishu(shu) Then ss = ss + Str(shu) '把满足要求的数记录到变量 ss 中
Next shu_6 Next shu_5 Next shu_4 Next shu_3 Next shu_2 Next shu_1 End Sub
'判断相邻的两个数是否为素数
判断相邻的两个数是否为素数
Public Function zhishu(ByVal zss As Single) As Boolean
Dim i As Integer, jud As Integer For i = 1 To 5 jud = Val(Mid(CStr(zss), i, 1)) + Val(Mid(CStr(zss), i + 1, 1)) If Not Prime(jud) Then Exit Function Next i Function If Not Prime(Val(Mid(CStr(zss), 6, 1)) + Val(Mid(CStr(zss), 1, 1))) Then Exit zhishu = True End Function
'判断素数
判断素数
Public Function Prime(ByVal N As Integer) As Boolean Dim k As Integer For k = 2 To Sqr(N) If N Mod k = 0 Then Exit Function Next k Prime = True End Function
'判断数列中的数是否各不相同
判断数列中的数是否各不相同
Public Function lala(ByVal la As Single) As Boolean Dim i As Integer, j As Integer For i = 1 To 6 For j = 1 To 6 If Mid(CStr(la), i, 1) = Mid(CStr(la), j, 1) And i <> j Then Exit Function Next j 课后答案网,用心为你服务!
课后答案网,用心为你服务!
21.
Next i lala = True End Function Private Sub Command1_Click() Dim i As Integer, x As Double, y As Double, z As Double, a As String a = "574396281" Dim s As String For i = 1 To Len(a) If i = 9 Then x = Val(CStr(Mid(a, i, 2)) & CStr(Left(a, 1))) Else x = Val(Mid(a, i, 2)) End If '////////////////////////////////// If i + 2 <= 7 Then y = Val(CStr(Mid(a, i + 2, 3))) ElseIf i + 2 <= 9 Then y = Val(Mid(a, i + 2, 3) & Left(a, 3 - (9 - (i + 2) + 1))) ElseIf i + 2 > 9 Then y = Val(Mid(a, (i + 2) - 9, 3)) End If '///////////////////////////////////////// If i + 5 <= 6 Then z = Val(Mid(a, i + 5, 4)) ElseIf i + 5 <= 9 Then z = Val(Mid(a, i + 5, 4) & Left(a, 5 - (9 - (i + 5) + 2))) ElseIf i + 5 > 9 Then z = Val(Mid(a, (i + 5) - 9, 4)) End If '//////////////////////////////////////////////////////// If x * y = z Then s = s & Str(x) & "*" & Str(y) & "=" & Str(z) + Chr(13) + Chr(10) Next i Text1 = s End Sub
课后答案网,用心为你服务!
课后答案网,用心为你服务!
1、参见教材P180 2、参见教材P186 3、
第八章
Option Explicit Option Base 1 Dim a(10) As Integer
Private Sub cmd读文件_Click() Dim s As String, i As Integer Open "D:" For Input As #1 For i = 1 To 10 Input #1, a(i) s = s & a(i) & " " Next i Text1 = s Close End Sub
Private Sub Cmd排序_Click() Dim i As Integer, j As Integer, Temp As Integer Dim s As String For i = 1 To 9 For j = i + 1 To 10 If a(i) > a(j) Then Temp = a(i) a(i) = a(j) a(j) = Temp End If Next j Next i For i = 1 To 10 s = s & a(i) & " " Next i Text2 = s End Sub
Private Sub Cmd写文件_Click() Dim i As Integer Open "D:" For Output As #2 For i = 1 To 10 Write #2, a(i); Next i Close End Sub
Private Sub Cmd退出_Click() EndEnd Sub 课后答案网,用心为你服务!
课后答案网,用心为你服务!
1、参见教材P202 2、参见教材P204 3、参见教材P205 4、参见教材P205-206 5、参见教材P207-208 6、参见教材P208-209 7、略
、略
8、下划线为修改后代码
、下划线为修改后代码
第九章
Option Explicit Option Base 1 Private Sub Cmd1_Click() Dim a(10) As Integer, I As Integer, J As Integer Dim b(10) As Integer, K As Integer For I = 1 To 10 a(I) = Int(Rnd * 100) + 1 a(I); Next I J = 1: K = 10 '原 K = 5 For I = 1 To 10 If a(I) Mod 2 = 1 Then '原a(I) Mod 2 = 0 b(J) = a(I) J = J + 1 Else b(K) = a(I) K = K - 1 '原 K = K + 1 End If Next I For I = 1 To 10 b(I); Next I End Sub 9、(1)(2)正确,(3)错误,下划线为修改后代码
下划线为修改后代码
Private Function prime(n As Integer) As Boolean Dim I As Integer prime = False For I = 2 To Sqr(n) If n Mod I = 0 Then Exit For Next I If I > Sqr(n) Then prime = True End Function 10、下划线为修改后代码
、下划线为修改后代码
课后答案网,用心为你服务!
课后答案网,用心为你服务!
Option Explicit
Private Sub Command1_Click() Dim n As Integer, st As Long, fi As Long Dim i As Long 'Integer改为long n = Text1 st = 10 ^ (n - 1): fi = 10 ^ n - 1 For i = st To fi If increase(i) Then m i Next i End Sub
Private Function increase(ByVal n As Long) As Boolean 'al n As Long) As Boolean '加ByVal Dim k As Integer, a() As Integer, i As Integer k = Len(CStr(n)) ReDim a(k) For i = k To 1 Step -1 '加step-1 a(i) = n Mod 10 n = n 10 Next i For i = 1 To k - 1 If a(i) >= a(i + 1) Then Exit Function '将Exit For 改为改为 Exit Function Next i increase = True End Function


发布评论