第6章習題與答案_第1頁
第6章習題與答案_第2頁
第6章習題與答案_第3頁
第6章習題與答案_第4頁
第6章習題與答案_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、WORD格式可編輯VisualBasic ( .NET)程序設計(第 2 版)第 6 章過程習題及答案一、選擇題1 Sub 過程與 Function 過程最根本的區(qū)別是:(A) 前者可以使用 Call 或直接使用過程名調(diào)用,后者不可以(B) 后者可以有參數(shù),前者不可以(C) 兩種過程參數(shù)的傳遞方式不同(D) 前者無返回值,但后者有返回值答案: D知識點: Sub 過程、 Function 過程難度: 1提示:無題解:無2在定義函數(shù)過程時,不可能用到的關鍵字是:(A) Exit(B) As(C) Sub(D) End答案: C知識點: Function 過程難度: 1提示:無題解:無3在定義通用

2、過程時,下列關鍵字中不能用來修飾形參的是:(A) ByVal(B) ByRef(C) Optional(D) Static答案: D知識點: Sub 過程、 Function 過程難度: 1提示:無題解:無專業(yè)知識 整理分享WORD格式可編輯VisualBasic ( .NET)程序設計(第 2 版)4在同一模塊中定義了兩個同名的過程,以下哪一項可以讓它們實現(xiàn)重載:(A) 返回值類型不同(B) 參數(shù)類型不同(C) 參數(shù)名稱(D) 參數(shù)傳遞方式不同答案: B知識點:過程重載難度: 1提示:無題解:無5以下關于遞歸的說明中正確的是:(A) 遞歸有直接遞歸和間接遞歸(B) 遞歸過程可以無限次調(diào)用自己

3、(C) 遞歸過程的形參必須是按地址傳遞(D) 遞歸過程必須有返回值 答案: A 知識點:遞歸 難度: 1 提示:無 題解:無6. 下列定義一個 Function 過程的首部,語法正確的是()(A) FunctionMyFunc(ByValiAsInteger)AsInteger(B) FunctionMyFunc(vari:Integer):Integer(C) FunctionMyFunc(DimiAsInteger)AsInteger(D) FunctionIntegerMyFunc()答案: A知識點: Function 過程難度: 1提示:無題解:無7. 在 Sub 過程 MySub中

4、,不等過程執(zhí)行結束就將控制權立即返回調(diào)用者的語句為() 專業(yè)知識 整理分享WORD格式可編輯VisualBasic ( .NET)程序設計(第 2 版)(A) EndSub(B) EndMySub(C) ExitSub(D) ExitMySub答案: C 知識點: Sub 過程難度: 1提示:無題解:無8. Function 過程 MyFunc返回整型值,過程中不等到執(zhí)行結束就將控制權立即返回調(diào)用者的語 句為()。(A) End(B) Return(C) Exit(D) MyFunc答案: B知識點: Function 過程難度: 1提示:無題解:無9對于通用過程,下列敘述中正確的是() 。(

5、A) 過程的定義不能嵌套,但過程調(diào)用可以嵌套(B) 過程的定義可以嵌套,但過程調(diào)用不能嵌套(C) 過程的定義和調(diào)用都不能嵌套(D) 過程的定義和調(diào)用都可以嵌套答案: A知識點:調(diào)用過程難度: 1提示:無題解:無10有過程定義如下: PrivateSubFun(xAsInteger,yAsInteger,zAsInteger) 則下列調(diào)用語句不正確的是() 。(A) CallFun(a,b,c)(B) CallFun(3,4,c)(C) Funa,5(D) Fun(a,b,c)答案: C知識點: Function 過程難度: 1提示:無題解:無11在過程中定義的變量,如果希望在離開該過程后,還能

6、保存過程中局部變量的值 就應該使用()關鍵字在過程中定義變量。(A) Dim(B) Private(C) Public(D) Static答案: D 知識點:定義變量難度: 1提示:無題解:無12在過程內(nèi)定義的變量(不在控制結構語句塊中)也稱為()。(A) 全局變量(B) 模塊級變量(C) 局部變量(D) 靜態(tài)變量答案: C知識點:定義變量難度: 1提示:無題解:無13在過程定義中用 關鍵字表示形參是按地址傳遞的(A) Var(B) ByDef(C) ByVal(D) ByRef答案: D 知識點:參數(shù)傳遞方式專業(yè)知識 整理分享WORD格式可編輯VisualBasic ( .NET)程序設計(

7、第 2 版)難度: 1提示:無題解:無7下面過程運行后顯示的結果是 SubMain()Dimx,yAsInteger x=12:y=34 Callf(x,y) Console.WriteLine(x&,&y) Console.Read()EndSubPublicSubf(ByRefnAsInteger,mAsInteger) n=nMod10 m=m10EndSub(A) 2,34(B) 12,34(C) 2,3(D) 12,3答案: A知識點:參數(shù)傳遞方式難度: 2提示:無題解:無、判斷題1如果過程的一個形參使用了 ByRef 關鍵字修飾,且調(diào)用時相應的實參是一個變量,則實參 變量的數(shù)據(jù)類型

8、必須與形參相同。答案:知識點:參數(shù)傳遞方式難度: 1提示:無題解:無Call 語句調(diào)用2因為函數(shù)過程有返回值,所以只能用在表達式中,不能使用 答案:知識點:調(diào)用過程難度: 1提示:無題解:無3事件過程只能在事件發(fā)生時由系統(tǒng)調(diào)用,不能在程序中使用代碼直接調(diào)用。 答案:知識點:調(diào)用過程難度: 1提示:無題解:無4可以使用 Static 關鍵字修飾過程的形式參數(shù),使之可以用作靜態(tài)過程級變量 答案:知識點:形式參數(shù)難度: 1提示:無題解:無5在窗體模塊中,不能定義全局通用過程。答案:知識點: Sub 過程、 Function 過程難度: 1提示:無題解:無6對于函數(shù)過程,如果不給函數(shù)名賦值,則函數(shù)不返

9、回任何值。答案:知識點: Function 過程難度: 1提示:無題解:無* 定義通用過程時有幾個形參,則調(diào)用該過程時必須提供幾個實參。 7 答案: 知識點:可選參數(shù)難度: 1提示:無題解:無8過程參數(shù)的默認傳遞方式是按值傳遞。 答案:知識點:參數(shù)傳遞方式難度: 1提示:無題解:無9因為 Sub過程沒有返回值,所以 Return 語句不能用在 Sub 過程中 答案:知識點: Sub 過程難度: 1提示:無題解:無*使用命名參數(shù)調(diào)用通用過程時,實參的順序可以不與相應的形參相 同。 10答案:知識點:命名參數(shù)難度: 1提示:無題解:無三、讀程序題9. 運行下面控制臺程序,輸出的內(nèi)容是() 。1Su

10、bMain()2Console.WriteLine(f(3.0,7)3Console.Read()4EndSub5PublicFunctionf(xAsSingle,nAsInteger)AsSingle6Ifn=0Then7f=18Else9IfnMod2=1Then10f=x*f(x,n2)11Else12f=f(x,n2)x13EndIf14EndIf 15EndFunction 答案: 27 知識點:遞歸 難度: 4 提示:無 題解:無* 以下是一個按鈕的 Click 事件過程與一個函數(shù)過程,當單擊此按鈕時,文本框中顯示 的21PrivateSubButton1_Click()Hand

11、lesButton1.Click2DimiAsInteger3i=84TextBox1.Text=f1(i,11)+i5EndSub6PrivateFunctionf1(intVar1AsInteger,OptionalintVar2As_ 7Integer=10)AsInteger8IfintVar210ThenintVar1=intVar29f1=intVar1+intVar210EndFunction答案: 30知識點:可選參數(shù)難度: 2提示:無題解:無3閱讀下面控制臺程序,當 Value 過程形參前有 ByVal 關鍵字時,運行程序,在窗口中顯示 的第一行內(nèi)容是( 1),第二行內(nèi)容是(

12、 2)。若將形參表中的 ByVal 關鍵字改 為 ByRef ,再執(zhí)行本程序,窗口中顯示的第一行內(nèi)容是(3),第二行內(nèi)容是( 4)。1SubMain()2Dimx,yAsInteger3x=10:y=154CallValue(x,y)5Console.WriteLine(x&y)6Console.Read()7EndSub8PrivateSubValue(ByValmAsInteger,ByValnAsInteger)9m=m*2:n=n-510Console.WriteLine(m&n)11EndSub答案:( 1) 2010;(2) 1015;(3) 2010 ;(4) 2010 知識點:

13、參數(shù)傳遞方式難度: 3 提示:無 題解:無4下面是一個控制臺程序,窗口中輸出的結果第一行是(1),第五行是( 2) 1SubMain()2Dimx,yAsInteger3Dimn,zAsInteger4x=1:y=15Forn=1To66z=f1(x,y)7Console.WriteLine(n&z)8Next9Console.Read()10EndSub11PrivateFunctionf1(ByRefxAsInteger,ByRefyAsInteger)AsInteger 12DimnAsInteger13DoWhilen=414x=x+y15n=n+116Loop17Returnx18E

14、ndFunction答案:( 1) 16 ;(2) 526知識點:參數(shù)傳遞方式難度: 3提示:無題解:無5窗體上有一個按鈕 Button1 和兩個文本框 TextBox1 、 TextBox2 。下面是這個窗體模塊的全 部代碼。運行程序,第一次單擊按鈕時,兩個文本框中的內(nèi)容分別是(1)和( 2);第二次單擊按鈕,兩個文本框中的內(nèi)容又分別是(3)和( 4)。1DimyAsInteger 模塊級變量2PrivateSubButton1_Click()HandlesButton1.Click3DimxAsInteger4x=25TextBox1.Text=f2(f1(x),y)6TextBox2.T

15、ext=f1(x)7EndSub89PrivateFunctionf1(ByRefxAsInteger)AsInteger10x=x+y:y=x+y11f1=x+y12EndFunction1314PrivateFunctionf2(ByRefxAsInteger,ByRefyAsInteger)AsInteger 15f2=2*x+y16EndFunction答案:( 1) 10;(2) 10;(3) 58;(13) 58知識點:參數(shù)傳遞方式 難度: 4 提示:無 題解:無第二行是( 2 )。6運行如下程序,控制臺窗口中顯示內(nèi)容的第一行是( 1SubMain()2CallTest(2)3Co

16、nsole.Read()4EndSub56PrivateSubTest(ByRefxAsInteger)7x=x*2+18Ifx6Then9CallTest(x)10EndIf11x=x*2+112Console.WriteLine(x) 13EndSub答案:( 1) 23;(2) 47知識點:遞歸 難度: 4 提示:無 題解:無2)。如果將 sub13)與( 4 )。7下面控制臺程序在窗口中顯示的兩行內(nèi)容分別是(1)與(過程的第二個形參 y 前的 ByRef 刪除,則在窗體上顯示的內(nèi)容是1SubMain()2DimxAsInteger,yAsInteger,zAsInteger3x=1:y

17、=2:z=34Callsub1(x,x,z)5Callsub1(x,y,y)6Console.Read()7EndSub專業(yè)知識 整理分享WORD格式可編輯VisualBasic ( .NET)程序設計(第 2 版)8PrivateSubsub1(ByRefxAsInteger,ByRefyAsInteger,ByRefzAsInteger)9x=3*z10y=2*z11z=x+y12Console.WriteLine(x&y&z)13EndSub答案:( 1) 6612;(2) 61010;(3) 9615;(4) 6410 知識點:參數(shù)傳遞方式難度: 5提示:無題解:無8假設下面控制臺程序

18、中的 4 條語句:語句語句,每次只使用其中的一條語句。當 使用語句時,輸出的內(nèi)容是( 1);當使用語句時,輸出的內(nèi)容是( 2); 當使用語句時,輸出的內(nèi)容是( 3);當使用語句時,輸出的內(nèi)容是( 4。1PublicSubMain()2DimxAsInteger3Console.WriteLine(a(x)*2) 語句4Console.WriteLine(x+a(x)*2) 語句5Console.WriteLine(x+a(x)+a(x) 語句6Console.WriteLine(x+a(a(x) 語句7Console.Read()8EndSub9PrivateFunctiona(ByRefyA

19、sInteger)AsInteger10y=y+111a=y+112EndFunction答案:( 1) 4;(2)4;(3) 5;(4) 4知識點:參數(shù)傳遞方式難度: 4提示:無題解:無10. 下面程序段運行的輸出結果是() :1Dimi,j,xAsInteger2Fori=1To6Step23Forj=iTo44x=i*j5Console.Write(x&,)6Next7Next答案: 1,2,3,4,9,12, 知識點:循環(huán)嵌套 難度: 1 提示:無題解:無11. 運行下面控制臺程序,在窗口中輸出的內(nèi)容是() 1SubMain()2Console.WriteLine(f(24,18) 3

20、Console.ReadKey() 4EndSub56PublicFunctionf(mAsInteger,nAsInteger) 7DoWhilemn8IfmnThen9m=m-n10Else11n=n-m12EndIf13Loop14f=m15EndFunction答案: 6 知識點: Function 過程、調(diào)用過程 難度: 2 提示:無題解:無四、完善程序題1弦截法求方程 x-2sinx=0 的根。如圖所示,弦截法的原理為:對于方程 f(x)0 ,找一個單調(diào)有根區(qū)間 x1,x2 ,連接 (x1,f(x1) 和 (x2,f(x2) 兩點,連線與橫軸交點的橫坐標為:x1 f (x2) x2

21、f(x1)rf (x2) f(x1)專業(yè)知識 整理分享WORD格式可編輯VisualBasic ( .NET)程序設計(第 2 版)反復使用 r 取代 x1 或 x2 來縮小有根區(qū)間。當 f(r)e 或 x1x2e 時( e 為給定的精度),即 認為 r 是方程的數(shù)值解。請完善下面程序。yf(x ) 圖弦截法解方程1PrivateSubButton1_Click()HandlesButton1.Click2Dimx1,x2AsSingle3DimeAsSingle:DimrAsSingle4e=0.0000015x1=Val(TextBox1.Text)6x2=Val(TextBox2.Tex

22、t)7Iff(x1)*f(x2)0Then8TextBox3.Text= 請重新選取兩點 9ExitSub10EndIf11Do12r=(1)13IfMath.Abs(f(r)eOrMath.Abs(x2-x1)eThen14(2)15ElseIff(r)*f(x1)0Then16(3)17ElseIff(r)*f(x2)0Then 若是零巧數(shù),則顯示6Console.Write(i&)7Console.WriteLine(n)8EndIf9Next10Console.Read()11EndSub 12Functions(nAsInteger)AsInteger 13Dimk,mAsInteg

23、er 14k=(n100)Mod10 獲取百位數(shù) 15Ifk=0Then16m=(2)+nMod100 17Ifm*9=nThen 18Returnm 19Else20(3)21EndIf22Else23Return-124EndIf25EndFunction答案:( 1) s(i) ;(2) (n1000)*100 ;(3) Return-1 知識點:參數(shù)傳遞方式難度: 3提示:無題解:無2倍13. 本程序判斷一個四位數(shù)的各位數(shù)逆向排列形成的新的四位數(shù)是否是原四位的整數(shù)倍( 以上),并輸出滿足條件的四位數(shù),如 8712 21874。請完善本程序。1SubMain()2DimtAsBoolea

24、n,i,kAsInteger3Fori=1000To99994Callf( ( 1)5IftThen6Console.Write(i&:)7Console.WriteLine(k&=&i&*&ki)8EndIf9Next10Console.Read()11EndSub12Subf(nAsInteger,ByRefmAsInteger,ByRefflgAsBoolean)13DimiAsInteger14flg=False15m=016i=n17DoWhilei018m=( 2)19i=i1020Loop21IfmModn=0Andmn1Then22flg= (3)23EndIf24EndSub

25、答案:( 1) i,k,t ;(2) m*10+iMod10;(3) True知識點: Sub 過程難度: 4提示:無題解:無專業(yè)知識 整理分享WORD格式可編輯VisualBasic ( .NET)程序設計(第 2 版)五、編程題1編寫遞歸函數(shù)求 1+2+3+,+n 的值。 答案:見題解。知識點: Function 過程難度: 2提示:無 題解:以下函數(shù) Add 返回 1+2+3+,+n 的值。1PrivateFunctionAdd(nAsInteger)AsInteger2Ifn=1Then3Return14ExitFunction5EndIf6Returnn+Add(n-1)7EndFu

26、nction2編寫判斷某年是否為閏年的函數(shù)。該函數(shù)有一個整型參數(shù)表示年份,返回值為邏輯型, 當該年份是閏年時,函數(shù)返回值為 True ,否則返回 False 。答案:見題解。知識點: Function 過程難度: 1提示:閏年是指能被 4 整除的年份,不包括去掉后面兩個零之后不能被 4 整除的世紀年。如: 2000 年是閏年, 1900 年不是閏年。題解:解法一:1PrivateFunctionLeapyear(yearAsInteger)AsBoolean2If(yearMod4=0AndyearMod1000)OryearMod400=0Then3ReturnTrue4Else5Retur

27、nFalse6EndIf7EndFunction解法二,更簡潔的寫法:1PrivateFunctionLeapyear(yearAsInteger)AsBoolean2ReturnyearMod4=0AndyearMod1000OryearMod400=03EndFunction3編寫程序調(diào)用例 6.4 中的函數(shù)過程 Fib ,計算 Fibonacci 數(shù)列中從第幾項開始起數(shù)列項的值 超過 10000。答案:第 21 項。知識點:調(diào)用過程 難度: 1 提示:無 題解:以下是控制臺程序的 Main 過程,調(diào)用教材中的 Fib 函數(shù) 1SubMain()2DimnAsInteger3n=14Do5

28、IfFib(n)10000ThenExitDo6n=n+17Loop8Console.WriteLine(n) 9Console.Read()10EndSub4編寫一個首部為 C(mAsInteger,nAsInteger)AsInteger的函數(shù),函數(shù)的返回值為 :C nC m!m(其中 n0, mn, m0,設 0!=1 )Cn!mn!答案:見題解。知識點: Function 過程難度: 1提示:無題解:1PrivateFunctionc(mAsInteger,nAsInteger)AsInteger2Returnf(m)/f(n)/f(m-n)3EndFunction4PrivateFu

29、nctionf(iAsInteger)AsLong5Ifi=1Ori=0Then6Return17Else8Returni*f(i-1)9EndIf10EndFunction 5編寫函數(shù) S(mAsInteger,nAsInteger)AsLong ,此函數(shù)返回 m+mm+m?m+m+m?m (n個 m)的值。比如S(2,5) 的返回值為2+22+222+2222+22222的值。 答案:見題解。知識點: Function 過程 難度: 1提示:無專業(yè)知識 整理分享WORD格式可編輯題解:專業(yè)知識 整理分享WORD格式可編輯VisualBasic (.NET)程序設計(第2 版)解法一:1PrivateFunctions(mAsInteger,nAsInteger)AsLong2DimiAsInteger3Dims1AsString4Fori=1Ton5s1=s1&m6s=s+s17Next8EndFunction解法二:1PrivateFunctions(mAsInteger,nAsInteger)AsLong2DimiAsInteger3Dimlng1AsLong4Fori=1Ton5lng1=lng1*10+m6s=s+lng17Next8EndFunction 6一小球從 100 米高處

溫馨提示

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

評論

0/150

提交評論