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

Print

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