计算机题库VB期末考试试题(A、B卷)
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 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) 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 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 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 y y=15 a=10 y y=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 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