本试题由刘海博同学提供,考试没考到请找刘海博同学负责。
答案由耿小超同学提供,仅供参考,如有问题责任自负。
填空
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
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
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”表示结束),把及格的和不及格的成绩分别存放在数组a和b中,并以每行5 个数据的形式输出数组a和b。
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 "及格:"
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