资源描述
VB期末考试试题(A卷)
一、 选择题
1.要改变控件的宽度,应修改该控件的( B )属性。
A、TOP B、width C、Left D、Height
2.将命令按钮Command1设置为不可见,应修改该命令按钮的( A )属性。
A、Visible B、Value C、Caption D、Enabled
3.单机滚动条两端的任何一个滚动箭头,将触发该滚动条的( C )事件。
A、Scroll B 、KeyDown C、change D、Dragver
4.( D )对象具有clear方法。
A、图片框 B、窗体 C、复选框 D、列表框
5.中心定义图片框控件的坐标系统,可采用该图片框的( A )
A、scale B、Scale X C、scale Y D、setFocus
6.将通过对话框CommdDialog1的类型设置成另存为对话框,可调用该控件的( B )方法。
A、Showopen B、Showsave C、ShowColor D、ShowFont
7.形状控件所显示的图形不可能是( D )
A、圆 B、椭圆 C、圆角正方形 D、等边三角形
8.由Fro K=10 TO oslept 3:next K循环语句控件的循环次数是( B )
A、12 B、0 C、-11 D、-10
9.下列数据类型中,占用内存最大值是( D )
A、Boolwan B、Byte C、Lnteger D、Single
10.如果在图片框上使用绘图方法绘制一个实心圆,则图片框的( C )属性决定了该图片的颜色。
A、BackColro B、Forelklor C、Fillcolor D、Dlawstyle
一、 选择题
1.要在垂直位置上移动控件,应利用控件的( C )属性。
A、Left B、Width C、Top D、Height
2.要在文本框中的文本显示掩码(密码)符,在属性设置时,首先必须设置( D )属性为False。
A、Txet B、Enabled C、Visible D、Multline
3.用键盘的光标键选中某一菜单项,并按回车触发菜单的( C )的事件。
A、KeyPress B、KeyDown C、Click D、Keyllp
4.一下( D )对象不具有Clear方法。
A、列表框 B、组合框 C、剪贴框 D、图片框
5.软件列表中设定“文件列表”显示文件类型应改该控件的( D )属性。
A、Path B、FileName C、Name D、Patterw
6.组合框有三种风格,它们由Style属性所决定,其中为简单组合框时,Style属性值应为( B )
A、0 B、1 C、2 D、3
7.下列可调整图片框的大小以适合图片的属性是( B )
A、Stretch B、autosize C、picture D、oledropmode
8.要想清除文本框中的内容则可利用( A )进行。
A、Caption B、Text C、Clear D、Cls
9.下列表达式中,其值为0的是( C )
A、7/9 B、7mod 15 C、7\9 D、15 mod 9
10.求以10 为底X的常用对数的表达式为( A )
A、LoG(X)/LoG(10) B、LN(X) C、LoG(X)/LoG(E) D、LoG(X)
二、 填空题(每空2分,共20分)
1.代数式 的Visual Basic 表达式是 sqr((x^3+exp(-6)*log(y))*atn(a*3.14159/180)/(x*x+y*y))
2.设x=2,y=4,a=4,b=6,表达式 (a>x Xor b<x) OR x<y IMP y<b 的结果为True。
3.a 和b 中有仅只有一个不为1,相应的Visual Basic逻辑表达式为 a<>1 xor b<>1。
4.把条件为1£ x £ 5 写成VB表达式为: x>=1 and x<=5。
5. 语句Line(1000,1000)-Step(2000,1500),vbRed,BF的含义是:在窗体上绘制以角点为(2000,2000)和(4000,3500)的红色实心的矩形。
6.用随机函数产生10个100~500的整数,其表达可为:for I=1 to 10
a(i)=100+int(400*rnd)
next I。
7.当x=2时,语句if x=2 then Print x=2 的结果值是 True。
8. Static Private Sub cmdSum_Click()
Dim Sum as integer
Sum=2*Sum+1
End Sub
问:第三次单击命令按钮cmdSum后,Sum的值为: 7。
9.声明单精度常量g(重力加速度)代表9.8可写成:const g=9.8。
10.欲使在自己设计VB程序运行过程中,不中止本程序的运行,同时又可调用系统中已有的应用程序c:\windows\notepad.exe,可在程序代码窗口必要的地方添加语句:shell(“c:\windows\notepad.exe”)。
三、编程题
1随机产生n个两位正整数(n由对话框输入,切n>0)。求出其中的偶数之和,并在标签框Labol1上显示。
程序写在命令按钮Command1的click事件中。
Private Sub Command1_Click()
Dim n As Integer
Dim i As Integer, sum As Long
n = Val(InputBox("Please input a integer", "Input N value"))
For i = 1 To n
rnddat = (10 + Int(90 * Rnd))
If rnddat Mod 2 = 0 Then
sum = sum + rnddat
End If
Next i
Label1.Caption = sum
End Sub
2由输入对话框中输入100个数值数据,放入数组a,将其中的整数放入数组b,然后运用选择分类将数组b中的数据按从大到小的顺序排列,并以每行5个数据在窗体上输出。
注:程序写在窗体form的click事件上。
Private Sub Form_Click()
Dim a(1 To 100)
Dim b() as integer
Dim i As Integer, j As Integer, k As Integer, pos As Integer,temp as integer
For i = 1 To 100
a(i) = Val(InputBox("Please input data"))
If a(i) = Int(a(i)) Then
j = j + 1
ReDim Preserve b(j)
b(j) = a(i)
End If
Next i
For k = 1 To j - 1
pos = k
For m = k To j
If b(m) < b(pos) Then pos = m
Next m
If k <> pos Then
temp = b(k)
b(k) = b(pos)
b(pos) = temp
End If
Next k
For k = 1 To j
If k Mod 5 = 0 Then Print b(k) Else Print b(k);
Next k
End Sub
四、 程序阅读题(每小题6分,共18分)
1.程序1:
Dim Y As Integer
Private Stub Command_Click()
Dim X As Integer
X=1
Y=1
Call AA(Y+1)
Z=BB(X)
Print X, Y, Z
End Sub
Private Sub AA(ByVal Z As Integer)
Y = Z + X
Z = X + Y
End Sub
Private Function BB (ByRef Y As Integer)
Y = Y + 1
BB=X + Y
End Function 结果: ( 2 2 2 )
2.程序2:
private sub Form_click()
N = 3
Dim A(3,3) As Integer
For I = I To N
For J = I To N
A(I, J) = (J – l) * N + I
Next J
Next I
For I = 2 To N
For J = 1 To I – 1
TEMP = A(I, J)
A(I, J) =A(J, I)
A(J, I) = TEMP
Next J
Next I
For X = 1 To N
Print X, A(X, N +X - I), A(X, X)
Next X
End Sub 结果:( 1 0 4
2 7 8
3 11 12 )
3.程序3:
Private Sub Form_click()
Dim f1 As Integer,f2 As Integer,f3 As Integer
Open "c:\a1.dat"For Output As #1
f1=2:f2=3
Print #1,"NO."; 3,f1
Print #1,"NO."; 4,f2
For I=5 To 7
f3=f1+f2
Print #1,"NO.";I,f3
f1=f2
f2=f3
Next I
Close #1
End Sub
写出文件a1.dat的最终结果。 (
NO.3 2
NO.4 3
NO.5 5
NO.6 8
NO.7 13)
五、 程序填空题(每小题9分,共18分)1.从计算机输入三个数,找出中间数
Private Sub FindMidNum( )
X=INPUTBOX(“PLEASE INPUT THE FIRST NUMBER”)
Y=INPUTBOX(“PLEASE INPUT THE SECOND NUMBER)
Z=INPUTBOX(“PLESSE INPUT THE THIRD NUMBER)
IF( X<Y )THEN
A=X
X=Y
Y=A
ENDIF
IF (Y>=Z)THEN
PRINT Y
ELSEIF ( X>=Z ) THEN
PRINT Z
ELSE
PRINT X
ENDIF
End Sub
2. 打印以下杨辉三角形 1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Dim Q() As Integer
N = InputBox("PLEASE INPUT N")
ReDim Q(N, N)
For I = 1 To N
For J = 1 To N
Q(I, J) = ( 0 )
Next J
Next I
For K = 0 To ( N – 1 )
Q(K + 1, 1) = 1
Print 1;
For I = 1 To K
Q(K + 1, I + 1) = ( Q(K, I + 1) ) + Q(K, I)
Print ( Q(K + 1, I + 1) )
Next I
Print
Next K
VB期末考试试题(B卷)
1.下列代数式的Visual Basic表达式是( )。
二、填空
2.设x为大于零的实数,则大于x的最小奇数的Visual Basic表达式是_ IIF(int(x) mod 2=0,int(x)+2,int(x)+1)。
3. a1和a2之中有且只有一个与a3的值相等,相应的Visual Basic逻辑表达式是:__ a1=a3 xor a2=a3。若a1和a2之中没有一个与a3的值相等,则相应的表达式是:__ a1<>a3 and a2<>a3___。
4.设init的初值为10,则由下列循环语句控制的循环次数是__6__。
Do While init>=5
init=init-1
Loop
5.在Visual Basic 中,变量从它的作用范围来看,可分为 _全局变量___、_模块级变量_____和___过程级变量__ 三种。
6.语句Picture1.Circle(800,1000),500的含义是 _以圆心为(800,1000)半径为500的圆_。
7.声明定长为10个字符变量Sstr的语句为:_ Dim Sstr as String*10_。
三、程序阅读题,阅读下列程序书写结构。
程序1
Private Static Sub Command1_Click()
Dim x As Integer, s As Integer
x = Val(InputBox("请输入一个正整数="))
If x < 5 Then
s = s * x
Else
s = s + x
End If
Text1.Text = "s=" + Str(s)
End Sub
程序运行时连续三次单击Command1,且设输入的数是5,2和4时,分别写出文本框text1.text的值。
结果:( s=5 s=10 s=40 )
b) 程序2
Private Sub Form_Click()
Form1.Cls
w = 3
For k = 2 To 6 Step 2
Form1.Print "w="; w, "k="; k
w = w + 1
Next k
Form1.Print "w="; w, "k="; k
End Sub
写出程序运行时单击窗体后,Form1上输出结果。
结果为:( w=3 k=2
W=4 k=4
W=5 k=6
W=6 k=8 )
c) 程序3
Rem 在窗体的通用声明区声明两个模块级变量a和y
Dim a As Integer, y As Integer
Private Sub Form_Load()
Open "c:\a1.dat" For Output As #1
Close #1
End Sub
Private Sub Command1_Click()
Open "c:\a1.dat" For Append As #1
Call aa(5)
y = y + a
Print #1, "y="; y, "a="; a: Close #1
End Sub
Sub aa(i As Integer)
x = 1
Do Until x > i
a = a + x
x = x + 3
Loop
End Sub
写出程序运行时连续三次单击Command1后,a1.dat文件的最终结果为:(
y=5 a=5
yy=15 a=10
yy=30 a=15 )
五、 程序填空题(每小题9分,共18分)
a) 程序说明:利用一个计时器、一个标签框和二个命令按钮制作一个动态秒表, 如图1所示。单击“开始“命令按钮,秒表开始计时 ,单击“结束“命令按钮, 秒表结束计时,并在标签框显示运行时间,如“运行了0小时2分10秒“。 (假设对象的属性都在程序代码中设定)。
Dim x As Long
Dim h As Integer, m As Integer, s As Integer
Private Sub Form_Load()
Form1.Caption = "动态秒表(小时:分:秒)"
Command1.Caption = "开始[&S]"
Command2.Caption = "结束[&E]"
Label1.Alignment = 2 '居中对齐
Label1.Caption = "0:0:0"
timer1.Interval =__1000______
Timer1.Enabled = False
x = 0
End Sub
Private Sub Command1_Click()
_ timer1.enabled=True ___
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
x=_0___
Label1.Caption = "运行了" + Str(h) + "小时" + Str(m) + "分" + Str(s) + "秒"
End Sub
Private Sub Timer1_Timer()
x = x + 1
h=_x\3600______
m = (x Mod 3600) \ 60
s=_(x mod 3600) mod 60__
Label1.Caption = Str(h) + ":" + Str(m) + ":" + Str(s)
End Sub
b) 程序说明: 已知自然对数的底数e的级数表示如下:
e=1+1/1!+1/2!+1/3!+......+1/n!+.....
本程序利用函数过程fact()求e,其中绝对值小于1E-8的项被忽略。
程序代码如下:
Private Function fact(m As Integer) As Single ' 求M!的函数
Dim x As Single, i As Integer
x = 1
for i=1 to m : x=_x*i__ :Next i
fact = x
End Function
Private Sub Form_Click()
Dim e As Single, item As Single
Dim n As Integer
e=1 : n=__0____
Do
n = n + 1
item=__1/fact(n)____
e = e + item
Loop while _item>=1.OE-8_
Form1.Print "e="; e
End Sub
展开阅读全文