文档库

最新最全的文档下载
当前位置:文档库 > 第4章习题答案

第4章习题答案

第4章课外练习参考答案

一、判断题

1.命令按钮不但能响应单击事件,而且还能响应双击事件。×

2.如果命令按钮Default属性为True,那么任何时候按Enter键都相当于单击该命令按钮。√

3.标签控件和文本框控件都能用来输入和输出文本。×

4.虽然标签控件显示的文本在运行时不能编辑,但是可以通过程序代码进行改变。√

5.SetFocus方法是把焦点移到指定对象上,使对象获得焦点,该方法适用于所有控件。×

6.文本框控件常用事件有Change事件、KeyPress事件等,此外它也支持鼠标的Click 事件和DblClick事件。√

7.运行时,控件的位置可以通过程序代码改变Left和Top属性来定位,也可以直接用鼠标拖动控件来定位。×

8.要在文本框中输入6位密码,则文本框的MaxLength属性可设置为6。√

9.要使输入文本框的字符始终显示“#”,则应修改其PasswordChar属性为“#”。√

10.在窗体上建立的控件的标题文字或显示内容的默认字体为窗体字体。√

11.单选钮能响应Click事件,但不能响应KeyPress事件。×

12.使用单选钮控件数组时,它们响应同一个Click事件,由Index参数值来区分不同的按钮。√

二、选择题

1.标签控件的标题和文本框控件的显示文本的对齐方式由C属性来决定。

A、WordWrap

B、AutoSize

C、Alignment

D、Style

2.将命令按钮Command1设置为窗体的取消按钮,可修改该控件的D属性。

A、Enabled

B、Value

C、Default

D、Cancel

3.下列B属性用来表示标签或窗体的标题。

A、Text

B、Caption

C、Left

D、Name

4.将焦点主动设置到指定的控件或窗体上,应采用 B 方法。

A、SetDate

B、SetFocus

C、SetText

D、GetGata

5.按Tab键时,焦点在各个控件之间移动的顺序是由B属性来决定的。

A、Index

B、TabIndex

C、TabStop

D、SetFocus

6.下列C属性用来表示各对象(控件)的位置。

A、Text

B、Caption

C、Left

D、Name

7.当文本框的B属性设置为True时,在运行时文本框不能编辑。

A、Enabled

B、Locked

C、Visible

D、MultiLine

8.要使文本框显示滚动条,除了设置ScrollBars属性外还必须设置B属性。

A、AutoSize

B、MultiLine

C、Alignment

D、Visible

9.文本框控件Text4的Text属性默认值为A。

A、Text4

B、"Text4"

C、Locked

D、Name

10.文本框中选定的内容,由下列A属性来反映。

A、SelText

B、SelLength

C、Text

D、Caption

11.要使复选框控件不响应Click事件,可设置复选框的C属性。

A、Appearance

B、Style

C、Enabled

D、TabIndex

12.若要在同一窗体中安排两组单选钮,可用B控件予以分隔。

A、文本框

B、框架

C、标签

D、菜单

三、填空题

1.如果字符“Y”是某个命令按钮的访问键,在设计时,设置命令按钮的Caption属性时要在字符“Y”前输入&;运行时,可以通过按Alt + Y键代替按钮的单击操作。

2.运行时,若需要命令按钮为灰色,即禁用,在设计时可以通过Enabled属性来实现。

3.对文本框中输入的字符数需加以限定时,应使用文本框的MaxLength属性来设置。

4.把焦点移到文本框Text1中的语句为Text1.SetFocus。

5.MultiLine属性决定文本框是否可以接受多行文本。

6.要让控件隐藏起来,处于不可见状态,可修改其Visible属性。

7.要使输入文本框的字符靠右对齐,可修改文本框的Alianment属性。

8.要使标签的大小随Caption属性做自动调整,应修改其AutoSize属性。

9.对象的标题或文字的颜色是由ForeColor属性决定的。

10.运行时单击单选按钮,将使单选钮的Value值取True。

四、程序阅读题

1. 请写出单击窗体后,窗体上的显示结果。

Private Sub Form_Click()

Dim a(5) As Byte, i As Byte

a(0) = 1

For i = 1 To 5

a(i) = a(i - 1) + i: Print a(i);

Next i

End Sub

2 4 7 11 16

2. 在Text1、Text2中输入96、40,单击Command1后,窗体上显示的结果是什么?

Private Sub Command1_Click()

Dim a As Long, b As Long, r As Long

a = Text1.Text:

b = Text2.Text

Do While b <> 0

r = a Mod b: a = b: b = r

Loop

Print a

End Sub

8

3. 在文本框中输入字符“12345”,按下回车键后,标签控件中的输出是什么?

Private Sub Text1_KeyPress(KeyAscii As Integer)

Dim a As String * 1, b As String, n As Byte, i As Integer

If KeyAscii = 13 Then

b = Text1.Text: n = Len(b)

For i = 1 To n \ 2

a = Left(b, 1)

b = Right(b, n - 1) & a

Label1.Caption = Label1.Caption & b & Chr(13) & Chr(10)

Next i

End If

End Sub

若Label1原来为空:

23451

34512

五、程序填空题

1.以下程序产生30个两位随机整数、并按从小到大的顺序存入数组a中,再将其中的奇数按从小到大的顺序在窗体中用紧凑格式输出,请补充程序空白的部分代码。

Private Sub Form_Click()

Dim a(30) As byte, i as Byte, j As Byte, m As Byte

For i = 1 To 30: a(i) = Int(Rnd*90+10) : Next i

For i = 1 To 29

For j = i +1 To 30

If a(i) > a(j) Then

m = a(i): a(i) = a(j) : a(j) = m

End If

Next j,i

For i = 1 To 30

If a(i) Mod 2 =1Then Print a(i);

Next i

End Sub

2.以下程序在单击窗体后输出6~100之间所有整数的质数因子,请补充程序空白的部分代码。

Private Sub pp(ByeVal k As Integer)

Dim i As Integer

i = 2

While k > 1

If k Mod i = 0 Then

Print i;

k = k \ i

Else

i = i + 1

End If

Wend

Print

End Sub

Private Sub Form_Click()

For i = 6 To 100 : Call pp(i) :Next i

End Sub

3.下列过程用选择法对double类型数组按值从小到大排序,请补充程序空白的部分代码。

Private Sub Sort( a() Aa Double )

Dim i As Integer, j As Integer, k As Integer, t As Double

For i = 1 To n - 1

k=i

For j = i + 1 To n

If a(j) < a(k) Then k = j

Next j

t=a(i): a(i)=a(k): a(k)=t

Next i

End Sub

六、程序设计题

1.编程,查看所按键的ASCII码:在文本框控件内输入某个字符,用标签控件显示输入字符的ASCII码。

Private Sub Form_Load()

Text1.MaxLength = 1: Text1.Text = ""

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

Label1.Caption = CStr(KeyAscii)

End Sub

2.编程,添加1个文本框用于输入口令(显示为“*”,按回车键作为结束)、1个命令按钮(标题为“进入”)。运行时,“进入”按钮不能响应,直到输入的口令正确时才响应。输入口令时,有相应的提示信息。当单击“进入”按钮时,在窗体上显示“欢迎进入!”。

Const pwd As String = "123456" '预设密码为123456 Private Sub Command1_Click()

Cls: Print "欢迎进入!"

End Sub

Private Sub Form_Load()

Command1.Caption = "进入": Command1.Enabled = Falsew

Text1.Text = "": Text1.PasswordChar = "*"

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Text1.Text = pwd Then

m = MsgBox("口令正确,欢迎进入!"): Command1.Enabled = True Else

m = MsgBox("口令错误,请重新输入!"): Text1.Text = ""

End If

End If

End Sub

3.编制一个演示文本操作的程序,界面如图4-15所示,要求将3个命令按钮做成一个控件数组。

(1)程序刚启动时3个命令按钮均不能响应(禁用)。

(2)当选中文本框中的一块文本之后,在下方的Label1中显示相应的提示,同时激活“剪切”和“复制”按钮。

(3)单击“剪切”或“复制”按钮后,所有按钮中只有“粘贴”按钮能响应。

(4)单击“粘贴”按钮后,3个命令按钮都不能响应。

第4章习题答案

图4-15 程序设计题5的窗体界面

Private Sub Form_Load()

Command1(0).Enabled = False: Command1(1).Enabled = False

Command1(2).Enabled = False: Label1.Caption = ""

End Sub

Private Sub Command1_Click(Index As Integer)

Select Case Index

Case 0

Clipboard.Clear: Clipboard.SetText Text1.SelText

Text1.SelText = "": Label1.Caption = "请选择要粘贴的位置!"

Command1(0).Enabled = False: Command1(1).Enabled = False Command1(2).Enabled = True

Case 1

Clipboard.Clear: Clipboard.SetText Text1.SelText

Label1.Caption = "请选择要粘贴的位置!": Command1(0).Enabled = False

Command1(1).Enabled = False: Command1(2).Enabled = True Case Else

Text1.SelText = Clipboard.GetText(): Form_Load

Label1.Caption = "粘贴完成!"

End Select

End Sub

Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, _ X As Single, Y As Single)

Dim n As Integer

n = Text1.SelLength

If n > 0 Then

Label1.Caption = "选择了" & n & "个字,请选择下一步操作!"

Command1(0).Enabled = True: Command1(1).Enabled = True

Else

Label1.Caption = ""

End If

End Sub