VB書后習(xí)題解答新教材_第1頁
VB書后習(xí)題解答新教材_第2頁
VB書后習(xí)題解答新教材_第3頁
VB書后習(xí)題解答新教材_第4頁
VB書后習(xí)題解答新教材_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、程序設(shè)計(jì)基礎(chǔ)習(xí)題解答徐 秀 芳鹽城工學(xué)院第一章 Visual Basic導(dǎo)論VB是用于開發(fā)_環(huán)境下應(yīng)用程序的工具。 (B)A. DOS B. Windows C. DOS和Windows D. UNIXVB6.0是_位操作系統(tǒng)下的應(yīng)用程序開發(fā)工具。 (A)A. 32 B. 16 C. 32或16 D. 64一個(gè)對象可執(zhí)行的動(dòng)作與可被一個(gè)對象所識(shí)別的動(dòng)作分別稱為_(B)A.事件、方法 B.方法、事件 C.屬性、方法 D.過程、事件有一個(gè)紅色、充滿氫氣的氣球,如果人不小心松開手抓的引線,就會(huì)飛走;如果用針刺它,則會(huì)爆破。請問,對于氣球?qū)ο螅男┦菍傩?、哪些是事件、哪些是方法?答:屬性是紅色、氫氣;

2、事件是松開、針刺;方法是飛走、爆破。簡述事件驅(qū)動(dòng)過程程序的設(shè)計(jì)原理?答:使用VB不僅可以非常便捷地設(shè)計(jì)出Windows應(yīng)用程序的窗口界面,設(shè)置界面中各種對象的屬性,而且可以通過編寫程序代碼段,為對象規(guī)定在被某個(gè)“事件”激活時(shí)應(yīng)發(fā)生的各種動(dòng)作以及所要進(jìn)行的信息處理的具體內(nèi)容,這樣的代碼段稱為“過程”。為各個(gè)對象編寫的過程集合在一起,就構(gòu)成一個(gè)完整的應(yīng)用程序。VB的集成開發(fā)環(huán)境都有哪些元素些組成?答:VB的集成開發(fā)環(huán)境由標(biāo)題條、菜單條、彈出式菜單(上下文菜單)、工具欄、控件工具箱、初始窗體、工程資源管理器子窗口、屬性子窗口、窗體布局子窗口、代碼編輯器窗口、立即、本地和監(jiān)視窗口等。簡述用VB開發(fā)應(yīng)用

3、程序的一般步驟?答:VB開發(fā)應(yīng)用程序的一般步驟是:創(chuàng)建程序的用戶界面;設(shè)置界面上各個(gè)對象的屬性;編寫對象響應(yīng)事件的程序代碼;保存工程;測試和調(diào)試應(yīng)用程序,檢查并排除程序中的錯(cuò)誤;創(chuàng)建可執(zhí)行程序。第2章 程序設(shè)計(jì)與算法(問題求解)設(shè)X與Y是同一類型的變量,試設(shè)計(jì)一個(gè)算法,把X與Y中的數(shù)據(jù)相互交換。答:S1:輸入X與Y S2:X = A S3:Y = X S4:A = Y S5:輸出X與Y界面如下:程序代碼如下:Option ExplicitPrivate Sub Command1_Click() Dim X As Integer, Y As Integer Dim a As Integer X

4、= Val(Text1.Text) Y = Val(Text2) a = X X = Y Y = a Text3.Text = CStr(X) Text4 = CStr(Y)End SubPrivate Sub Command2_Click() Text1.Text = Text2.Text = Text3 = Text4 = Text1.SetFocusEnd Sub設(shè)A、B、C是同一類型的變量,并分別被賦予不同大小的數(shù)據(jù),設(shè)計(jì)一個(gè)算法,使得執(zhí)行的結(jié)果為ABC答:S1:輸入A、B、C S2:如果AB,則A與B交換 S3:如果AC,則A與C交換 S4:如果BC,則B與C交換S5:輸出A、B、C

5、界面如下:程序代碼如下:Option ExplicitPrivate Sub Command1_Click() Dim A As Integer, B As Integer Dim C As Integer, x As Integer A = Val(Text1.Text) B = Val(Text2) C = Val(Text3.Text) If A B Then x = A: A = B: B = x End If If A C Then x = A: A = C: C = x If B N - 1 Then Print N & 是素?cái)?shù) Else Print N & 不是素?cái)?shù) End If

6、End Sub設(shè)計(jì)一個(gè)判斷某正整數(shù)是一個(gè)回文數(shù)的算法。所謂回文數(shù)是指左右數(shù)字完全對稱的自然數(shù)。答:S1:輸入一個(gè)數(shù)字字符串S S2:I=1 S3:如果第I個(gè)數(shù)字與倒數(shù)第I個(gè)數(shù)字不同,則轉(zhuǎn)S7 S4:I=I+1S5:如果I小于等于字符串長度的一半,則返回S3S6:輸出S是回文數(shù),程序結(jié)束S7:輸出S不是回文數(shù),程序結(jié)束。界面如下:程序代碼如下:Option ExplicitPrivate Sub Form_Click() Dim S As String, i As Integer Dim Flg As Boolean S = InputBox(請輸入一個(gè)正整數(shù)) S = Trim(S) Flg

7、= True For i = 1 To Len(S) 2 If Mid(S, i, 1) Mid(S, Len(S) + 1 - i, 1) Then Flg = False Exit For End If Next i If Flg Then Print S & 是回文數(shù) Else Print S & 不是回文數(shù) End IfEnd Sub設(shè)計(jì)一個(gè)算法,求出給定的自然數(shù)的所有因子。答:S1:輸入一個(gè)正整數(shù)N S2:I=1 S3:如果N能被I整數(shù),則輸出I S4:I=I+1S5:如果I小于等于N則轉(zhuǎn)S3S6:程序結(jié)束界面如下:程序代碼如下:Option ExplicitPrivate Sub

8、Form_Click() Dim N As Integer, i As Integer N = InputBox(請輸入一個(gè)自然數(shù)) Print N & 的因子有:; For i = 1 To N If N Mod i = 0 Then Print i; End If Next i PrintEnd Sub第三章 常用控件與界面設(shè)計(jì)1.窗體的屬性主要可分為幾類?Caption屬性和Name屬性有何不同?答:窗體的屬性主要可分為:雜項(xiàng)、外觀、行為、字體、位置等五類。Caption:窗體標(biāo)題,是出現(xiàn)在窗體標(biāo)題欄上的文本內(nèi)容;Name:窗體名稱,在程序代碼中被作為對象的標(biāo)識(shí)名。2.以下窗體名中哪些是

9、非法的窗體名? (A B D E)A. _aform B. 3frm C. f_1 D. frm 5 E. f_1*3.VB為什么要提供多種窗體邊框風(fēng)格?試從已學(xué)習(xí)過的各種Windows應(yīng)用程序的窗口中舉例說明?答:VB中提供了六種窗體的邊框風(fēng)格,如設(shè)定值為1和3,它表示W(wǎng)indows應(yīng)用程序中的對話框,其大小不可改變;設(shè)定值為2表示W(wǎng)indows應(yīng)用程序中的窗口,其大小可以改變。4.在桌面上存在多個(gè)窗口時(shí),改變窗口的工作狀態(tài)會(huì)引發(fā)何種事件?改變窗口大小呢?答:改變窗口的工作狀態(tài)會(huì)引發(fā)激活事件和失去激活事件;改變窗口大小會(huì)引發(fā)Resize事件。6.有程序代碼如下:Form2.Caption=”

10、Help”,試問:Form2、Caption和Help分別代表_ (C)A.對象、值、屬性 B.值、屬性、對象C.對象、屬性、值 D.屬性、對象、值7.VB的常用控件中,哪些控件具有Caption屬性,而沒有Text屬性?哪些控件具有Text屬性,卻沒有Caption屬性?答:具有Caption屬性而沒有Text屬性的控件有:標(biāo)簽、命令按鈕、復(fù)選框、選項(xiàng)按鈕、框架;具有Text屬性而沒有Caption屬性的控件有:文本框、組合框、列表框。8.對象的屬性是否只能在設(shè)計(jì)界面時(shí)在屬性窗口中進(jìn)行設(shè)置?屬性窗口中的屬性列表是否包括了一個(gè)對象的所有屬性?答:屬性的設(shè)置既可以在屬性窗口中進(jìn)行設(shè)置,也可以在程

11、序代碼中進(jìn)行設(shè)置,但有些對象的有些屬性只能在屬性窗口中進(jìn)行設(shè)置,如文本框的多行屬性,有些對象的有些屬性只能在程序代碼中進(jìn)行設(shè)置,如列表框的列表項(xiàng)數(shù)目屬性;屬性窗口中的屬性列表中不包括一個(gè)對象的所有屬性,如列表框的ListIndex屬性、ListCount屬性就不在屬性列表中。9.除窗體之外,還有哪些控件可作為其他控件的容器使用?答:還有:框架、圖片框10.常用控件中具有Value屬性的控件有哪些?它們的取值及類型有何異同?答:常用控件中具有Value屬性的控件有:選項(xiàng)按鈕、復(fù)選框、滾動(dòng)條;選項(xiàng)按鈕的取值為邏輯型,選中該選項(xiàng)按鈕時(shí),其值為True,未選中該選項(xiàng)按鈕時(shí),其值為False;復(fù)選框的取

12、值為數(shù)值型,選中該復(fù)選框時(shí),其值為1,未選中該復(fù)選框是,其值為0,復(fù)選框變灰時(shí),其值為2;滾動(dòng)條的取值為數(shù)值型,其值為滾動(dòng)塊在滾條中的位置。12.以下使用方法的代碼中,正確的是_ (C)A. Label1.SetFocus B. Form1.ClearC. Text1.SetFocus D. Combo1.Cls13.將復(fù)選框的Value屬性設(shè)為2,其效果與把它的Enabled屬性設(shè)置為False有何異同?若把一個(gè)控件的Visible屬性設(shè)為False,意味著什么?答:將復(fù)選框的Value屬性設(shè)為2,表示該復(fù)選框暫時(shí)變灰,啟動(dòng)后仍然可以對其操作,而將復(fù)選框的Enabled屬性設(shè)置為False,

13、表示該復(fù)選框灰化,啟動(dòng)后不可以對其操作,直到將Enabled屬性設(shè)置為True,才能對其操作。若把一個(gè)控件的Visible屬性設(shè)為False,表示該控件不可見。14.如何給一個(gè)列表框或組合框控件增添列表項(xiàng)?已有的列表項(xiàng)如何刪除?答:給列表框或組合框控件增添列表項(xiàng),可用屬性窗口中的List屬性,或在程序代碼中使用AddItem方法。如果刪除所有的列表項(xiàng)可用Clear方法,如果刪除某一列表項(xiàng)可用RemoveItem方法。第四章 數(shù)據(jù)、表達(dá)式與簡單程序設(shè)計(jì)如果編寫的過程要被多個(gè)窗體及其對象調(diào)用,應(yīng)將這些過程放在哪一類模塊中? (B)A.窗體模塊 B.標(biāo)準(zhǔn)模塊 C.工程 D.類模塊事件過程與通用過程的

14、主要區(qū)別是什么?答:事件過程是指為窗體以及窗體上的各種對象編寫的用來響應(yīng)由用戶或系統(tǒng)引發(fā)的各種事件的代碼行;通用過程是指一個(gè)應(yīng)用程序中的多個(gè)窗體可以共享一些代碼,或者一個(gè)窗體內(nèi)不同的事件過程可以共享的一些代碼;事件過程是由用戶或系統(tǒng)響應(yīng)某個(gè)事件而執(zhí)行的,通用過程是由事件過程或其他通用過程調(diào)用而執(zhí)行的。通用過程只能存在于標(biāo)準(zhǔn)模塊中,這種說法對嗎?答:不對,通用過程既可存在于標(biāo)準(zhǔn)模塊中,也可存在于窗體模塊中。VB有哪些數(shù)據(jù)類型?答:VB中的數(shù)據(jù)類型有:整型、長整型、單精度、雙精度、定長字符型、變長字符型、邏輯型、字節(jié)型、日期型、貨幣型、對象型、變體型。字符型常量與日期型常量在使用時(shí)有何區(qū)別?下列常

15、量中哪些是字符串型常量,哪些是日期型常量?哪些什么也不是?A. “I am a student.” B. “江蘇南京” C. #02/25/1999#D. #January 1,1993# E. “02/25/1999# F. #January 1,1993”答:字符型常量在使用時(shí)要加西文的雙引號(hào),日期型常量再使用時(shí)要加#號(hào);字符型常量有:A、B;日期型常量有:C、D。下列符號(hào)中哪些是VB合法的變量名?A. blnFrag B. _a5b C. lngNum D. Area_TriangleE. User&Input F. 5Name答:合法的變量名有:A、C、D變量作用域包括幾個(gè)等級?說明的

16、方式有何區(qū)別?答:變量作用域包括三個(gè)等級:過程級、窗體級、全局級。局部(過程級):用Dim、Static在過程中定義,作用范圍:該過程,脫遇該過程后無效,也就是在其它過程中無效;Static:靜態(tài)變量,脫離該過程后,變量的值不消失,用于子過程或函數(shù)過程中;窗體(模塊)級:用Private、Dim在通用/聲明部分定義,作用范圍:該窗體中所有過程,脫遇該窗體后無效,也就是在其它窗體的過程中無效;全局(公有的):用Public在通用/聲明部分定義;如果在標(biāo)準(zhǔn)模塊中定義,則作用范圍為該工程的所有窗體,調(diào)用時(shí)直接使用變量名;如果在窗體模塊中定義,則作用范圍為該工程的所有窗體,但本窗體調(diào)用時(shí)直接使用變量名

17、,該工程中其它窗體調(diào)用時(shí),須加定義時(shí)的窗體名作為前綴。寫出下面數(shù)學(xué)式對應(yīng)的算術(shù)表達(dá)式。 a/(b+c/d) (x+Sqr(x*x+1)(1/3) 2*y/(a*x+b*y)*(a*x-b*y) 1+1/(1+1/m) (d/3)(2*x)/2 Log(y+cos(x)2) Abs(Exp(x)+Sin(x)3)/(x+y) Log(Exp(x*y)+Abs(Tan(z)(-1)+Cos(x)3)/(x+y-z)指出并改正下面數(shù)學(xué)式對應(yīng)的VB算術(shù)表達(dá)式中的錯(cuò)語。 A+B/A-B (A+B)/(A-B) ABC/(D+1)*Y A*B*C/(D+1)*Y) XY5 (X*Y)5將下面的條件用VB的

18、邏輯表達(dá)式表示。X+Y小于10且X-Y要大于0X、Y都是正整數(shù)或都是負(fù)整數(shù)A、B之一為零但不得同時(shí)為零C1+C2+C3大于等于255或C1與C2分別大于90且C3大于80答:(1)X+Y0(2)X*Y0 And X=Int(X) And Y=Int(Y)(3)A*B=0 And AB 或A=0 Xor B=0(4)C1+C2+C3=255 Or C190 And C290 And C380求下列表達(dá)式的運(yùn)算結(jié)果:Mid(“Visual Basic”,1,12)=Right(“Programming Language Visual Basic”,12) True“ABCRG”=“abcde” F

19、alseInt(134.69)=Cint(134.69) False78.9/32.77-4.98 FalseStr(32.345)=Cstr(32.345) False下列語句代碼哪些可正常執(zhí)行(正常執(zhí)行是指系統(tǒng)不給出出錯(cuò)提示)?A. Print 32765+3 溢出B. Print 5+7=14 FalseC. Print 256/128 2D. Print “14”+ 32 46E. Print “14”& 32 “1432”答:能正常執(zhí)行的語句有:B、C、D、E,具體執(zhí)行結(jié)果見上。在文本框Text1和Text2中分別輸入35和48,變量S和X分別為字符型和整型,試問,以下賦值語句的執(zhí)行

20、結(jié)果是什么?S=Text1.Text + Text2.Text “3548”X=Text1.Text + Text2.Text 3548S=Text1.Text & Text2.Text “3548”X=Text1.Text & Text2.Text 3548S=Val(Text1.Text) + Text2.Text “83”X=Val(Text1.Text) + Text2.Text 83S=Val(Text1.Text) & Text2.Text “3548”X=Val(Text1.Text) & Text2.Text 3548VB只有求自然對象的函數(shù)Log(X),如果計(jì)算式中需要使用常

21、用對數(shù)或以2為底的對數(shù),應(yīng)如何處理?答:使用換底公式。常用對數(shù):Ln(x)應(yīng)用Log(x)/Log(10)表示;Log 2(x)應(yīng)用Log(x)/Log(2)表示。執(zhí)行語句代碼Print Format(7543.568, “#,#0.00”),以下答案中那一個(gè)是正確的結(jié)果。 (C)A. 7543.57 B. 7,543.56 C. 7,543.57 D. 7543.5616. 圖形填空 z = InputBox(輸入一個(gè)數(shù): , 程序示例 , 1.5 )17. 寫出顯示如下信息框的MsgBox函數(shù).X=MsgBox(Z的值 & Str(z) & 大于0 , 48 , 程序示例 )18. 編寫程

22、序,輸入三角形的兩個(gè)邊長以及夾角的角度數(shù),求三角形面積.用戶界面:略程序代碼如下:Private Sub Command2_Click()Dim a As Single, b As Single, c As SingleDim area As Singlea = Val(InputBox(請輸入三角形的邊長a:)b = Val(InputBox(請輸入三角形的邊長b:)c = Val(InputBox(請輸入三角形兩邊之間夾角的角度數(shù)c:)area = 1 / 2 * a * b * Sin(c * 3.14159 / 180)Print areaEnd Sub選擇分支與循環(huán)閱讀程序,寫出執(zhí)行

23、結(jié)果。運(yùn)行結(jié)果為: 6 55運(yùn)行結(jié)果為: DDEFEDDEFFEDDEF運(yùn)行結(jié)果為: 6 5運(yùn)行結(jié)果為: 11 10 8編寫程序,隨機(jī)生成20個(gè)三位正整數(shù),將其中的奇數(shù)和偶數(shù)分別輸出到兩個(gè)列表框中。答:程序代碼如下:Option ExplicitPrivate Sub Form_Click() Dim x As Integer, i As Integer Print 生成的20個(gè)數(shù)如下: For i = 1 To 20 x = Int(Rnd * 900) + 100 If x Mod 2 = 0 Then List1.AddItem x Else List2.AddItem x End If

24、 Next iEnd Sub編寫程序,求兩個(gè)正整數(shù)的最小公倍數(shù).答:程序代碼如下:Private Sub Command1_Click()Dim m As Integer, n As Integer, minbeshu As IntegerDim a As Integer, b As Integer, r As Integerm = Val(Text1.Text)n = Val(Text2.Text)a = m: b = nr = a Mod bDo While r 0 a = b b = r r = a Mod bLoopText3.Text = m * n / bEnd Sub編寫程序求出

25、100以內(nèi)的所有勾股數(shù),所謂勾股數(shù)是指滿足條件a2+b2=c2(ab)的自然數(shù)。答:程序代碼如下:Private Sub Form_Click() Dim a As Integer, b As Integer, c As Integer For a = 1 To 100 For b = 1 To 100 For c = 1 To 100 If a * a + b * b = c * c And a b Then Print a & 2 + & b & 2 = & c & 2 End If Next c Next b Next aEnd Sub10.編寫程序,找出所有三位的升序數(shù).答:程序代碼如

26、下:Private Sub Command1_Click()Dim i As Integer, a As IntegerDim b As Integer, c As IntegerDim k As IntegerFor i = 100 To 999 a = i Mod 10 b = (i 10) Mod 10 c = i 100 If a b And b c Then Print i; k = k + 1 If k Mod 5 = 0 Then Print End IfNext iEnd Sub設(shè)計(jì)一個(gè)用二分法求方程x3-x4+4x2-1=0在區(qū)間0,1上的一個(gè)實(shí)根。答:程序代碼如下:Priv

27、ate Sub Command1_Click() Dim e As Double, a As Single, b As Single, c As Single Dim fa As Single, fb As Single, fc As Single e = 0.0000001 a = 0: b = 1 c = (a + b) / 2 Do fa = a 3 - a 4 + 4 * a 2 - 1 fb = b 3 - b 4 + 4 * b 2 - 1 fc = c 3 - c 4 + 4 * c 2 - 1 If fa * fc 0 Then a = c Else b = c c = (a

28、+ b) / 2 Loop Until Abs(b - c) e Text1.Text = CStr(c)End Sub第六章 數(shù) 組隨機(jī)生成15個(gè)100以內(nèi)的正整數(shù)并顯示在一個(gè)文本框中,再將所有對稱位置的兩個(gè)數(shù)據(jù)對調(diào)后顯示在另一個(gè)文本框中。答:程序代碼如下:Option Base 1Option ExplicitDim a(15) As IntegerPrivate Sub Command1_Click() Dim i As Integer For i = 1 To 15 a(i) = Int(Rnd * 100) + 1 Text1.Text = Text1 & Str(a(i) Next

29、 iEnd SubPrivate Sub Command2_Click() Dim i As Integer For i = 15 To 1 Step -1 Text2.Text = Text2.Text & Str(a(i) Next iEnd Sub隨機(jī)生成20個(gè)100以內(nèi)的兩位正整數(shù),統(tǒng)計(jì)其中有多少個(gè)不相同的數(shù)。Option Base 1Option ExplicitPrivate Sub Form_Click() Dim a(20) As Integer, i As Integer Dim j As Integer, k As Integer For i = 1 To 20 a(i)

30、= Int(Rnd * 90) + 10 Print a(i); If i Mod 10 = 0 Then Print Next i For i = 1 To 19 If a(i) 0 Then For j = i + 1 To 20 If a(i) = a(j) Then a(j) = 0 Next j End If Next i For i = 1 To 20 If a(i) 0 Then k = k + 1 Next i Print 不相同的數(shù)有: & Str(k)End Sub5.參照下圖所示界面,編寫一個(gè)求由一位隨機(jī)整數(shù)構(gòu)成的數(shù)組每一行與每一列之和。答:略程序代碼如下:Option

31、Base 1Option ExplicitDim a() As Integer, n As Integer, m As IntegerPrivate Sub Command1_Click() Dim i As Integer, j As Integer n = InputBox(請輸入數(shù)組的行數(shù):) m = InputBox(請輸入數(shù)組的列數(shù):) ReDim a(n, m) For i = 1 To n For j = 1 To m a(i, j) = Int(Rnd * 9) + 1 Picture1.Print a(i, j); Next j Picture1.Print Next iEn

32、d SubPrivate Sub Command2_Click() Dim i As Integer, j As Integer, sum As Integer For j = 1 To m sum = 0 For i = 1 To n sum = sum + a(i, j) Next i Text2 = Text2 & Str(sum) Next jEnd SubPrivate Sub Command3_Click() Dim i As Integer, j As Integer, sum As Integer For i = 1 To n sum = 0 For j = 1 To m su

33、m = sum + a(i, j) Next j Text1 = Text1 & Str(sum) & Chr(13) & Chr(10) Next iEnd Sub6.設(shè)有一個(gè)二維數(shù)組A(5,5),試編寫程序計(jì)算(1)所有元素之和;(2)所有靠邊元素之和;(3)兩條對角線元素之和。程序代碼如下:Option Base 1Option ExplicitDim a(5, 5) As IntegerPrivate Sub Command1_Click() Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5 a(i, j) = I

34、nt(Rnd * 9) + 1 Picture1.Print a(i, j); Next j Picture1.Print Next iEnd SubPrivate Sub Command2_Click() Dim i As Integer, j As Integer Dim s1 As Integer, s2 As Integer, s3 As Integer For i = 1 To 5 For j = 1 To 5 s1 = s1 + a(i, j) If i = 1 Or i = 5 Or j = 1 Or j = 5 Then s2 = s2 + a(i, j) If i = j O

35、r i + j = 6 Then s3 = s3 + a(i, j) Next j Next i Text1 = Str(s1) Text2 = Str(s2) Text3.Text = Str(s3)End Sub10.按金字塔形狀打印楊輝三角形。答:程序代碼如下:Option ExplicitOption Base 1Private Sub Form_Click() Dim a(6, 6) As Integer, i As Integer, j As Integer a(1, 1) = 1 For i = 2 To 6 a(i, 1) = 1 For j = 2 To i - 1 a(i,

36、 j) = a(i - 1, j - 1) + a(i - 1, j) Next j a(i, i) = 1 Next i For i = 1 To 6 Print Tab(20 - 2 * i); For j = 1 To i Print Right( & a(i, j), 4); Next j Print Next iEnd Sub利用隨機(jī)函數(shù)生成一個(gè)由兩位正整數(shù)構(gòu)成的4行5列矩陣,求出矩陣行的和為最大與最小的行,并調(diào)換這兩行位置。答:界面如下:程序代碼如下:Option ExplicitOption Base 1Private Sub Form_Click() Dim a(4, 5) A

37、s Integer, i As Integer, j As Integer Dim max As Integer, min As Integer, sum As Integer Dim maxi As Integer, mini As Integer, k As Integer For i = 1 To 4 For j = 1 To 5 a(i, j) = Int(Rnd * 9) + 1 Print a(i, j); Next j Print Next i For j = 1 To 5 sum = sum + a(1, j) Next j max = sum: min = sum maxi

38、= 1: mini = 1 For i = 2 To 4 sum = 0 For j = 1 To 5 sum = sum + a(i, j) Next j If sum max Then max = sum maxi = i End If If sum min Then min = sum mini = i End If Next i Print Print 最大行是第 & maxi & 行 Print 最小行是第 & mini & 行 Print For j = 1 To 5 k = a(maxi, j) a(maxi, j) = a(mini, j) a(mini, j) = k Nex

39、t j For i = 1 To 4 For j = 1 To 5 Print a(i, j); Next j Print Next iEnd Sub第七章 過 程在過程中聲明的局部變量和在過程中聲明的靜態(tài)變量有什么不同?答:局部變量離開過程后,該變量的值就消失,而靜態(tài)變量離開過程后,該變量的值不消失,下次調(diào)用時(shí)該變量保留上一次的值。在VB程序中調(diào)用程序向過程傳遞數(shù)據(jù)有哪幾種方式?它們之間有什么不同?答:在VB程序中調(diào)用程序向過程傳遞數(shù)據(jù)有兩種:按值傳遞與按地址傳遞。按值傳遞是指調(diào)用時(shí)將實(shí)參的值復(fù)制給形參,形參的值改變與實(shí)參沒有任何關(guān)系;按地址傳遞是指調(diào)用時(shí)實(shí)參與形參共用同一個(gè)存儲(chǔ)單元,形參的

40、值發(fā)生變化實(shí)參的值也發(fā)生變化,實(shí)參的值發(fā)生變化,形參的值也發(fā)生變化。舉例說明按值傳遞與按地址傳遞方式的異同?答:按值傳遞舉例:Private Sub Command1_Click() Dim a As Integer a = 2 Call abc(a) Print aEnd SubPrivate Sub abc(ByVal b As Integer) b = b + 2 Print bEnd Sub單擊命令按鈕,事件過程中的實(shí)參A的值為2,調(diào)用ABC子過程,形參B的值為2,然后執(zhí)行子程序,B的值為4,返回事件過程后,A的值仍為2。按地址傳遞舉例:Private Sub Command1_Cli

41、ck() Dim a As Integer a = 2 Call abc(a) Print aEnd SubPrivate Sub abc(b As Integer) b = b + 2 Print bEnd Sub單擊命令按鈕,事件過程中的實(shí)參A的值為2,調(diào)用ABC子過程,形參B的值為2,然后執(zhí)行子程序,B的值為4,返回事件過程后,A的值也變?yōu)?。閱讀程序,給出輸出結(jié)果:輸出結(jié)果為:BASIC輸出結(jié)果為:6 2662 -2 98輸出結(jié)果為:23 47編寫一個(gè)攝氏溫度與華氏溫度轉(zhuǎn)換的通用過程。攝氏(C)與華氏(F)溫度轉(zhuǎn)換的公式如下:F=C*9/5+32答:界面如下:程序代碼如下:Option

42、 ExplicitPrivate Sub Command1_Click() Dim C As Single, F As Single C = Val(Text1.Text) Call CtoF(C, F) Text2.Text = CStr(F)End SubPublic Sub CtoF(C As Single, F As Single) F = C * 9 / 5 + 32End SubPrivate Sub Command2_Click() Text1 = Text2 = Text1.SetFocusEnd Sub編寫一個(gè)驗(yàn)證一個(gè)數(shù)是否是素?cái)?shù)的通用過程。用InputBox函數(shù)輸入一個(gè)正整

43、數(shù),調(diào)用該過程判斷其是否是素?cái)?shù),在文本框中顯示判斷結(jié)果,如輸入11,則顯示11是素?cái)?shù)。答:界面如下:程序代碼如下:Option ExplicitPrivate Sub Command1_Click() Dim N As Integer, Flg As Boolean N = InputBox(請輸入一個(gè)正整數(shù):) Call Prime(N, Flg) If Flg Then Text1 = Str(N) & 是素?cái)?shù) Else Text1 = Str(N) & 不是素?cái)?shù) End IfEnd SubPrivate Sub Prime(N As Integer, f As Boolean) Dim

44、i As Integer For i = 2 To Sqr(N) If N Mod i = 0 Then f = False Exit Sub End If Next i f = TrueEnd SubPrivate Sub Command2_Click() Text1.Text = End SubPrivate Sub Command3_Click() Dim N As Integer N = InputBox(請輸入一個(gè)正整數(shù):) If Prime1(N) Then Text1 = Str(N) & 是素?cái)?shù) Else Text1 = Str(N) & 不是素?cái)?shù) End IfEnd SubP

45、rivate Function Prime1(N As Integer) As Boolean Dim i As Integer For i = 2 To Sqr(N) If N Mod i = 0 Then Prime1 = False Exit Function End If Next i Prime1 = TrueEnd Function若兩個(gè)素?cái)?shù)之差為2,則這兩個(gè)素?cái)?shù)就量對孿生素?cái)?shù),例如:3和5、5和7、11和13等都是孿生素?cái)?shù),編寫一個(gè)程序,找出1100之間的所有的孿生素?cái)?shù)。程序代碼如下:Option ExplicitOption Base 1Private Sub Form_Cli

46、ck() Dim n As Integer, Flg As Boolean, i As Integer Dim a() As Integer, k As Integer For n = 2 To 100 If prime(n) Then k = k + 1 ReDim Preserve a(k) a(k) = n End If Next n Print 1-100之間的孿生素?cái)?shù)如下: For i = 1 To UBound(a) - 1 If a(i + 1) - a(i) = 2 Then Print a(i), a(i + 1) End If Next iEnd SubPrivate Fu

47、nction prime(n As Integer) As Boolean Dim i As Integer For i = 2 To Sqr(n) If n Mod i = 0 Then prime = False Exit Function End If Next i prime = TrueEnd Function11.編寫一個(gè)求裴波拉契數(shù)列的遞歸過程,并將其前六項(xiàng)顯示在文本框中,裴波拉契數(shù)列的通項(xiàng)公式是:答:程序代碼如下:Option ExplicitOption Base 1Private Function Fblq(n As Integer) As Integer If n = 1

48、 Or n = 2 Then Fblq = 1 Else Fblq = Fblq(n - 1) + Fblq(n - 2) End IfEnd FunctionPrivate Sub Form_Click() Dim i As Integer For i = 1 To 6 Text1 = Text1 & Str(Fblq(i) Next iEnd Sub12.編寫程序驗(yàn)證一個(gè)大于2的偶數(shù),可以表示為兩個(gè)素?cái)?shù)之和。答:界面如下:程序代碼如下:Option ExplicitPrivate Sub Command1_Click() Dim n As Integer, i As Integer n = Val(Text1.Text) If n = 2 Or n Mod 2 0 Then MsgBox 輸入數(shù)據(jù)錯(cuò)誤,請重新輸入 Text1 = Text1.SetFocus End If If n = 4 Then Text2 = 4 = 2 + 2 End If For i = 3 To n / 2 If prime(i) And prime

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論