当前位置:文档之家› 大学计算机vb考试复习题(完整版)

大学计算机vb考试复习题(完整版)

第二部分 练习题
练习题一
一、说明下列哪些是Visual Basic合法的直接常量,并分别指出它们的类型。
1E1 123,456 π
&O78 T -1123! 345.54#
二、下列数据哪些是变量,哪些是常量?是什么类型的常量?
"11/16/99" cj "120" n #11/12/2004#
12.345 True
三、下列符号中,哪些可以是Visual Basic的合法变量名?
x,123 x-123 Exp(x) 变量名 Cosx π
四、把下列数学表达式写成Visual Basic表达式:
(1) (2)
(3)
五、计算下列函数的值:
(1) Lcase("Exercise") (2) Mid("Exercise",3,4)
(3) Left("Exercise",6) (4) Val("23.55fen73")
(5) Str(-543.89) (6) Len("重庆北碚,CHINA")
六、写出下列表达式的值:
(1) #07/29/2006# -11 (2) 123 + 456 & “789”
七、设X=8,Y=4,Z=5,求下列表达式的值(实数保留三位小数):
(1) X/3*4/3 (2) X Mod 4 +Y^4 / Z \ 6

练习题二
一、选择题(每题只有一个正确答案)
1 VB的3种结构化程序设计的3种基本思想是( )
A) 选择结构、过程结构、顺序结构 B) 递归结构、选择结构、循环结构
C) 过程结构、转向结构、递归结构 D) 顺序结构、选择结构、循环结构
2 下面代码可以将变量A、B交换的语句是:( )
A) A=B:B=A B) A=B:B=C:C=A
C) C=A:A=B:B=C D) B=A:A=C:C=B
3 下面代码可以实现数值型变量A、B交换的语句是:( )
A)A=(A+B)/2 : B=(A-B)/2 B) A=B:B=A
C)A=B:B=C:C=A D) A=A+B:B=A-B:A=A-B
4 用InputBox()函数设计的对话框,其功能是( )。
A) 只能接收用户输入的数据,但不会返回任何信息
B) 能接收用户输入的数据,并能返回用户输入的信息
C) 既能用于接收用户输入的信息,又能用于输出信息
D) 专门用于输出信息
5 在默认情况下,InputBox()函数返回值的类型为( )。
A) 逻辑类型 B) 字符串型
C) 数值型 D) 变体类型
6 可以实现从键盘输入一个作为双精度变量a的值的语句是( )。
A) a=InputBox()
B) a=InputBox("请输入一个值")
C) a=Val(InputBox("请输入一个值") )
D) a=Val(InputBox() )
7 在窗体上有一个命令按钮,然后编写如下事件过程
Private Sub Cmdl_Click()
a=InputBox("Enter the First Integer")
b=InputBox("Enter the Second Integer")
Print b + a
End Sub
程序运行后,单击命令按钮,先后在两个输入框中分别输入“2”和“6”,则输出结果为( )。
A) 2 B) 62
C) 8 D) 26
8 在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Comand1_Click()
Dim a As Integer,b As Integer
a=InputBox("Enter the First Integer")
B=InputBox("Enter the Sec

ond Integer")
Print b+a
End Sub
程序运行后,单击命令按钮,先后在两个输入对话框中分别输入“456”和“123”,则输出结果是( )。
A) 579 B) 123
C) 456 D) 123456
9 Print方法可以输出多个表达式值,若使用标准格式输出,各表达式的分割符应是( )
A) 空格 B) 逗号
C) 冒号 D) 分号
10 设有语句:
x=InputBox("输入数值","0","示例")
程序运行后,如果从键盘上输入数值10并按回车键,则下列叙述中正确的是( )。
A) 变量X的值是数值10
B) 在InputBox对话框标题栏中显示的是“示例”
C) 0是默认值
D) 变量X的值是字符串“10”
11 MsgBox函数的返回值的类型为( )。
A) 整型 B) 变体类型
C) 字符串型 D) 日期型
12 以下关于MsgBox的叙述中,错误的是( )。
A)MsgBox函数返回一个整数
B)通过MsgBox函数可以设置信息框中图标和按钮的类型
C)MsgBox语句没有返回值
D)MsgBox函数的第二个参数是一个整数,该参数只能确定对话框中显示的按钮数量
13 执行下面的语句后,所产生的信息框的标题是( )。
a=MsgBox("AAAA",,"BBBB","",5)
A) BBBB B)空 C) AAAA D)出错,不能产生信息框
14 使“计算机技术”在当前窗体上输出的语句是( )。
A) Print "计算机技术" B) Picture1.Print "计算机技术"
C) Printer.Print "计算机技术" D) Debug.Print "计算机技术"
15 设a=6,则执行
x=IIf(a>5,-1,0)
后,x的值为( )。
A)5 B)6 C)0 D)-1
16 运行下列程序段后,显示的结果为( )。
a=23
b=32
If aA) 23 B) 32
C) 55 D) 2332
17 下列程序段执行结果为( )。
x=5
y=-6
If Not x>0 Then x=y-3 Else y=x+3
Print x-y; y-x
A) -3 3 B) 5 -9
C) 3 -3 D) -6 5
18 下列语句正确的是( )。
A) If A≠B Then Print "A不等于B"
B) If A<>B Then Printf "A不等于B"
C) If A<>B Then Print "A不等于B"
D) If A≠B Print "A不等于B"
19 下列程序段的执行结果为( )。
a=95
If a>60 Then I=1
If a>70 Then I=2
If a>80 Then I=3
If a>90 Then I=4
Print "I="; I
A) I=1 B) I=2
C) I=3 D) I=4
20 下列程序段的执行结果为( )。
a=75
If a > 60 Then I=1
If a > 70 Then I=2
If a > 80 Then I=3
If a < 90 Then I=4
Print "I="; I
A) I=1 B) I=2
C) I=3 D) I=4
21 下列程序段的执行结果为( )。
X=2
Y=5
If X * Y < 1 Then Y=Y - 1 Else Y=-1
Print Y - X > 0
A) True B) False
C) -1 D) 1
22 对话框在关闭之前,不能继续执行其他操作,这种对话框属于( )。
A) 输入对话框 B) 输出对话框
C) 模式(模态) 对话框 D) 无模式对话框
23 下面

程序段执行结果为( )。
x=Int(Rnd() + 4)
Select Case x
Case 5
Print "Excellent"
Case 4
Print "Good"
Case 3
Print "Pass"
Case Else
Print "Fail"
End Select
A)Excellent B)Good
C)Pass D)Fail
24 执行下面的程序段后,变量c的值为( )。
a=14
b=30
Select Case b \ 10
Case 0
c=a * 10 + b
Case 1 To 9
c=a * 100 + b
Case 10 To 99
c=a * 1000 + b
End Select
Print c
A) 363 B) 2548
C) 1430 D) 9875
25 以下Case语句中错误的是( )。
A) Case 0 To 10 B) Case Is>10
C) Case Is>10 And Is<50 D) Case 3, 5, Is>10

二、填空题
1 语正确答案是选项句Print"25+32=";25+32的输出结果是 。
2 在一个窗体上有两个命令按钮,CmdMax和CmdMin。单击CmdMax时,窗体上显示"字体由小变大",字号每次增加2;单击CmdMin时,窗体上显示“字体由大变小”,字号每次减小2。请填空。
Private Sub Form_Load()
Form1.Caption="字体变化示范"
CmdMax.Caption="字体变大"
CmdMin.Caption="字体变小"
End Sub
Private Sub CmdMax_Click()

Form1.Print "字体由小变大"
End Sub
Private Sub CmdMin_Click()

Form1.Print "字体由大变小"
End Sub
3 完成下面的程序,使显示结果如下图所示。
Private Sub Form_Click()
FontSize = 18
Sample = " "
x = (ScaleWidth - TextWidth(Sample)) / 2
y = (ScaleHeight - TextHeight(Sample)) / 2
CurrentX = x
CurrentY = y
Sample
End Sub







图4.1 程序运行界面
4 有下面一个程序段,从文本框中输入数据,如果该数据满足条件,除以4余1,除以5余2,则输出,否则,将焦点定位在文本框中,并清除文本框的内容。
Private Sub Command1_Click()
x=Val(Text1.Text)
If Then
Print x
Else
Text1.Text=""

End If
End Sub
5 下面程序的作用是用InputBox()函数输入一个整数,然后判断能否同时被2,5和7整除,如果能则输出该数及平方值。请填空。
Private Sub Command1_Click()
Dim numX As Integer
numX=Val(InputBox("请输入一个整数") )
If Then
Form1.Print
End If
End Sub
6 在有下面一个程序段从文本框中输入数据,如果该数据满足条件,除以6余2,除以5余3,则输出,否则,将焦点定位在文本框中,并清除文本框的内容。
Private Sub Command1_Click()
num=Val(Text1.Text)
If Then
Print num
Else
Text1.Text=""

End If
End Sub
7 下面的程序是计算给定函数的值,自变量x,y的值用InputBox()函数输入,函数如下:

程序不完整,请填空,将程序的补充完整。
Option Explicit
Dim x As Single
Dim y As Single
Dim z As Single
Private Sub Command1_Click()
x=Va

l(InputBox("x=") )
y=Val(InputBox("y=") )
End Sub
Private Sub Command2_Click()
If Then
z=x ^ 2 + y ^ 2
ElseIf Then
z=x ^ 2 - 2 * y ^ 2

z=y ^ 2 - 3 * x ^ 2
End If
Form1.Print "当x,y的值为:"; x, y
Form1.Print "f(x,y) 的值为:"; z
End Sub
8 在窗体上有一个“背景色变换”按钮和一个“结束”按钮。单击“背景色变换”按钮,背景色变为红色;再单击,背景色变为绿色;再单击,背景色变为蓝色;再单击背景色变为红色……如此循环。单击“结束” 按钮,程序运行结束。请填空。
Private Sub CmdChange_Click()
If Mark=0 Then

Mark=1
ElseIf Then
Form1.BackColor=vbGreen
Mark=2
ElseIf Mark=2 Then
Form1.BackColor=vbBlue

End If
End Sub
Private Sub CmdExit_Click()
End
End Sub
9 下列程序的功能是:当x<50时,y=0.8×x;当50≤x≤100时,y=0.7×x;当x>100时,没有意义,请填空。
Private Sub Command1_Click()
Dim x As Single
x=InputBox("请输入x的值!")

Case Is < 50
y=0.8 * x
Case 50 To 100
y=0.7 * x

Print "输入的数据出界!"
End Select
Print x, y
End Sub
10 下面的程序用于根据文本框Text中输入的内容进行以下处理:
若Text为1,则打印“您的成绩为优秀!”;若Text为2,则打印“您的成绩为良好!”若Text为3,则打印“您的成绩为一般”;否则打印“您的成绩一般以下!”,请填空。
Private Sub Command1_Click()
Select Case Val(Text1.Text)
Case
Print "您的成绩为优秀!"
Case
Print "您的成绩为良好!"
Case
Print "您的成绩为一般"
Case Else
Print "您的成绩一般以下!"
End Select
End Sub
11 新建一个工程,内有两个窗体,窗体Form1上有一个命令按钮Command1,单击该按钮,Form1窗体消失,显示Form2窗体,程序如下:
Private Sub Command1_Click()

Form2.
End Sub
试补充完整。
12 本程序的功能是利用随机数函数模拟投币,方法是:每次随机产生一个0或1的整数,相当于一次投币,1代表正面,0代表反面。在窗体上有三个文本框,名称分别是Text1、Text2、Text3,分别用于显示用户输入投币总次数、出现正面的次数和出现反面的次数,如图所示。程序运行后,在文本框Text1中输入总次数,然后单击“开始”按钮,按照输入的次数模拟投币,分别统计出现正面、反面的次数,并显示结果。以下是实现上述功能的程序,请填空。









图4.2 程序运行界面
Private Sub Command1_Click()
Radomize
n=CInt(Text1.Text)
n1=

0
n2=0
For i=1 To
r=Int(Rnd*2)
If r= Then
n1=n1+1
Else
n2=n2+1
End If
Next
Text2.Text=n1
Text3.Text=n2
End Sub
三 程序设计题
1 已知平面坐标系内两点的坐标,求两点间的距离。
2 编写程序,要求用户利用InputBox()函数输入如下信息:姓名、年龄、通讯地址、邮政编码、联系电话,然后将输入的数据用Print方法以适当的格式在窗体上显示出来。
3 编写程序,设计一个退出按钮,根据用户做出的响应来确定是否结束程序(利用MsgBox来设计)。
4 任给定一年,判断该年是否为闰年,并根据给定月份来判断属于哪个季节?(闰年的条件是:年号能被4整除但不能被100整除,或者能被400整除。)
5 从文本框内输入三角形的3条边a、b、c,判断它们是否能构成三角形,如果能,则计算出面积,如果不能,则提示信息。
6 设计一个滚动字幕,其标题为“VB程序设计”,使其能自右向左反复移动,当把鼠标移到该字幕上时,停止移动,同时字体颜色变为红色,移开以后,字幕继续移动,字体变为原来的颜色。
7 在文本框内输入一年中的12个月份,如果输入1、2、3月份,则在标签上显示春季,如果输入4、5、6月份,则显示夏季,如果输入7、8、9月份,则在标签上显示秋季,如果输入10、11、12月份,则显示冬季,其它情况则显示您的输入有误,请重新输入,使用命令按钮的单击事件。
8 利用单选按钮与复选按钮控制文本框内字体的字体与字形。


练习题三
一、选择题
1.以下正确的For…Next结构是
A) For x=1 To Step 10 B) For x=3 To -3 Step -3
… …
Next X Next x
C) For x=1 To 10 D) For x=3 T0 10 Step 3
re:… …
Next x Next Y
If i=10 Then GoTo re
2.假定有以下循环结构
Do Until 条件
循环体
Loop
则正确的描述是
A)如果“条件”是一个为0的常数,则一次循环体也不执行
B)如果“条件”是一个为0的常数,则至少执行一次循环体
C)如果“条件”是一个不为0的常数,则至少执行一次循环体
D)不论“条件”是否为“真”,至少要执行一次循环体
3.下列循环语句能正常结束循环的是
A) I=5 B) I=5
Do Do
I = I + 1 I = I + 2
Loop Until I < 0 Loop Until I =10
C) i=10 D) i=10
Do Do
I=I – 1 I=I-2
Loop Until I < 0 Loop Unt

il I =1
4.假定有以下程序段
For I =l To 3
For J=5 To 1 Step -1
Print I*J
Next J,I
则语句“Print I*J”的执行次数是
A)15 B)16 C)17 D)18
5.以下程序段的输出结果为
X=1
Y=4
Do Until Y>4
X=X * Y
Y=Y + 1
Loop
Print X
A)1 B)4 C)8 D)20
6.执行下面的程序段后,X的值为
X=5
For I=1 To 20 Step 2
X=X+I\5
Next I
A)21 B)22 C)23 D)24
7.下面程序段的运行结果为
Private Sub Command1_Click()
For i = 3 To 1 Step -1
Print Spc(5 - i);
For j = 1 To 2 * i - 1
Print "*";
Next j
Print
Next i
End Sub
A) * B) ***** C) ***** D) *****
*** *** *** ***
***** * * *
8.在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Commandl_Click()
For I = 1 To 4
X=4
For j =1 To 3
X=3
For k=1 To2
X=X+6
Next k
Next j
Next I
Print x
End Sub
程序运行后,单击命令按钮,输出结果是
A)7 B)15 C)157 D)538
9.在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Commandl_Click()
X=0
Do Until x= -1
a=InputBox(“请输入a的值”)
a=Val(a)
b=InputBox(“请输入b的值”)
b=Val(b)
x=InputBox(“请输入X的值”)
X=Val(x)
a=a+b+X
Loop
Print a
End Sub
程序运行后,单击命令按钮,依次在输入对话框中输入 5、4、3、2、1、-1,则输出结果为
A)2 B)3 C)14 D)15
10.阅读下面的程序段:
For i=l To 3
For j=l To i
For k=J To 3
a=a+l
Next k
Next j
Next i
执行上面的3重循环后,a的值为
A)3 B)9 C)14 D)21
11.在窗体上画一个文本框(其Name属性为Textl),然后编写如下事件过程:
Private Sub Form_Load0
Textl.Text=””
Textl.SetFocus
For i=l T0 10
Sum=Sum+i
Next i
Text1.Text=Sum
End Sub
上述程序的运行结果是
A)在文本框Textl中输出55 B)在文本框Textl中输出0
C)出错 D)在文本框Textl中输出不定值
12.在窗体上画两个文本框(其Name属性分别为Textl和Text2)和一个命令按钮(其Name属性为Commandl),然后编写如下事件过程:
Private Sub Commandl_C1ick()
X=0
Do While X<50
X=(X+2)*(X+3)
n=n+l
Loop
Textl.Text=Str(n)
Text2.Text=Str(x)
End Sub
程序运行后,单击命令按钮,在两个文本框中显示的值分别为


A)l和0 B)2和72 C)3和50 D)4和168
13.下列程序当在文本框输入“ABCD”四个字符时,窗体上显示的是
Private Sub Textl_Change()
Print Textl.Text;
End Sub
A) ABCD B) A
B
C
D
C) AABABCABCD D) A
AB
ABC
ABCD
14.下列哪个程序段不能分别正确显示1!、2!、3!、4!的值
A) For I = 1 To 4 B) For I=1 to 4
n=1 For j=1 to I
For j=1 To I n=1
n=n*j n=n*j
Next j next j
Print n Print n
Next I Next I
C) n=1 D) n=1
For j=1 To 4 j=1
n=n*j Do While j <= 4
Print n n=n*j
Next j Print n
j=j+1
Loop
15.假定有以下程序段
For I =l To 5
For J=5 To 1 Step -1
Print J
Next J
Next I
则循环语句执行完后I的值为
A)5 B)6 C)7 D)8
16.假定有如下事件过程:
Private Sub Form_Click()
Dim x As Integer, n As Integer
x = 1
n = 0
Do While x < 28
x = x * 3
n = n + 1
Loop
Print x, n
End Sub
程序运行后,单击窗体,输出结果是
A) 81 4 B) 56 3
C) 28 1 D) 243 5
17.有如下程序:
Private Sub Form_Click()
Dim Check, Counter
Check = True
Counter = 0
Do
Do While Counter < 20
Counter = Counter + 1
If Counter = 10 Then
Check = False
Exit Do
End If
Loop
Loop Until Check = False
Print Counter, Check
End Sub
程序运行后,单击窗体,输出结果为
A) 15 0 B) 20 - 1
C) 10 True D) 10 False
18.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim a As Integer, s As Integer
a = 8
s = 1
Do
s = s + a
a = a-1
Loop While a <= 0
Print s; a
End Sub
程序运行后,单击命令按钮,则窗体上显示的内容是
A)7 9 B) 34 0
C)9 7

D) 死循环
19.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
c = 1234
c1 = Trim(Str(c))
For i = 1 To 4
Print
Next
End Sub
程序运行后,单击命令按钮,要求在窗体上显示如下内容
1
12
123
1234
则在下划线处应填入的内容为
A) Right(c1,i) B) Left(c1,i) C) Mid(c1,i,1) D) Mid(c1,i,i)
20. 在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,然后编写如下事件过程:
Private Sub Command1_Click()
n = Val(Text1.Text)
For i = 2 To n
For j = 2 To sqr(i)
If i Mod j = 0 Then Exit For
Next j
If j > Sqr(i) Then Print i
Next i
End Sub
该事件过程的功能是
A) 输出n以内的奇数 B) 输出n以内的偶数
C) 输出n以内的素数 D) 输出n以内能被j整除的数
二、填空题
1.要使下列For语句循环执行20次,循环变量的初值应当是: 。
For k= To -5 Step -2
2.执行下面的程序段后,s的值为 。
Private Sub Form_Click()
s = 5
For i = 2.6 To 4.9 Step 0.6
s = s + 1
Next i
Print s
End Sub
3.下面程序段显示 个“*”。
For i=l to 5
For J=2 To i
Print “*”;
Next j
Next i
4.以下程序段的输出结果是 。
Private Sub Command1_Click()
num = 0
While num <= 2
num = num + 1
Print num
Wend
End Sub
5.以下程序段所对应的函数表达式是 。
X = InputBox("Enter all Integer")
X = CInt(X)
Select Case X
Case Is <= 0
Y = 0
Case Is <= 10
Y = 5 + 2 * X
Case Is <= 15
Y = X - 5
Case Is > 15
Y = 0
End Select
6.设有以下的循环:
X=l
Do
X=X+2
Print X
Loop Until
程序运行后,要求执行3次循环体,请填空。
7.下列第40句共执行了 次,第41句共执行了 次。
30 For j=1 To 12 Step 3
40 For k=6 To 2 Step -2
41 Print j,k
42 Next k
43 Next j
8.下面程序运行后输出的结果是 。
Private Sub Command1_Click()
For i = 1 To 3
Print Tab(5 * i + 1); "2" + i; "2" & i;
Next i
End Sub
9.下面程序运行后输出的结果是 。
Private Sub Command1_Click()
a$ = "*": B$ = "$"
For i = 1 To 4
If i Mod 2 = 0 Then
X$ = String(Len(a$) + i, B$)
Else
X$ = String(Len(a$) + i, a$)
End If
Print X$;
Next i
End Sub
10.执行下面程序,输出的结果是 。
Option Explicit
Private Sub Form_Click()
Dim i As Integer, j As Integer
j = 10
For i = 1 To j Step 2
i = i + 1
j = j

- i
Next i
Print i, j
End Sub
11.以下程序的功能是:从键盘上输入若干个学生的考试分数,统计并输出最高分数和最低分数,当输入负数时结束输入,输出结果,请填空。
Private Sub Form_Click()
Dim X, amax, amin As Single
X = InputBox("Enter a score")
amax = X
amin = X
Do While
If X > amax Then
amax = X
End If
If Then
amin = X
End If
X = InputBox("Enter a score")
Loop
Print "Max="; amax, "Min="; amin
EndSub
12.阅读以下程序:
Private Sub Form_Click()
Dim k, n, m As Integer
n = 10
m = 1
k = 1
Do While k <= n
m = m * 2
k = k + 1
Loop
Print m
End Sub
程序运行后,单击窗体,输出结果为 。
13.阅读程序:
Private Sub Form_Click()
Dim i As Integer, sum As Integer
sum = 0
For i = 2 To 10
If i Mod 2 <> 0 And i Mod 3 = 0 Then
sum = sum + i
End If
Next i
Print sum
End Sub
程序运行后,单击窗体,输出结果是 。
14.在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
a = 0
For i = 1 To 2
For j = 1 To 4
If j Mod 2 <> 0 Then
a = a十l
End If
a = a + 1
Next j
Next i
Print a
End Sub
程序运行后,单击命令按钮,输出结果是 。
15.以下程序运行后,si、sj, sk、i、J、k的结果分别是 。
Private Sub Command1_Click()
si = 0: sj = 0:
For i = 1 To 2
For j = 1 To i
sk = 0
For k = j To 3
sk = sk + 1
Next k
sj = sj + 1
Next j
si = si + 1
Next i
Print si, sj, sk, i, j, k
End Sub
16.输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“BCDEFG”变换成“GFEDCB”。
Private Sub Commandl_Click()
Dim a$,I%,c$,d$
A=InputBox$(“输入字符串”)
n=
For I = 1 To
c=Mid(a,i,1)
Mid(a,i,1)=
=c
Next I
Print a
End Sub
17.找出被3、5、7除,余数为1的最小的5个正整数。
Private Sub Commandl_Click()
Dim CountN%.n%
CountN=0
n=1
Do
n=n+1
If Then
Print n
CountN=CountN+1
EndIf
Loop
End Sub
18.某次比赛,有七个评委打分,如下程序对一名参赛者,输入七个评委的打分分数,去掉一个最高分、一个最低分后,求出平均分为该参赛者的得分。
Private Sub Command1_Click()
Dim mark!, aver!, i%, max1!, min1!
aver = 0
For i = 1 To 7
mark=InputBox("输入第"&i&"位评委的打分")
If i = 1 Then
maxl = mark:
Else
If mark < min1 Then

ElseIf mark > maxl Then


End If
End If

Next i
aver =
Print aver
End Sub
19.由键盘输入一个正整数,找出大于或等于该数的第一个质数。
Private Sub Commandl_ Click()
Dim m%,x%,Tag As Boolean
Tag=False
x=InputBox(”输入正整数”)
Do While Not Tag
m=2:Tag=
Do While Tag And(m<(x、2))
If X Mod m=0 Then Else
Loop
If Not Tag Then x=x+1
Loop
Print x
End Sub
20.将一个正整数分解为质因数乘积。例如,234=2*3*3*13。
Private sub CommaIldl一Click()
Dim n%.Factor%,First As BooleaJl
n=InputBox(“输人一个正整数”)
Factor=2
First=True
Do
Do While ’内循环考虑到有多个相同的质因数
If First Then
Print n;”=”;Factor;
Else
Print ”*”;Factor;
End If

First=False
Loop
Factor=Factor+1
Loop Until Factor > n
End Sub
三、编程题
1.编写程序计算1+4+7+…+100。
2.一个两位数,其十位数字与个位数字对调得到的数称为其对调数。给定一个两位数56,请找另一个两位的正整数,使得这两个数的和等于各自对调数之和。
3 一个球从100m高度自由下落,每次落地后反弹回原高度的一半,再落下。求它在第10次落地时,共经过多少米?落地10次反弹高度多少?
4 猴子吃桃问题。有一群猴子吃桃,第一天吃了总数的一半又多吃了一颗,第二天吃了剩下的一半又多吃了一颗,第三天如此,……直到第九天,第十天还未吃却只有一个桃子,求原来有多少桃子?
5.给定三角形的3条边长,计算三角形的面积。编写程序,首先判断给出的3条边能否构成三角形,如可以构成,则计算并输出该三角形的面积,否则要求重新输入。当输入-1时结束程序。
6.勾股定理中3个数的关系是:a2+b2=c2。编写程序,输出30以内满足上述关系的整数组合,例如3、4、5就是一个整数组合。
7.分别按以下要求计算ex=1+x/1!+x2/2!+x3/3!+……+xn/n!+……的值(X的值由文本框输入)。
(1)直到第21项。
(2)直到最后一项小于等于10-6。
8. 编写程序,打印如下图的“数字金字塔”:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
……

1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1
9 单击命令按钮,随机产生100个[100,999]之间的三位数,显示在文本框中,并判断这些三位数中的素数,显示

到第二个文本框中。
10.编程实现单击相应的命令按钮输出对应的图案如图所示。

图5.1 打印图案界面



练习题四
一、问答题
1、单文档窗体(SDI)和多文档窗体(MDI)区别是什么?
2、简述普通Windows下的窗口主要组成。
3、简述键盘事件中的KeyPress事件、 KeyDown事件和KeyUp事件。
4、简述鼠标事件中的CLICK、DBLCLICK、MOUSEMOVE、MOUSEDOWN、MOUSEUP事件。
5、简述标签框与文本框的主要用途以及二者之间的区别。
6、简述Line、Shape、Image和PictureBox图像控件。

二、单选题
1. 窗体Forml的(A)属性可以用于取消窗体Forml的的控制菜单和所有的控制按钮。
A. ControlBox B. MinButton C. MaxButton D. BorderStyle
2. 判断窗体Forml当前所处状态,可通过访问窗体Forml的(D)属性来实现。
A. ControlBox B. MinButton C. MaxButton D. WindowState
3. 若要使窗体Forml启动时,位于屏幕的中央,则可窗体Forml的(C)属性来设置。
A. Top B. Left C. StartUpPosition D. WindowState
4. 若要禁止窗体Forml被移动,则可设置窗体Forml的( )属性为False来实现。
A. Move B. Moveable C. Minbutton D. ControlBox
5. 命令按钮Command1的标题欲做快捷键的字母,可通过在其前加上一个(B)符号来设置。
A. \< B. & C. _ D. \>
6. 若要将命令按钮Command1设置为默认按钮,则可设置命令按钮Command1d的( )属性为True来实现。
A. Value B. Cancel C. Default D. Enabled
7. 若要设置光标停留在命令按钮Command1的提示文字,则可通过它的( )属性来设置。
A. Caption B. Text C. Value D. ToolTipText
8. 若要设置图形命令按钮的背景图形,则可通过( )属性来设置。
A. DownPicture B. DisabledPicture C. Picture D. Image
9. 若要使用标签框成为透明,则可通过设置( )属性来实现。
A. BackColor B. BackStyle C. BorderStyle D. ForeColor
10. 标签框文本的对齐方式由( )属性值决定。
A. Align B. Alignent C. Autosize D. BackStyle
11. 在运行时,若要获得用户在文本框中所选择的文本,可通过访问()属性来实现。
A. SelStart B. SelLength C. Text D. SelText
12. 若要设置定时器控件的定时时间,可通过( )属性来设置。
A. Interval B. value C. Enabled D. Text
13. 若要在图片框中绘制一个椭圆,则可使用( )方法来实现。
A. Circle B. Line C. Point D. Pset
14. 若要获得图片框中某一点的颜色值,则可通过( )方法来实现。
A. Circle B. Line C. Point D. Pset
15. 若要列表框以水平滚动的多列方式显示列表项,可通过设置列表框对象的( )属性来实现。
A. Columns B. MultiSelect C. Style D. List
16. 若要获知当前列表项的数目,可通过访问( )属性来实现。
A. List B. ListIndex

C. ListCount D. Text
17. 若要向列表框新增列表项,则可使用的方法是( )。
A. Add B. Remove C. Clear D. AddItem
18. 用户在组合框中所输入的数据,可通过访问组合框对象的( )属性来获得。
A. List B. ListIndex C. ListCount D. Text
19. 复选框或单选框的当前状态可通过( )属性来设置或访问。
A. Value B. Checked C. Selected D. Caption
20. 激活属性窗口使用的键是(C )
A.F2 B.F3 C.F4 D.F5

三、填空题10道题
1. 为了把一个窗体装入内存,所使用的语句是_______;而为了清除内存中指定的窗体,所使用的语句是_______。
2. 与键盘操作有关的事件有KeyPress、KeyUp和KeyDown事件,当用户按上并且释放一个键后,这三个事件发生的顺序是_______、_______及_______。
3. 在键盘和鼠标事件中,转换键Shift Ctrl 和Alt 键对应的Shift值分别是_____ 、______ 、______。
4. 为了使用户自定义的鼠标光标,应该首先把对象的_____属性设置为_______,然后把对象的_______属性设置为一个图标文件。
5. 如果要使用命令按钮表面显示文字“退出(X)”(在字符X之下加下划线),则其Caption属性设置为___________,其括号中的X表示在运行时按下____________键与单击该按钮效果相同.
6. 所有控件都具有的共同属性是__________________属性。
7. 一般情况下,控件有两个属性项的缺省值是相同的,这两个属性项是_______________。
8. 列表框控件不支持Click事件,但支持_______________事件。
9. 滚动条控件主要支持两个事件,它们是_______________事件。
10. 要使鼠标停留在按钮上显示特殊的鼠标形状,应设置的属性值是_________________。

四、运行程序写出最后结果
1. 在窗体Forml上设置一个标签Label1和一个图片框Picture1两个控件,然后编写如下两个事件过程:
Private Sub Form_Click()
Label1.Caption = "Hello world"
End Sub
Private Sub Label1_Change()
Picture1.Print "Visual Basic"
End Sub
程序运行后,单击窗体,则在文本框中显示的内容是 ,而在图片框中显示的 内容是 。

2. 在窗体Forml上画一个文本框、一个标签和一个命令按钮,其名称分别为Text1、Label1和Command1,然后编写如下两个事件过程:
Private Sub Command1_Click()
Char$ = InputBox("请输入字符串:")
Text1.Text = Char$
End Sub
Private Sub Text1_Change()
Label1.Caption = UCase(Mid(Text1.Text, 3))
End Sub
程序运行后,单击命令按钮,将显示一个输入对话框,如果在该对话框中输入字符串"Mycomputer",则在标签中显示的内容是 ,文本框中显示的内容是 。

3. 把窗体Forml的KeyPreview属性设置为True,然后编写如下两个事件过程:
Private Sub Form_KeyDown(KeyCode As

Integer, Shift As Integer)
Print Chr(KeyCode)
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Print Chr(KeyAscii)
End Sub
程序运行后,如果直接按键盘上的"A"键(即不按住Shift键),则在窗体上输出的字符分别是 和 。

4. 在窗体上画一个文本框Text1,然后编写如下事件过程:
Private Sub Form_Load()
Text1.Text = ""
For i = 1 To 10
Sum = Sum + i
Next i
Text1.Text = Sum
End Sub
上述程序的运行的结果是:在文本框Text1中输出______。

5. 程序运行时连续三次单击Command1,且设输入的数是3,5和7时,分别写出文本框text1.text的值为:______、______、______。
Private Static Sub Command1_Click()
Dim x As Integer, y As Integer
y = Val(InputBox("请输入一个正整数:"))
If y <= 5 Then
x = x * y
Else
x = x + y
End If
Text1.Text = "x=" + Str(x)
End Sub

五、完善程序填空
1. 建立一个工程,该工程包括两个窗体,分别为Form1和Form2,启动窗体为Form1。在Form1中添加一个命令按钮Command1,程序运行后,要求当单击该命令按钮时,Form1窗体消失,显示窗体Form2。请将下列程序补充完整。
Private Sub Command1_Click()
______ Form1
Form2.______
End Sub

2. 有如下程序代码,程序运行后,把鼠标光标移到窗体Form1内,每单击一次,变换一 种鼠标光标的形状,依次显示鼠标光标的15个属性。请将下列程序补充完整。
Private Sub Form_Click()
Static x As Integer
Cls
Print "当前的鼠标指针属性为:"; x
Form1. = x
x = x + 1
If x = 15 Then x = 0
End Sub

3. 在窗体Form1上设置命令按钮Command1,标签Label1,设置文体框Textl。程序运行期间,在文本框Textl输入一个负数,然后按下Command1按钮,则在标签Label1中将输出该数的绝对值及信息。请在划线处填入适当的内容,将程序补充完整。(要求不用取绝对值函数)
Private Static Sub Command1_Click()
Dim x As Single
x = Val(Text1.Text)
Label1.Caption = "x=" & x
If x < 0 Then
Label1.Caption = ", x的绝对值是" & x
End Sub

4. 在窗体Form1上放置了一个滚动条HScroll1和一个标签控件Label1,要使每次单击滚动条两端箭头时,或单击滚动条滑块与两端箭头之间的空白区域时,标签内容能够反映滚动条的值,补齐以下代码。
Private Sub
Label1.Caption = HScroll1.
End Sub
只有拖动滚动条的滑块时,滚动条的值才被反映在标签内容中,补齐以下代码。
Private Sub
Label1.Caption = HScroll1.
End Sub

5. 在窗体Form1上添加一个滚动条控件HScroll1和一个文本框控件Text1,用HScroll1的Value属性值作为Text1中文本内容的字体大小,当单击滚动条的箭头或拖动滚动框时,改变文本框中文本的字体大小。
Private Sub HScroll1_Change()
Text1.Tex

t = "Visual Basic"

End Sub

练习题五

一、选择题
1. 以下说法正确的有 (多选)
(A) 使用ReDim语句将释放动态数组所占的存储空间
(B) 使用ReDim语句也可以保留动态数组中原有的内容
(C) 使用Erase语句将释放动态数组所占的存储空间
(D) 使用Erase语句将释放固定大小数组所占的存储空间
2. 假定建立了一个名为Command1的命令按钮数组,则以下说法中错误的是 。
(A) 数组中每个命令按钮的名称(Name属性)均为Command1
(B) 数组中每个命令按钮的大小都一样
(C) 数组中所有命令按钮可以使用同一个事件过程
(D) 在代码中访问任意一个命令按钮只需使用名称Command1
3. 下列语句中的 语句可以用来正确声明一个动态数组。
(A) Private A(n) As Integer
(B) Dim A() As Integer
(C) Dim A(,) As Integer
(D) Dim A(1 to n)
4. 下列程序段错误的是 。
(A) Dim a As Integer
a = array(1,2,3,4)
(B) Dim a(),b()
a = array(1,2,3,4):b = a
(C) Dim a As Variant
a = array(1,"asd",true)
(D) Dim a() As Variant
a = array(1,2,3,4)
5. 要存放如下方阵的数据,在不浪费存储空间的基础上,能实现声明的语句是 。
1 2 3
2 4 6
3 6 9
(A) Dim A(9) As Integer
(B) Dim A(3,3) As Integer
(C) Dim A(-1 to 1,-3 to -1) As Single
(D) Dim A(-3 to -1,1 to 3) As Integer
6. 以下定义数组或给数组元素赋值的语句中,正确的是 。
(A) Dim a As Variant
a=Array(1,2,3,4,5)
(B) Dim a(10) As Integer
a=Array(1,2,3,4,5)
(C) Dim a%(10)
a(1)="ABCDE"
(D) Dim a(3),b(3) As Integer
a(0)=0
a(1)=1
a(2)=2
b=a
7. 在窗体上画三个单选按钮,组成一个名ChkOption的控件数组。用于标识各个控件数组元素的参数是 。
(A) Tag (B) Index (C) ListIndex (D) Name

二、给出下列程序段的运行结果
1.
Dim A(4) as integer
N=3
A(1)=1
For I=0 To N-1
For J=1 To I+1
x=I+2-J
A(x)=A(x)+A(x-1)
If IPrint A(x);
Next J
Next I
2.
Dim A(3,4)
For I=1 To 3
For J=1 To 4
A(I,J)=(I-1)*2+J
Print A(I,J);
Next J
Print
Next I
3.
Option Explicit
Option Base 1
Private Sub Command1_Click( )
Dim I As Integer, J As Integer, s As Integer
Dim D As Variant
D=Array(5,6,7,8)
J=1
For I=UBound(D) To LBound(D) Step -1
s=s+D(I)*J
J=J*10
Next I
Print s
End Sub
4.
Dim A() As Integer
Private Sub Command1_Click()
ReDim A(1 To 5)
For I=1 To 5
A(I)=I
Next I
ReDim Preserve A(1 To 10)
For I=6 To 10
A(I)=2*I
Next I
For I=1 To 10
Print A(I);
Next I
End Sub
5.
Dim A(5,5) as Integer
For I=1 to 5
For J=1 to 5
A(I,J)=I-J
Print A(I,J)
Next J
Print
Next I
For Each X In A
S=S+A
Next X
Print “S=”;S

三、程序填空题
1. 以下程序代码实现单击命令按钮

Command1时生成20个(0,100)之间的随机整数,存于数组中,打印数组中大于50数,并求这些数的和。
Private Sub Command1_Click( )
Dim arr(1 To 20)
For I=1 To 20
arr(I)= (1)
Text1.Text=Text1.Text & arr(I) & Chr(13) & Chr(10)
Next I
Sum=0
For Each x= (2)
If x>50 Then
Print Tab(20);x
Sum= (3)
End If
Next (4)
Print Tab(20); "Sum=";Sum
End Sub
2. 设在窗体上有一个文本框Text1,一个标签数组Label1,共有10个标签,以下程序代码实现在单击任一个标签时将标签的内容添加到文本框现有内容之后。
Private Sub Label1_Click(Index As Integer)
Text1.Text= (1)
End Sub
3.下述程序的功能是实现矩阵的转置(即行列转换)。阅读下列程序,请在空格处填入相应的语句,使之完成上述功能。
Option Explicit
Option Base 1
Private Sub Command1_Click( )
Dim IAs Integer,JAs Integer,D1() As Integer,D2() As Integer
Dim m As Integer, n As Integer
m=InputBox("输入数组行数")
n= InputBox("输入数组列数")
(1) D1(m,n) As Integer, D2(n,m) As Integer
For I=1 To m
For J=1 To n
D1(I,J)=Int(Rnd*90)+10
Print D1(I,J);
Next J
Print
Next I
For I=1 To (2)
For J=1 To (3)
(4)
Next J
Next I
For I=1 To n
For J=1 To m
Print D2(I,J);
Next J
Print
Next I
End Sub
4. 下述程序的功能是随机产生10个两位整数并输出,然后进行排序并输出,请在空格处填入相应的语句,使之完成上述功能。
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim D() As Integer, I As Integer, J As Integer, k As Integer
Randomize
For I=1 To 10
(1)
D(I)=Int(90*Rnd)+10
Print D(I)
Next I
Print
For I=1 to 9
For J= (2) To 10
If D(I)>D(J) Then
k=D(I)
D(I)=D(J)
D(J)=k
End If
Next J
Print D(I)
Next I
Print (3)
End Sub
5. 某数组有20个元素,元素的值由键盘输入,要求将前10个元素与后10个元素对换。即第1个元素与第20个元素互换,第2个元素与第19个元素互换,.....,第10个元素与第11个元素互换。以下程序完成元素的互换,并输出数组原来各个元素的值和对换后各元素的值。

Private Sub Command1_Click()
Dim x(1 To 20) As Single
Label1.Caption = ""
Label2.Caption = ""
n = 20
For I = 1 To n
x(I) = Val(InputBox("第" & I & "个数:"))
Label1.Caption = Label1.Caption & x(I) & " "
Next I

For I = 1 To (1)
t = x(I)
(2)
(3)
Next I
For I = 1 To n
Label2.Caption = Label2.Caption & x(I) & " "
Next I
End Sub

四、编程题
1. 找出二维数组n×m中的“鞍点”。所谓鞍点是指它在本行中值最大,

在本列中值最小。输出鞍点的行、列号,有可能在一个数组中找不到鞍点,如无鞍点则输出“无”。
2. 单击窗体时,找出200以内的所有素数,并按每10个一行的形式显示在窗体上。
3. 创建图形控件数组Shape1,包含6个圆,当按下“移动”按钮时,所有圆全部向下移动100缇,当移动到窗体底部时,返回窗体顶部。


练习题六
一、单一选择题:
1.关于顺序文件的理解,下列正确的是
A、文件中每条记录的长度按从小到大排列 B、优点之一是对记录可以方便存取
C、适合于数据不经常修改的情况 D、文件组织结构复杂
2.关于随机文件的说法,正确的是
A、文件中每条记录的记录号按从小到大排列,但记录号可以重复
B、特点是不能灵活存取和增减数据
C、每条记录不一定有相同的数据结构
D、每条记录长度相同
3.双击文件列表框中的某个文件来执行,可以在代码中使用下面哪个命令
A、Shell B、Show C、Do D、Open
4.下面 属性用来设定文件列表框中所显示的文件类型。
A、Name B、Path C、Filter D、Pattern
5. 函数用来判断文件是否结束。
A、LOE B、BOF C、LOF D、EOF
6.要读入顺序文件“D:\test.txt”,下列语句正确的是
A、Open "D:\test.txt" for Input as #1 B、Open "D:\test.txt" for Output as #1
C、Open D:\test.txt for Output as #1 D、Open D:\test.txt for Random as #1
7.下列哪条语句可以在D:\新建一个名为“test.txt”的文件
A、Open "D:\test.txt" for Input as #1 B、Open "D:\test.txt" for Output as #1
C、Open D:\test.txt for Output as #1 D、Open D:\test.txt for Append as #1
8.执行语句“Print #1, "Name"; 35; -50” ,其写入文件中内容是
A、Name,35,-50 B、Name34-50
C、Name 35 -50 D、" Name" 35 -50
9.执行语句“Write #1, "Name"; 35; -50” ,其写入文件中内容是
A、"Name",35,-50 B、"Name" "34" "-50"
C、"Name","35","-50 " D、" Name" 35 -50
10.对随机文件的进行操作时候,每条记录由多个数据项构成,一般将这些数据类型定义为:
A、记录类型 B、字符串类型 C、变体类型 D、一维数组
11.设有语句Open "D:\Test.Txt" For Output As #1,则以下错误的叙述是
A、如果D盘根目录没有文件Test.Txt,则出错
B、该语句建立的文件的文件号为1
C、该语句打开文件Test.txt后,不能用Line Input语句读出文件里边的内容
D、执行该语句后,就可以通过Write #语句向文件Test.txt中写入信息
12.以下叙述中错误的是
A、用Shell函数可以调用能够在Windows下运行的应用程序
B、用Shell函数可

以调用Visual Basic的内部函数
C、调用Shell函数的格式应为:<变量名>=Shell (……)
D、用Shell函数不能执行DOS命令
13.目录列表框的Path属性的作用是
A、显示当前驱动器或指定驱动器上的目录结构
B、显示当前驱动器或指定驱动器上的某目录下的文件名
C、指出要显示的文件类型
D、显示驱动器名
14.执行语句Open "T1.dat" For Random As #11 Len = 65后,对文件T1.dat中的数据能够执行的操作是
A、只能写,不能读 B、只能读,不能写
C、既可以读,也可以写 D、不能追加新记录
15.LOF()函数返回的是文件
A、二进制位数 B、字节数 C、行数 D、记录数
16.文本文件一般是
A、随机文件 B、顺序文件 C、二进制文件 D、程序文件
17.Print #1语句的功能是
A、在文件中写入空格字符 B、在文件中写入空行
C、错误语句 D、在屏幕上输出1号文件的内容
18.使用语句打开Open "D:\Example.txt" for Input As #1文件后,要将文件内容一个字符一个字符地读入到文本框中,应使用下列哪条语句
A、Do While Not EOF(1)
Temp = Input(1, #1)
Text1.Text = Text1.Text & Temp
Loop
B、Do Until EOF(1)
Line Input #1, Temp
Text1.Text = Text1.Text & Temp & Chr(13) & Chr(10)
Loop
C、Do Until EOF(1)
Line Input #1, Temp
Text1.Text = Text1.Text & Temp & vbCrLf
Loop
D、Text1.Text = Input$(LOF(1),1)
19.定义变量A%,B$,C为日期型,假设文件中有内容“100 张三 #2001-08-03#”执行语句Input As #1,A,B,C后,A,B,C三个变量值分别是
A、100 100 100 B、100 张三 20010803
C、100 张三 #2001-08-03# D、为空
20.关于Close(关闭文件)语句,说法错误的是
A、结束文件的各种操作后,必须使用该语句关闭文件
B、其关闭实质是把文件缓冲区中的所有数据写到文件中
C、文件关闭时释放与文件关联的文件号
D、一条Close语句不能同时关闭多个文件
二、填空题:
1.Visual Basic中Kill语句的功能是
2.为了使驱动器列表框Drive1、目录列表框Dir1二者同步,需要在Dir1的 事件中输入代码
3.设置指定文件号中下一个读/写位置,使用的关键字是
4.一次读取一行文件,使用的命令关键字是
5.文件号最大可取
6.可以认为二进制文件是数据记录的长度为
7.全局自定义数据类型一般在 中定义。
8.在Open语句中,对顺序文件只能使用Input,Output,和 三种模式
9.Print #1, "Mike"; Spc(10); "010********"语句中,Spc(10)作用是
10.随机文件中第一个记录号为


三、程序阅读题:
1.写出程序运行时单击窗体后,文件a1.dat中的结果。
Private Sub Form_Click()
Dim i %,b1 %,b2 %,b3%
Open "c:\a1.dat" For Output As #1
b1 = 2: b2 =3
Print #1,b1; " " ;b2
For i = 3 To 4
b3 = b1 * b2
Print #1, i; " " ;b3
b1 = b2: b2 = b3
Next i
Close #1
End Sub
2.写出程序运行时单击命令按钮Command1后,文件a1.txt中的结果
Private Sub Command1_Click()
Dim i%, j%
Open "d:\a1.txt" For Output As #1
For i = 0 To 2
j = 2 - i
Print #1, Tab(15 - i); String(i * 2 + 1, Chr(i + 65)); Spc(3); String(j * 2 + 1, Chr(j + 65))
Next i
Close #1
End Sub
3.写出程序运行时单击命令按钮Command1后,文件a2.txt中的结果
Private Sub Command1_Click()
Open "d:\a2.txt" For Output As #1
For i = 1 To 3
Call a(i)
Next i
Close #1
End Sub
Private Sub a(ByVal k)
Dim i As Integer
For i = 1 To k: Print #1, k + i;: Next i
Print #1,
End Sub
4.下列程序段代码功能是:
Private Sub a(ByVal name1 As String, ByVal name2 As String)
Dim Temp$
Open name1 for Append as #1
Open name2 for input as #2
Do until Eof(2)
Line Input #2,Temp
Print #1,Temp
Loop
Close #1,#2
End sub
5.假设自定义类型 type studentType,变量Temp定义为studentType,有下列代码:
Private Sub b(filename As String, rec_no As Integer)
Dim all%, i%, j%, temp As studenttype
Open filename For Random As #1 Len = Len(temp)
all = LOF(1) / Len(temp)
For i = all To rec_no Step -1
Get #1, i, temp
j = i + 1
Put #1, j, temp
Next i
Close #1
End Sub

四、程序完善题:
1.界面上有一按钮Command1,点击时将InputBox输入框中输入的内容放入文本文件“D:\A.txt”中,当每行超个5项时就自动换行,当遇到“Over”时,结束输入。补充完程序代码。
Private Sub Command1_Click()
Dim temp$, i%
Open "d:\A.txt" For (1)
i = 1
temp = InputBox("输入end结束")
Do While temp <> "end"
(2)
If i mod 5=0 Then
(3)
i = 1
Else
i = i + 1
End If
temp = InputBox("输入end结束")
Loop
Close #1
End Sub
2.下列代码建立文件系统控件之间的关联,当双击文件列表框中的文件时,把文件的全名(包括路径)写入标签Label1中,如果是Word文档,则把Word软件(C:\Program Files\Microsoft Office\OFFICE11\Winword.exe)打开。
Private Sub Dir1_Change()
(4)
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub File1_DblClick()
Dim Sourfile As String, i%
If Right(Dir1.Path, 1) <> "\" Then '判断文件是否在根目录
Sourfile = (5) '文件不在根目录
Else
Sourfile = Dir1.Path & File1.FileName '文件在根目录
En

d If
Label1.Caption= (6)
If Lcase(right(File1.FileName,4)) = ".doc" then
i= (7)
End if
End Sub
3.假设文件t1.txt保存整数,下列代码从文件t1.txt中读取整数(假设用逗号分隔)到数组a()中,将这些数按从小到大排序后重新写入到文件t2.txt,请完善代码。
Private Sub Command1_Click()
Dim a1() As Integer
i = 1
Open "d:\t1.txt" For Input As #1
Open "d:\t2.txt" For Output As #2
Do While Not EOF(1)
ReDim Preserve a1(i)
(8)
i = i + 1
Loop
(9)
For i = 1 To UBound(a1())
(10)
Next i
Close #1, #2
End Sub
Private Sub sort(a%())
Dim imin%, n%, i%, j%
n = UBound(a())
For i = 1 To n - 1
imin = i
For j = i + 1 To n
If a(j) < a(imin) Then imin = j
Next j
t = a(i)
a(i) = a(imin)
a(imin) = t
Next i
End Sub
4.假设自定义数据类型type fruittype,包括水果名称(name),分级(level),价格(price),规定水果基价为一级果价格,每级水果价格是下一级价格的1.25倍,比如一级果是二级果的1.25倍。点击Command1后,把随机文件“D:\T14.dat”中指定记录号的水果信息显示在Form中,并根据输入的基价自动根据水果分级计算出水果价格,并保存,然后再显示修改后的结果。
Private Sub Command1_Click()
Dim s1 As fruittype, (11) , record%
record = InputBox("输入记录号")
Open "d:\t4.dat" For Random As #1 Len = Len(s1)
(12)
Print https://www.doczj.com/doc/5216322733.html,, s1.level, s1.price
baseprice = InputBox("输入" + https://www.doczj.com/doc/5216322733.html, + "基价:")
s.price = baseprice / (1.25 ^ (s1.level - 1))
(13)
Get #1, record, s2
Print https://www.doczj.com/doc/5216322733.html,, s2.level, s2.price
Close #1
End Sub
5.设计一个在名为filename的文本文件中查找关键字s的过程,如果找到,就输出该关键字个数,否则输出“没有找到!”
Private Sub find(ByVal filename As String, s As String)
Dim temp$, total%, i%, j%, lens%
total = 0
Open (14) For Input As #1
Do While (15)
Line Input #1, temp
Lens = Len(s)
i = InStr(temp, s)
Do While i > 0
total = total + 1
(16)
i = InStr(j, temp, s)
Loop
Loop
Close #1
If (17) Then MsgBox ("共找到关键字" & s & "有" & total & "个") Else MsgBox ("没有找到!")
End Sub

练习题七
一、单一选择题:
1.下面 可以改变坐标的度量单位。
A、Scale方法 B、ScaleMode属性 C、DrawStyle属性 D、BorderStyle属性
2.重定义坐标系使用
A、Scale方法 B、ScaleMode属性 C、DrawStyle属性 D、BorderStyle属性
3.下面 属性用来设置边框类型。
A、FillStyle B、BorderWidth C、DrawWidth D、BorderStyle
4.用来设置所绘线条宽度的属性是
A、DrawWidth B、Bor

derWidth C、DrawStyle D、BorderStyle
5.下面关于颜色的设置,正确的是
A、Form1.BackColor=RGB(128,0,256) B、Form1.BackColor=QBColor(16)
C、Form1.BackColor= HFF0000 D、Form1.BackColor=vbGreen
6.系统自动控制图形重绘的属性是
A、AutoSize B、Stretch C、AutoRedraw D、 Enabled
7.对画出的图形进行填充,使用的属性是 。
A、FillStyle B、FillColor C、BackStyle D、ForeColor
8.在图形控件Picturebox 的属性中,可以决定控件是否自动改变大小的属性是
A、 Picture B、Caption C、Autosize D、Stretch
9.窗体中有一PICTURE1 (图形框)和一 COMMAND1 (按钮)控件,单击按钮则装入 D:\T1.JPG 图片的代码为
A、PICTURE1.PICTURE="D:\T1.JPG "
B、 PICTURE1.PICTURE=D:\T1.JPG
C、 PICTURE1.PICTURE=LOADPICTURE("D:\T1.JPG ")
D、 PICTURE1.PICTURE=LOADPICTURE(https://www.doczj.com/doc/5216322733.html,)
10.不能作为容器使用的对象是
A、窗体 B、框架 C、图形框 D、图像框
11.指令“Line (500,500) - (1000,1500)”执行后,CurrentY=
A、500 B、1500 C、1000 D、0
12.指令“Form1.Circle(500,500),300, , , , 2”的功能是在窗体上画出
A、圆 B、圆弧 C、椭圆 D、扇形
13.下列指令错误的是
A、Line (500,500) - (1000,1000), , B
B、Line (500,500) - (1000,1000), RGB(255,0,0), B
C、Line (500,500) - (1000,1000), , F
D、Line (500,500) - (1000,1000), ,BF
14.语句“Circle(1500,1500),800,,-3.14159/3,-3.1415926/2”绘制的是 。
A、弧 B、椭圆 C、扇形 D、圆
15.对DrawWidth进行设置后,将影响
A、Line、Circle、PSet、Point方法 B、Line控件、Shape控件以及Picture控件
C、Line、Circle、PSet方法 D、Line控件、Shape控件
16.CLS方法可以清除窗体或图片框中的
A、设计时放置的控件 B、运行时候所产生的图形和文字
C、设计时在Picture中所加载的背景图案 D、所有内容
17.关于Shape控件说法错误的是
A、Shape控件可以画出6种不同图形
B、Shape控件形状通过Shape属性设置
C、对Shape控件的FillColor设置颜色后,效果是对控件进行实心填充
D、Shape控件画出的图形用Circle方法不一定能画出
18.关于Image控件说法正确的是
A、通过Print方法可以在其中输出其他图形,也可以输出文本
B、清空Image控件中图形的方法之一是加载一个空图形
C、Image控件比PictureBox控件占用内存比多
D、用AutoSize属性可以自动调整Image控件中图形的大小
19.如果在图片框上使用绘图方法绘制一个圆,则图片框的 属性不会对该圆的外观产生影响。
A、BackColor B、ForeColor C、DrawWidth D、DrawStyle
20.用图形方法Line来

相关主题
文本预览