2010VB本科期末上机考试练习题答案

更新时间:2023-11-27 11:00:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、 单击窗体在窗体上输出10个两位随机整数,并求出其平均数。运行效果如下图所示:

Private Sub Form_Click()

Dim a(10) As Integer, i As Integer, s As Integer For i = 1 To 10

a(i) = Int(Rnd * (99 - 10 + 1)) + 10 s = s + a(i) Print a(i) Next i

Print \平均数为\End Sub

2、 随机产生20个200~400之间的随机整数,按每行5个输出到窗体上,并求出其中的最大值。

Private Sub Form_Click()

Dim i As Integer, a(20) As Integer, max As Integer Print \原始数据为:\ max = 0

For i = 1 To 20

a(i) = Int(Rnd * (400 - 200 + 1)) + 200 Print a(i);

If i Mod 5 = 0 Then Print If max < a(i) Then max = a(i) Next i

Print \最大值为:\ End Sub

3、 产生20个两位的随机整数,输出这20个数(以每行5个的形式输出这20个数,其中的偶数用红色显示),找出其中的最大值和最小值,计算并输出平均值。运行效果如下图所示:

Private Sub Form_Click()

Dim a(20) As Integer, i As Integer, max As Integer, min As Integer, s As Integer

Print \原数组为:\ max = 0 min = 100

Form1.ForeColor = vbBlack For i = 1 To 20

a(i) = Int(Rnd * (99 - 10 + 1)) + 10 If a(i) Mod 2 = 0 Then Form1.ForeColor = vbRed Else

Form1.ForeColor = vbBlack End If

Print a(i); 先变色,再输出 If i Mod 5 = 0 Then Print s = s + a(i)

If max < a(i) Then max = a(i) If min > a(i) Then min = a(i) Next i Print

Form1.ForeColor = vbBlack Print \ Print \ Print \End Sub

4、 产生10个随机两位正整数,放入一数组中,并按从小到大的顺序排列。在窗体上输出原数据及排列后的数据。运行效果如下图所示:

Private Sub Form_Click()

Dim a(10) As Integer, i As Integer, j As Integer, b As Integer Print \排序前的数据:\ For i = 1 To 10

a(i) = Int(Rnd * (99 - 10 + 1)) + 10

Print a(i); Next i Print

For i = 1 To 9

For j = i + 1 To 10 If a(i) > a(j) Then b = a(i) a(i) = a(j) a(j) = b End If Next j Next i

Print \排序后的数据:\ For i = 1 To 10 Print a(i); Next i End Sub

5、 新建一个工程,完成应用程序的设计。具体要求如下:

(1) 按照下图所示在窗体上放置控件。建立一个文本框和两个命令按钮。 (2) 在文本框中输入内容,单击“开始”后,把文本框中的字符按从小到大排列输出在窗体上,按结束退出应用程序。

text1.Multiline = true text1.ScrollBars = 3 文

本框滚动条

Private Sub Command1_Click()

Dim a() As String, i As Integer, j As Integer, b As String, n As Integer n = Len(Text1.Text) ReDim a(1 To n) For i = 1 To n

a(i) = Mid(Text1.Text, i, 1) Next i

For i = 1 To n - 1 For j = i + 1 To n If a(i) > a(j) Then b = a(i) a(i) = a(j) a(j) = b End If Next j Next i

For i = 1 To n Print a(i); Next i End Sub

6、 建立一个5行5列二维数组,要求对角线为1,其余元素为0。运行结果如图所示。

Private Sub Form_Click()

Dim a(5, 5) As Integer, i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5

If i = j Or i + j = 6 Then a(i, j) = 1 Else

a(i, j) = 0 End If

Print a(i, j); Next j

Print 放在Next j 下面 换行效果 Next i End Sub

7、 建立一个5行5列二维数组,要求右上三角元素(含对角线)为1,其余元素为0。

Private Sub Form_Click()

Dim a(5, 5) As Integer, i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5

If i <= j Then a(i, j) = 1 Next j Next i

For i = 1 To 5 For j = 1 To 5 Print a(i, j); Next j

Print Next i End Sub

8、 编制程序,用随机函数产生20个两位数的整数,存于4行5列的二维数组中,将数组按矩阵形式输出到窗体,并求出其最大元素及最大元素的行、列坐标。

Private Sub Form_Click()

Dim a(4, 5) As Integer, max As Integer, i As Integer, j As Integer, h As Integer, l As Integer Randomize

For i = 1 To 4 For j = 1 To 5

a(i, j) = Int(Rnd * (99 - 10 + 1)) + 10 Print a(i, j); Next j Print Next i

max = a(1, 1) h = 1 l = 1

For i = 1 To 4 For j = 1 To 5

If a(i, j) > max Then max = a(i, j) h = i l = j End If Next j Next i

Print \最大元素为: \位于第\行\列\End Sub

9、 编制通用函数过程,计算1+2+??+N 的值。在窗体的Click事件中调用该函数。

Private Function sum(n As Integer) As Integer Dim i As Integer For i = 1 To n sum = sum + i Next i End Function

Private Sub Form_Click() Dim n As Integer

n = InputBox(\请输入N的值\

Print \??+\的和是\sum(n) End Sub

10、 编制通用函数过程,计算N!的值。在窗体的Click事件中调用该函数。 Private Function s(n As Integer) As Double Dim i As Integer s = 1

For i = 1 To n s = s * i Next i

End Function

Private Sub Form_Click() Dim n As Integer

n = InputBox(\请输入N 的值\ Print s(n) End Sub

11、 编制通用函数过程,用于判断1个整数是否为素数,若是则显示true,若不是则显示false。在窗体的Click事件中调用该函数。 Private Function sushu(n As Integer) As Boolean Dim i As Integer If n < 2 Then sushu = False Else

For i = 2 To Int(Sqr(n)) ‘int 求不大于这个数的最大整数 int(3.5)=3 int(-3.5)=-4 sqr 平方 这个数如果能被自己的平方根整除 那它一定是素数 If n Mod i = 0 Then Exit For Next i

If i > Int(Sqr(n)) Then sushu = True Else

sushu = False End If End If End Function

Private Sub Form_Click() Dim n as integer

n = inputbox(“请输入N的值”) print sushu(n) End Sub

12、 编制一个判断奇偶数的Function函数过程。在窗体的Click事件中调用该函数,输入一个整数,判断其奇偶性。

Private Sub Form_Click() Dim n As Integer

n = InputBox(\请输入要判断的n的值\ If a(n) = True Then Print n & \是奇数\ Else

Print n & \是偶数\ End If End Sub

Private Function a(n As Integer) As Boolean If n Mod 2 = 0 Then a = False Else

a = True End If

End Function

13、 新建一个工程,完成应用程序的设计,具体要求如下: (1) 按照下图所示在窗体上放置按钮和控件。 (2) 取消窗体的最大化和最小化按钮。 (3) 当单击命令按钮时,实现窗口放大功能,放大后再单击该按钮则还原窗口。 (4) 同时可使用热键Alt+L和Alt+B实现窗口放大或还原。 (5) 当窗体大小改变后,总是让命令按钮位于窗口的中央。

Private Sub Command1_Click()

If Command1.Caption = \最大化(&L)\ Command1.Caption = \最小化(&S)\ Form1.WindowState = 2 Else

Command1.Caption = \最大化(&L)\ Form1.WindowState = 1 End If End Sub

Private Sub Form_Load()

Command1.Caption = \最大化(&L)\End Sub

Private Sub Form_Resize()

Command1.Left = (Form1.ScaleWidth - Command1.Width) / 2

Command1.Top = (Form1.ScaleHeight - Command1.Height) / 2 End Sub

14、 新建一个工程,完成“计算平均成绩”应用程序的设计。具体要求如下: (1) 按照下图所示在窗体上放置按钮和控件。 (2) 在输入或修改单科成绩的同时计算平均分,即在\高数\英语\和\计算机\文本框内容发生改变时,就要立即重新计算平均分,并将计算结果在平均成绩文本框中显示。

(3) 平均成绩”文本框不允许编辑,即不能手工修改。

(4) 各单科成绩框中只能输入数字,不能输入字母或汉字,否则不显示字母并发出错误提示音。

Private Sub Form_Load() Text4.Enabled = False End Sub

Private Sub Text1_Change()

Dim a As Integer, b As Integer, c As Integer, p As Integer a = Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) p = (a + b + c) / 3 Text4.Text = p End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End Sub

Private Sub Text2_Change()

Dim a As Integer, b As Integer, c As Integer, p As Integer a = Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) p = (a + b + c) / 3 Text4.Text = p End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 Beep End Sub

Private Sub Text3_Change()

Dim a As Integer, b As Integer, c As Integer, p As Integer a = Val(Text1.Text) b = Val(Text2.Text)

c = Val(Text3.Text) p = (a + b + c) / 3 Text4.Text = p End Sub

Private Sub Text3_KeyPress(KeyAscii As Integer)

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End Sub

15、 新建一个工程,完成“密码检验”程序的设计。具体要求如下:

(1)参照运行时界面完成界面设计。(2)文本框Text1,用于输入密码。文本框中输入的字符显示为*,并且最多可以接受7个字符。(3)窗体的下半部有一个标签控件Label2,用来显示密码输入后的提示信息。(4)当在文本框中输入密码“1234567”,并按回车后,标签Label2显示为“欢迎光临!”;如果输入的密码与“1234567”不吻合,标签Label2显示为“密码不符,请再输入一遍!”,同时清空文本框的内容,允许再输入一遍;如果第二次输入的密码仍然与“1234567”不吻合,标签Label2显示为“非法用户,请退出程序!”,文本框就不能使用了。

Private Sub Form_Load()

Label1.Caption = \输入密码后按回车\vbCrLf & \(提示:密码1234567)\’换行输入

Text1.PasswordChar = \文本框中输入的字符显示为* Text1.MaxLength = 7 最多可以接受7个字符 End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer) Static n As Integer 记录次数

If KeyAscii = 13 Then 最后按回车进行判断 If Text1.Text = \ Label2.Caption = \欢迎光临!\ Label1.Visible = False Text1.Visible = False Else

n = n + 1

Label2.Caption = \密码不符,请再输入一遍!\ Text1.Text = \

If n > 1 Then 第二次输入

Label2.Caption = \非法用户,请退出程序!\ Text1.Enabled = False End If End If End If

End Sub

16、 新建一个工程,完成“检查口令”程序的设计。具体要求如下:

(1) 单击“开始”按钮,清除文本框中的信息,并把光标移到第一个文本框中;接着在第一个文本框中输入用户名,第二个文本框中输入口令。

(2) 单击“检查口令”按钮,检查输入的口令是否正确。若正确,则进入如下的第二个窗体,在该窗体上装有一幅图片 ;否则显示一个信息框,要求重新输入,此时将调用“开始”按钮的click事件过程,再一次在文本框中输入口令,这样允许重输三次口令,超过三次,则口令文本框将转为不能编辑。 (3) 单击“结束”按钮,结束程序。

Dim n As Integer

Private Sub Command1_Click() Text1.SetFocus 获得焦点 Text1.Text = \ Text2.Text = \End Sub

Private Sub Command2_Click()

If Text1.Text = \ Me.Hide

Form2.Show 图片显示 Else

Text1.Text = \ Text2.Text = \ n = n + 1

If n > 3 Then

MsgBox \你是非法用户\ Text1.Enabled = False Text2.Enabled = False Else

MsgBox \口令错误,请再次输入!\

Call Command1_Click 返回command1 End If End If End Sub

Private Sub Command3_Click() End End Sub

本文来源:https://www.bwwdw.com/article/8yet.html

Top