VisualBasic編程與應(yīng)用作業(yè)1及答案

字號:

一、問答題
    1.什么是可視化編程和事件驅(qū)動?
    解答:可視化編程:在設(shè)計界面時,只需將所需要的控件放到窗口的指定位置,整個界面設(shè)計過程基本不需要編寫代碼。在開發(fā)過程中所看到的界面,與程序運行時的界面基本相同。概括地說可視化編程就是程序員在開發(fā)過程中能看到界面的實際效果。
    事件驅(qū)動:是指應(yīng)用程序沒有預(yù)定的執(zhí)行路徑,而是由程序運行過程中的事件決定。
    2.對象、事件和方法三者之間的關(guān)系如何?
    解答:在VB程序設(shè)計中,完成某種功能可通過觸發(fā)對象事件和調(diào)用對象方法,而觸發(fā)事件和調(diào)用對象方法都必須基于某個對象。觸發(fā)某個事件實際上就是執(zhí)行一個事件過程代碼段,在該代碼段中又可以隨意調(diào)用對象方法,而調(diào)用對象方法不可能觸發(fā)某個事件。
    3.屬性和方法有何區(qū)別和聯(lián)系?
    解答:對象的屬性是描述對象的一組特征。如設(shè)置對象的名稱、標(biāo)題、顏色、大小等,有的可直接在設(shè)計界面時通過屬性窗口進(jìn)行設(shè)置,有的可以在事件過程或通用過程代碼中進(jìn)行設(shè)置。對象的方法是在對象上實施某種操作的功能,不能在設(shè)計界面時調(diào)用對象方法,一般在過程代碼中可隨意調(diào)用,根據(jù)需要還可以添加適當(dāng)?shù)膮?shù)。設(shè)置對象屬性和調(diào)用對象方法均可在代碼設(shè)計中進(jìn)行,其一般格式為:
     對象名.屬性名=屬性值 (設(shè)置對象屬性)
     對象名.方法名 (調(diào)用對象方法)
    4.下列哪些可作為Visual Basic的變量名,哪些不行?
     4*Delta Alpha 4ABC AB丌 ReadData
     Filename A(A+B) Read
    解答:可作為Visual Basic變量名的是:Alpha,ReadData, Filename,Read。其它均不能作為變量名。
    5.Visual Basic中是否允許出現(xiàn)下列形式的數(shù)?
     土25.74 3.457E-10 .368 1.87E+50
     10∧(1.256) 2.5E 12E3 0.258
    解答:允許出現(xiàn)的數(shù)為:3.457E-10,.368,12E3,0.258。
    6.指出下列Visual Basic表達(dá)式中的錯誤,并寫出正確的形式。
    (1) +COS(28Ο)
    (2)-3/8+8.INT24.8
    (3)(8+6)∧(4÷—2)+SIN(2*丌)
    (4)[(X+Y)+Z]´80-5(C+D)
    解答:
     (1)Sqr(80)+Cos(28*3.14159/180)
    (2)(-3)/8+8*Int(24.8)
    (3)(8+6)∧(4/(-2))+Sin(2*3.14159)
    (4)((X+Y)+Ζ)*80-5*(C+D)
    7.將下列數(shù)學(xué)式子寫成Visual Basic表達(dá)式:
    (1)cos2(c+d)
    (2)5+(a+b)2
    (3)cos(x)(sin(x)+1)
    (4)e2+2
    (5)2a(7+b)
    (6)8e3ln2
    解答:(1)Cos(c+d)∧2 或Cos(c+d)*Cos(c+d)
    (2) 5+(a+b)∧2 或5+(a+b)*(a+b)
    (3) Cos(x)*(Sin(x)+1)
    (4) Exp(2)+2
    (5) 2*a*(7+b)
    (6) 8*Exp(3)*Log(2)
    注:假定上面(1)和(3)中的c+d和x為弧度,如果為度則應(yīng)轉(zhuǎn)換為弧度。
    8.設(shè)a=2,b=3,c=4,d=5,求下列表達(dá)式的值:
    (1) a>b AND C<=d OR 2*a>C
    (2) 3>2*b OR a=c AND b<>c OR C>d
    (3) NOT a<=c OR 4*c=b∧2 AND b<>a+c
    解答:(1)False
     (2) False
    (3)False
    9.寫出下列函數(shù)的值
     (1)lnt(-3.14159) (2)Sqr(Sqr(64))
     (3) Fix(-3.14159) (4) Int(Abs(99-100)/2) (5) Sgn(7*3+2) (6) Lcase(“Hello”)
     (7) Left(“Hello”,2) (8) Val(“16 Year”)
     (9) Str(-459.65) (10)Len(“Hello”)
    解答:函數(shù)的值為:
     (1)-4 (2)2.828427
     (3) –3 (4) 0
     (5) 1 (6) “hello”
     (7) “He” (8) 16
     (9) “459.65” (10) 5
    二、編程題
    1.編寫程序,計算1+2+3+4+…+100。
    解答:使用For循環(huán)語句,程序如下:
    Private Sub Form_Click( )
     Static Sum As Integer
     For I =1 To 100
     Sum = Sum + I
     Next I
     Print Sum
     End Sub
    程序運行后,單擊窗體,輸出結(jié)果為:5050。
    如果使用當(dāng)循環(huán)語句,則程序如下:
     Private Sub Form_Click( )
     Static Sum As Integer
     I=1
     While i<=100
     Sum=Sum+I
     I=I+1
     Wend
     Print Sum
     End Sub
    2.我國現(xiàn)有人口為12億,設(shè)年增長率為1%,編寫程序,計算多少年后增加到16億。
    解答:程序如下:
    Private Sub Form_Click( )
     Dim p As Double
     Dim r As Single
     Dim n As Integer
     P=1200000000
     r=0.01
     While p<1600000000
     P = P + P* r
     N = N + 1
     Wend
     P = Int(P)
     Print N;″年后,全國人口為:″;P
     End Sub
     運行程序,單擊窗體,輸出結(jié)果為:
     29年后,全國人口為:1601404641。
    3.給定三角形的三條邊長,計算三角形的面積。編寫程序,首先判斷給出的三條邊能否構(gòu)成三角形,如可以構(gòu)成,則計算并輸出該三角形的面積,否則要求重新輸入。當(dāng)輸入-1時結(jié)束程序。
    解答:從幾何學(xué)可知,三角形的 兩邊之和大于第三邊。因此,如果輸入的三角形的三條邊中兩邊之和小于或等于另一邊長,則不能構(gòu)成三角形。在這種情況下,給出適當(dāng)?shù)男畔?,并要求重新輸入。如果能?gòu)成三角形,則輸出該三角形的面積。
    程序如下:
    Private Sub Form_Click( )
     Dim a,b,c,s,t As Single
    Start:
     A = InputBox (″請輸入A邊的邊長″) A = Val (a)
     If a =-1 Then End
     B = InputBox (″請輸入B邊的邊長″)
     B = Val (b)
     C =InputBox(″請輸入C邊的邊長″)
     C = Val (c)
     If a + b < = c Or b + c < = a Or c + a < = b Then
     MsgBox ″所輸入的值不能構(gòu)成三角形,請重新輸入″
     GoTo Start
     End If
     S =( a + b + c ) / 2
     T = Spr (s * ( s — a )* ( s — b ) * ( s — c ) )
     Print ″三角形的面積為:″; T
    End Sub
    程序運行后,單擊窗體,先后顯示三個輸入對話框,在三個對話框中分別輸入三角形的三條邊長,程序先判斷輸入的邊長是否能構(gòu)成三角形,然后決定之后的操作,用信息框顯示信息或者輸出三角形的面積。當(dāng)輸入1,2,3時,將顯示信息框,要求重新輸入;如果輸入8,7,6,則輸出結(jié)果為:
    三角形的面積為:20.33316
    4.稅務(wù)部門征收所得稅,規(guī)定如下:
    (1)收入在200元以內(nèi),免征;
    (2)收入在200~400內(nèi),超過200元的部分納稅3%;
    (3)收入超過400元的部分,納稅4%;
    (4)當(dāng)收入達(dá)到5000元或超過時,將4%稅金改為5%。
    編程序?qū)崿F(xiàn)上述操作。
    解答:程序如下:
    Private Sub Form_Click ( )
    R = InputBox (″請輸入您的收入″)
    R = Val ( r )
    If r < = 200 Then
     tax = 0
    ElseIf r > 200 And r < = 400 Then
     tax = (r —200) *0.03
    ElseIf r > 400 And r < 5000 Then
     tax = (r — 400) * 0.04
    ElseIf r > = 5000 Then
     tax = ( r — 400 ) * 0.05
    End If
    Print″收入″;r; ″應(yīng)納稅″; tax
    End Sub
    程序運行后,單擊窗體,在輸入對話框中輸入收入數(shù),程序?qū)⑤敵黾{稅金額。
    5.編寫程序,打印如下所示的“數(shù)字金字塔”:
     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
    解答:程序如下:
    Private Sub Form_Click ( )
     For I = 1 To 9 For j = 1 To 30-3 * I
     Print"";
     Next j
     For k = 1 To I
     Print k;
     Next k
     For k = I—1 To 1 Step — 1
     Print k;
     Next k
     Print
     Next I
    End Sub
    6.從鍵盤上輸入兩個正整數(shù)M和N,求公因子。
    解答:程序如下:
    Private Sub Form_Click ( )
     Dim m, n As Integer
     m = InputBox (″請輸入M的值″)
     m = Val (m)
     m1 = m
     n = InputBox(″請輸入N的值″)
     n = Val ( n )
     n1= n
     Do While n < > 0
     remin = m Mod n
     m = n
     n=remin
     Loop
     Print m1; "和"; n1;"的公因子是:";m
    End Sub
    該程序通過輾轉(zhuǎn)相除法求兩個正整數(shù)的公因子。程序運行后,在輸入對話框中分別輸入96和64,輸出結(jié)果為:96和64的公因子是:32
    7.從鍵盤上輸入一個學(xué)生的學(xué)號和考試成績,然后輸出該學(xué)生的學(xué)號、成績,并根據(jù)成績按下面的規(guī)定輸出對該學(xué)生的評語:
    成績 80~100 60~79 50~59 40~49 0~39
    評語 Very good Good Fair Poor Fail
    答案:程序如下:
    Private Sub Form_Click ( )
     n = InputBox(″請輸入學(xué)號″)
     s = InputBox(″請輸入分?jǐn)?shù)″)
     If s >= 80 Then
     MsgBox "學(xué)號" & n & ",分?jǐn)?shù)為 " & s & ",Very good"
     ElseIf s >= 60 And s <= 79 Then
     MsgBox "學(xué)號" & n & ",分?jǐn)?shù)為" & s & ",good"
     ElseIf s >= 50 And s <= 59 Then
     MsgBox "學(xué)號" & n & ",分?jǐn)?shù)為" & s & " ,Fair"
     ElseIf s >= 40 And s <= 49 Then
     MsgBox "學(xué)號" & n & ",分?jǐn)?shù)為" & s & ",Poor "
     ElseIf s >= 0 And s <= 39 Then
     MsgBox "學(xué)號" & n & ",分?jǐn)?shù)為" & s & ",Fail " End If
    End Sub
    程序運行后,單擊窗體,在輸入對話框中分別輸入學(xué)號和分?jǐn)?shù),程序?qū)⒃谳敵鰧υ捒蛑休敵鲞m當(dāng)評語。