本试题由刘海博同学提供,考试没考到请找刘海博同学负责。

答案由耿小超同学提供,仅供参考,如有问题责任自负。

 

填空

1、在名称为Form1的窗体上画一个文本框,其名称为Text1,在属性窗口中把该文本框的MultiLine属性设置为True,然后编写如下的事件过程:
Private Sub Form_Click()
 Open "d:"test"smtext1.txt" For Input As #1
 Do While Not
      EOF(1)

Line Input #1, aspect$
 whole$ = whole$ + aspect$ + Chr$(13) + Chr$(10)
 Loop
 Text1.Text = whole$

 Close #1
 Open "d:"test"smtext2.txt" For Output As #1
 Print #1,
       Text1.Text

 Close #1

End Sub

上述程序的功能是,把磁盘文件smtext1.txt的内容读到内存并在文本框中显示出来,然后把该文本框中的内容存入磁盘文件smtext2.txt。请填空。

2、设工程中包含一个窗体模块和一个标准模块,在标准模块中的过程用于求m行n列二维整型数组a各行元素的和,并将和存于一维整型数组b中。窗体模块中的代码实现单击窗体时生成(0,10)之间的随机整数,存于5行6列的二维整型数组x中,并以5行6列的形式显示在窗体上,调用标准模块中的过程求每行元素的和,并输出求和结果。

标准模块代码:

Sub asum(m,n,a,b)

 For i=1 to m

     b(j)=0

     for j=1 to n

       b(i)=b(i)+a(i,j)

     next j

 next i

end sub

窗体模块代码:

Private sub form_click( )

 Dim x(5,6) as integer,y(5) as integer

 For i=1 to 5

     For j=1 to 6

       x(j,j)=int(rnd*9+1)

       Print ______x(i,j)

     Next j

         Print                   

 Next i

Call asum(5,6,     x,y    )

For i=1 to 5

 Print y(i)

Next i

End sub

3、在c盘文件夹下建立一个名为Data.txt的顺序文件。要求用文本框输入若干英文单词,每次按下回车键时写入一条记录,并清除文本框中的内容,直至在文本框text1中输入“END”时为止。

 

Private sub Form_Load( )

     Open “c:"Data.text” For Output As #3

     Text1.text=””

 End sub

 Private sub Text1_keyPress(KeyAscii as Integer)

     If keyAscii=13 then

       If          Text1.Text=“END” Then

                Unload Me

         End

       Else

                 Print #3, Text1.Text

         Text1.text=””

       End If

     End If

 End sub

 

写程序运行结果

1

Private Sub s(x As Single, y As Single)

t = x 

x = t / y

y = t Mod y

End Sub

Private Sub Command1_Click()

Dim a As Single

Dim b As Single

    a = 5

b = 4

    s   a, b

    Print a, b

End Sub

单击命令按钮Command1之后的运行结果是         1.25      1

2

 Private Sub form_click( )

     Dim a(3,3)as integer,i as integer,j as integer,k as integer

k=1

     For i=1 to 3

       For j=1 to 3

a(i,j)=k

         k=k+1

     Next j,i

     For i=1 to 3

       Call change(a(),i)

     Next i

     For i=1 to 3

       For j=1 to 3

         Print a(i,j)

       Next j

       print

     Next i

 End sub

 Private Sub change(a( )as integer,i as integer )

     c=a(i,UBound(a))

     For k=UBound(a)-1 to 1 step -1

       a(i,k+1)=a(i,k)

Next k

     a(i,1)=c

 End sub

程序运行后,单击窗体时的输出结果是   3 1 2 

                                 6 4 5

                                     9 7 8  

3

 

在窗体上画一个命令按钮(Name属性为Command1),然后编写如下代码,程序运行后,单击命令按钮,输出结果是什么?1 2 3 2 4 6

Private Sub Command1_Click()

  Dim a(5, 5)

  For i = 1 To 3

  For j = 1 To 4

   a(i, j) = i * j

  Next j

  Next i

  For n= 1 To 2

  For M = 1 To 3

   Print a(M, n);

  Next M

  Next n

End Sub

 

 

 

程序设计

1、            通过输入对话框输入一批成绩(以输入“-1表示结束),把及格的和不及格的成绩分别存放在数组ab中,并以每行5 个数据的形式输出数组ab

 

Private Sub Command1_Click()

    Dim a%(), b%(), hs$, i&

    ReDim a(0)

    ReDim b(0)

    Do

        i = i + 1

        hs = Val(InputBox("输入成绩:", i))

        If hs = "-1" Then Exit Do

        If hs < 60 Then

            ReDim Preserve a(UBound(a) + 1)

            a(UBound(a)) = hs

        Else

            ReDim Preserve b(UBound(b) + 1)

            b(UBound(b)) = hs

        End If

    Loop

    Print "不及格:"

    For i = 1 To UBound(a)

        If (i - 1) Mod 5 = 0 And i <> 1 Then Print

        Print a(i);

    Next

    Print

    Print "及格:"

    For i = 1 To UBound(b)

        If (i - 1) Mod 5 = 0 And i <> 1 Then Print

        Print b(i);

    Next

End Sub

2编写程序,完成所述功能:利用label控件数组和Timer控件实现“VB编程俱乐部”的霓虹灯效果。

要求(1)“VB编程俱乐部”几个字存放在Label控件数组中。

      2)每隔一秒钟显示一个字,逐个显示。

      3)全部显示完后,就进入下一轮的显示。

 

Timer控件的Interval属性设为1000

 

Dim i As Integer

Dim j As Integer

 

Private Sub Timer1_Timer()

For j = 0 To 4

Label1(j).Visible = False

Next j

 

If i < 4 Then

i = i + 1

Label1(i).Visible = True

Else

i = -1

End If

End Sub

posted on 2008-01-17 11:21  超少  阅读(897)  评论(3编辑  收藏  举报