当前位置:文档之家› 江苏省VB教材课后习题参考答案

江苏省VB教材课后习题参考答案

1、B

2、A

3、B

4、答:属性:红色、充满氢气;事件:松手、针刺;方法:飞走、爆破。

5、答:事件是指对象能够识别并作出反映的外部刺激。事件驱动又称消息驱

动,事件驱动程序设计是指每个事件对应有相应的程序代码,仅在该事件发生时,该段代码才会被执行。事件发生的顺序决定了代码执行的顺序,因此每次执行应用程序时,程序代码并不是按照程序编写的顺序来执行的。

6、答:VB是一个包括界面设计、程序编码、调试、编译并创建可执行程序的

集成开发环境。VB的集成开发环境的主界面中包含:标题栏、菜单栏、工具栏、控件箱、工程资源管理器、属性窗口、“窗体布局”窗口、窗体设计器、代码编辑器等元素组成。

7、答: VB菜单条通常情况下有:文件、编辑、视图、工程、格式、调试、运

行、查询、图表、工具、外接程序、窗口、帮助等13项菜单项组成。

8、答:工具栏可自行定义。标准工具栏中通常情况下有:添加标准exe工程、

添加窗体、菜单编辑器、打开工程、保存工程、剪切、复制、粘贴、查找、撤消、重复、启动、中断、结束、工程资源管理器、属性窗口、窗体布局窗口、对象浏览器、工具箱、数据视图窗口、可视化元件管理器等按钮组成。

9、答:创建VB应用程序的一般步骤为:创建界面;设置窗体和控件属性;编

写代码;保存工程;运行并调试程序;检查并排除错误;创建可执行文件。

10、

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;

第三章

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 https://www.doczj.com/doc/3f8899524.html, = "宋体"

Label2.Refresh

End Sub

Private Sub Option5_Click()

If Option5.Value Then https://www.doczj.com/doc/3f8899524.html, = "隶书"

Label2.Refresh

End Sub

Private Sub Option6_Click()

If Option6.Value Then https://www.doczj.com/doc/3f8899524.html, = "黑体"

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,"程序示例"

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(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

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

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

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

相关主题
文本预览
相关文档 最新文档