当前位置:首页 > 职场法规 > 东北林业大学VB期末考试复习题

东北林业大学VB期末考试复习题

时间:2023-05-18 23:00:13

  笔试复习题

  笔试占总分的50%、平时占10%、上机占40%。

  笔试时间为1小时。四道大题为:程序填空、程序运行结果、程序段功能、编程题

  复习范围

  随机整数[A,B]

  公式:Int(Rnd*(B-A+1)+A) 1. 循环

  (1)打印三角形 方法一:用单重循环 Private Sub Form_Click() For i = 1 To 8

  Print Tab(15 - i); String(2 * i - 1, "*") Next i End Sub

  方法二:用多重循环 Private Sub Form_Click() For i = 1 To 8 Print Tab(15 - i); For j = 1 To 2 * i - 1 Print "*"; Next j Print Next i End Sub

  (2)求积数部分和

  P88 例4.18 p268 习题3 Private Sub Form_Click() Dim s!,i%,t! i=1:t=2:s=1

  Do while 1/t>0.0001

  s=s+1/t i=i+1 t=t+i Loop

  Print "共计算";i-1; "项" Print "s=";s End Sub

  (3)求100到200之间的所有素数。 Private Sub Form_Click() Dim t As Boolean

  For x = 101 To 200 Step 2 t = True

  For i = 2 To x - 1

  If x Mod i = 0 Then t = False Next i If t Then k = k + 1 Print x;

  If k Mod 10 = 0 Then Print End If Next x End Sub

  (4)最大公约数、最小公倍数 P87 例4.17

  (5)水仙花数 P269 6 Private Sub Form_Click() For i = 100 To 999 x =i \ 100

  y = i \10 mod 10 z = i mod 10

  If i = x * x * x + y * y * y + z * z * z Then Print i, End If Next i End Sub

  (6) 最大值、最小值。P271 实验1 2. 数组 (1)排序

  P106 例5.5 从小到大排序

  Private Sub Form_Click()

  - 1 -

  Dim a() As Integer n = Val(InputBox("n")) ReDim a(1 To n) As Integer Randomize For i = 1 To n

  a(i) = Int(Rnd * 101 + 100) Print a(i);

  If i Mod 10 = 0 Then Print Next i

  For i = 1 To n - 1 k = i

  For j = i + 1 To n

  If a(k) > a(j) Then k = j Next j

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

  For i = 1 To n Print a(i);

  If i Mod 10 = 0 Then Print Next i End Sub

  (2)杨辉三角形 P273 6 Private Sub Picture1_Click() Dim s(20, 20) As Integer n = Val(Text1.Text) Picture1.Cls For i = 1 To n

  s(i, 1) = 1: s(i, i) = 1 Next i

  For i = 3 To n For j = 2 To i - 1

  s(i, j) = s(i - 1, j - 1) + s(i - 1, j) Next j Next i

  For i = 1 To n For j = 1 To i

  Picture1.Print Tab(13 - 2 * i + 4 * j); s(i, j); Next j

  Picture1.Print Next i End Sub 3. 过程

  (1)s=4!+5!+6!

  Private Sub Form_Click()

  Print fax(4) + fax(5) + fax(6) End Sub

  Private Function fax(k As Integer) As Single t = 1

  For i = 2 To k t = t * i Next i fax = t

  End Function

  (2)回文数 P278 4

  Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then

  If Not IsNumeric(Text1) Then

  MsgBox "输入非数字串,重新输入" Text1.Text = "" Text1.SetFocus Else

  If IsH(Text1) Then

  Picture1.Print Text1; " ★ " Else

  Picture1.Print Text1 End If Text1 = "" End If End If End Sub

  Function IsH(ss As String) As Boolean Dim i%, Ls% IsH = True ss = Trim(ss) Ls = Len(ss)

  For i = 1 To Ls \ 2

  If Mid(ss, i, 1) <> Mid(ss, Ls + 1 - i, 1) Then IsH = False Exit Function End If Next i End Function 4. 文件 文件

  输入:由键盘输入5个学生信息保存到随机文件D:\TT\T.DAT中

  每个学生包括学号、姓名、总分 显示:显示不及格的学生信息

  - 2 -

  修改:将不及格的学生成绩增加5分

  Private Type Xs Xh As String * 6 Xm As String * 6 Cj As Integer End Type

  Dim Xs0 As Xs

  Private Sub Command1_Click() ‘写入内容 Dim I%

  Open "D:\TT\T.DAT" For Random As #1 Len = Len(Xs0)

  For I = 1 To 5

  Xs0.Xh = InputBox("XH") Xs0.Xm = InputBox("XM") Xs0.Cj = Val(InputBox("CJ")) Put #1, , Xs0 Next I Close #1 End Sub

  ‘输出小于60分的学生信息 Private Sub Command2_Click() Dim I%

  Open "D:\TT\T.DAT" For Random As #1 Len = Len(Xs0)

  For I = 1 To LOF(1) / Len(Xs0)

  Get #1, , Xs0

  If Xs0.Cj < 60 Then

  Print Xs0.Xh, Xs0.Xm, Xs0.Cj End If Next I Close #1 End Sub

  ‘将不及格的成绩加5分

  Private Sub Command3_Click() Dim I%

  Open "D:\TT\T.DAT" For Random As #1 Len = Len(Xs0)

  For I = 1 To LOF(1) / Len(Xs0) Get #1, , Xs0

  If Xs0.Cj< 60 Then Xs0.Cj = Xs0.Cj + 5 Put #1, Seek(1) - 1, Xs0 End If Next I Close #1 End Sub

  注:Seek(1) 1,表示将记录指针移到当前修改的记录上。

  - 3 -