版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章VISUALBASIC的特點(diǎn)與版本
例1與傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言相比,VisualBasic最突出的特點(diǎn)是
A.結(jié)構(gòu)化程序設(shè)計(jì)B.程序開(kāi)發(fā)環(huán)境
C.程序調(diào)試技術(shù)D.事件驅(qū)動(dòng)編程機(jī)制
【分析】傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言是面向過(guò)程的,但?般都可以實(shí)現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì),有的也提供了較
完善的集成開(kāi)發(fā)環(huán)境和程序調(diào)試技術(shù),但它們基本上都沒(méi)有事件驅(qū)動(dòng)編程機(jī)制。與這些語(yǔ)言相比,
VisualBasic最突出的特點(diǎn)就是事件驅(qū)動(dòng)編程機(jī)制。
【答案】D
例2下列成員中不屬于主窗口的是
A.最大化按鈕B.狀態(tài)欄C.系統(tǒng)菜單D.工具欄
【分析】主窗II由標(biāo)題欄、菜單欄和工具欄構(gòu)成,其中標(biāo)題欄上有系統(tǒng)菜單(左端)以及最小化、最
大化和關(guān)閉按鈕。因此,最大化按鈕、系統(tǒng)菜單和工具欄都是主窗口中的成員,而主窗口中沒(méi)有狀態(tài)
欄。
【答案】B
例3在屬性窗口中,屬性列表可以按兩種順序排列,這兩種順序是和o
【分析】為了便于查找,屬性窗II對(duì)當(dāng)前對(duì)象的屬性提供了兩種排列方式,一種是按字母表順序,
另一種是按屬性的分類順序。
【答案】按字母序或按分類序
按分類序或按字母序
例4VisualBasic6.0的集成開(kāi)發(fā)環(huán)境有兩種方式,第一種方式是第二種方式是。
【分析】在默認(rèn)情況下,VisualBasic6.0集成開(kāi)發(fā)環(huán)境為多文檔界面方式,即MDI方式,在這種方
式下,窗體設(shè)計(jì)器窗口是固定的。使用“工具”菜單中的“選項(xiàng)”命令,可以把集成開(kāi)發(fā)環(huán)境設(shè)置為
單文檔界面方式,即SDI方式,在這種方式下,窗體設(shè)計(jì)器窗口是浮動(dòng)的。
【答案】多文檔界面或MDI
單文檔界面或SDI
第二章對(duì)象及其操作
例1為了通過(guò)屬性窗口把窗體的ControlBox屬性設(shè)置為T(mén)rue(或False),下列正確的操作是
A.直接鍵入True(或False)
B.利用對(duì)話框設(shè)置屬性值
C.選擇ControlBox,然后按回車(chē)鍵
D.雙擊ControlBox屬性條
【分析】ControlBox屬性是一個(gè)邏輯值,其取值只有兩種,即True和False,一般可以通過(guò)選擇輸
入,即單擊屬性條右端的箭頭,下拉顯示屬性值True和False,從中選擇所需要的值。在上面給出的
答案中,前三個(gè)答案都不能實(shí)現(xiàn)所要求的操作,只有答案D才能實(shí)現(xiàn)。實(shí)際上,對(duì)于只有兩種可能取
值(True或False、0或1)的屬性,都可以通過(guò)雙擊屬性條設(shè)置。
【答案】D
例2下列語(yǔ)句用來(lái)設(shè)置窗體FormI的屬性,其中在運(yùn)行時(shí)不能正確操作的語(yǔ)句是
A.Form1.Captin="FormTest"B.Form1.Name='TonnTest',
C.Forml.MaxButton=FalseD.Forml.MinButton=False
【分析】這4個(gè)語(yǔ)句用來(lái)在運(yùn)行時(shí)設(shè)置謝體的屬性。其中Fomil.Captin="FonhTest”用來(lái)設(shè)置窗體
的標(biāo)題,F(xiàn)onnl.Namc="FonnTcst"用來(lái)設(shè)置窗體的名稱,F(xiàn)orml.MaxButton=Falsc用來(lái)隱藏窗體的最大
化按鈕,Forml.MinBuHon=False用來(lái)隱敏窗體的最小化按鈕。從語(yǔ)法格式上來(lái)看,似乎沒(méi)有什么問(wèn)題,
在輸入時(shí)也不會(huì)產(chǎn)生錯(cuò)誤。但是,窗體的Name屬性是一個(gè)“只讀”屬性,在運(yùn)行時(shí)不能改變,因此,
程序運(yùn)行后,當(dāng)執(zhí)行到FormLName="FormTest"語(yǔ)句時(shí)將會(huì)出錯(cuò)。
【答案】B
例3下列不能打開(kāi)屬性窗口的操作是
A.執(zhí)行“視圖”菜單中的“屬性窗口”命令
B.按F4健
C.按Ctri+T鍵
D.單擊工具欄上的“屬性窗口”按鈕
【分析】在上面選擇中,CtrRT鍵用來(lái)執(zhí)行“工程”菜單中的“部件”命令,打開(kāi)的是“部件”窗
口,不是屬性窗口,其他3個(gè)選項(xiàng)都可以打開(kāi)屬性窗口。
[答案】c
例4為了對(duì)多個(gè)控件執(zhí)行操作,必須選擇這些控件?。下列不能選擇多個(gè)控件的操作是
A.按住Alt鍵,不要松開(kāi),然后單擊每個(gè)要選擇的控件
B.按住shin鍵,不要松開(kāi),然后單擊每個(gè)要選擇的控件
c按住cm鍵,不要松開(kāi),然后單擊每個(gè)要選擇的控件
D.拖動(dòng)鼠標(biāo)畫(huà)出-個(gè)虛線矩形,使所選擇的控件位于這個(gè)矩形內(nèi)
【分析】教程中介紹了選擇控件的兩種方法,即按住Shift鍵單擊每個(gè)要選擇的控件和拖動(dòng)鼠標(biāo)畫(huà)
虛線矩形。除這兩種方法外,按住Ctrl鍵單擊每個(gè)要選擇的控件也可實(shí)現(xiàn)選擇控件的操作,但按住
Alt鍵單擊每個(gè)要選擇的控件不能達(dá)到目的。
【答案】A
例5為了在運(yùn)行時(shí)把窗體Fonnl的標(biāo)題(C叩tion屬性)設(shè)置為“TestProgram”,應(yīng)使用的語(yǔ)句為
【分析】窗體的Caplion屬性用來(lái)設(shè)置窗體的標(biāo)題,一般格式為:
[窗體.]Caption匚字符串]其中的“窗體.”可以是Forml.,可以省略,也可以是關(guān)鍵字Me:而“字
符串”就是要設(shè)置的窗體的標(biāo)題。因此,本題有幾種不同的答案。
【答案】
Form1.Caption="TestProgram"
或Me.Caption="TestPrograir."
或Caption="TestProgram"
例6當(dāng)選擇了多個(gè)控件后,其中有一個(gè)控件是“基準(zhǔn)控件”,設(shè)置“基準(zhǔn)控件”的方法是
【分析】在一般情況下,如果選擇了窗體上的多個(gè)控件,則其中有一個(gè)控件自動(dòng)成為“基準(zhǔn)控件”。
選擇方法不同,”自動(dòng)基準(zhǔn)控件”也不一樣。如果按住Qrl或Shifl鍵選擇多個(gè)控件,則最后單擊的
控件為“基準(zhǔn)控件”;如果用布動(dòng)鼠標(biāo)的方法選擇控件,則最后畫(huà)到窗體上的控件是“基準(zhǔn)控件二
如果想用其他某個(gè)控件作為“基準(zhǔn)控件”,可以在選擇多個(gè)控件后,單擊該控件。
【答案】選擇多個(gè)控件后,單擊其中的某個(gè)控件,即可把該控件設(shè)置為“基準(zhǔn)控件”。
第三章VB程序設(shè)計(jì)基礎(chǔ)
例1在設(shè)計(jì)階段,當(dāng)雙擊窗體上的某個(gè)控件時(shí),所打開(kāi)的窗口是
A.工程資源管理器窗口B.工具箱窗口
C.代碼窗口D.屬性窗口
【分析】VisualBasic集成開(kāi)發(fā)環(huán)境下的窗口(包括代碼窗口)基本上都可以通過(guò)執(zhí)行“視圖”菜單
中相應(yīng)的菜單命令打開(kāi)。在設(shè)計(jì)階段,如果單擊窗體上的某個(gè)控件,則只能打開(kāi)代碼窗口。
【答案】C
例2下列打開(kāi)“代碼窗口”的操作中不正確的是
A.按F4鍵
B.單擊“工程資源管理器”窗口中“查看代碼”按鈕
C.雙擊已建立好的控件
D.執(zhí)行“視圖”菜單中“代碼窗口”命令
【分析】在所給出的選擇中,按F4鍵可以打開(kāi)屬性窗口,不可能用來(lái)打開(kāi)代碼窗口,而其他3個(gè)選
項(xiàng)都可以用來(lái)打開(kāi)代碼窗口。
【答案】A
例3下列正確的VisualBasic注釋語(yǔ)句是
A.Dima(10)AsIntegerRem這是一個(gè)VB程序
B.’這是一個(gè)VB程序
PrivateSubCommandl_Click()...
C.a=l:b=2:Rern這是f、VB程序:c=3
D.IfShift=6AndButton=2Then
PrintRem這是一個(gè)VB程序
EndIf
【分析】在使用注釋語(yǔ)句時(shí),有以下“禁忌”:當(dāng)注釋出現(xiàn)在一個(gè)語(yǔ)句行的后面時(shí),只能用撇號(hào)作
為注釋符,不能使用Rem;在復(fù)合語(yǔ)句行中,注釋必須是最后一個(gè)語(yǔ)句,不能放在復(fù)合語(yǔ)句行中;注
釋語(yǔ)句不能放在續(xù)行符的后面。在所給出的選擇中,AC.D都是不正確的。
【答案】B
例4為了建立窗體的Click事件過(guò)程,即Form_Click,應(yīng)先在代碼窗口的欄中選擇Form,然
后在欄中選擇Click。
【分析】代碼窗口的頂部(標(biāo)題欄的下面)分為左右兩欄,左邊一欄是“對(duì)象”欄,右邊一欄是“過(guò)程”
欄。在“對(duì)象”欄的下拉列表中可以選擇窗體或控件的名稱、在“過(guò)程”欄中可以選擇事件的名稱。
因此,為了建立事件過(guò)程Form.Click,應(yīng)在“對(duì)象”欄中選擇Form,然后在“過(guò)程”欄中選擇Click。
【答案】第一個(gè)空:“對(duì)象”或?qū)ο?/p>
第二個(gè)空:“過(guò)程”或過(guò)程
例5假定窗體的.名稱為Forml,對(duì)該窗體編寫(xiě)如下代碼:
PrivateSubForm_Load()
Form1.Caption="AAAAA"
Me.Caption="BBBBB"
Caption="CCCCC"
EndSub
程序運(yùn)行后,窗體的標(biāo)題是。
【分析】FormLoad是程序運(yùn)行后首先要執(zhí)行的事件過(guò)程。在上面的事件過(guò)程中,有3個(gè)賦值語(yǔ)句,
這3個(gè)語(yǔ)句都用來(lái)對(duì)對(duì)象賦值,即對(duì)對(duì)象的C叩lion屬性賦值,它們都可以設(shè)置窗體的標(biāo)題。第一個(gè)
語(yǔ)句把窗體的標(biāo)題設(shè)置為“AAAAA",執(zhí)行第二個(gè)語(yǔ)句后,窗體的標(biāo)題變?yōu)椤癇BBBB”,而執(zhí)行第
三個(gè)語(yǔ)句后,窗體的標(biāo)題變?yōu)椤癈CCCC”.
【答案】CCCCC
例6編寫(xiě)程序,用來(lái)設(shè)置窗體的位置和大小。要求:程序運(yùn)行后,窗體的初始位置為(3000,3000),其
初始寬度和高度均為5000;單擊一次窗體后,窗體位置的X坐標(biāo)和Y坐標(biāo)各減少一半,其寬度和高
度均減少到原來(lái)的一半。
【分析】窗體的位置由Top屬性和Left屬性來(lái)設(shè)置,寬度和高度分別由Width屬性和Height屬性來(lái)
設(shè)置。窗體的初始屬性可以通過(guò)屬性窗II設(shè)置,也可以在Form_Load事件過(guò)程中設(shè)置;而單擊窗體
后的屬性可以在Form_Click事件過(guò)程中設(shè)置
程序如下:
PrivateSubForm_Load()
Top=3000
Left=3000
Width=5000
Height=5000
EndSub
PrivateSubForm_Click()
FormI.Top=FormI.Top/2
Form1.Left=Form1.Left/2
Form1,Width=Form1.Width/2
FormI.Height=FormI.Height/2
EndSub
窗體的初始位置和大小在Fonn_Load密件過(guò)程中設(shè)置,程序運(yùn)行后,顯示窗體的初始位置和大小。
單擊一次窗體后,具位置.的X坐標(biāo)、Y坐標(biāo)及窗體的寬度、高度均減少到原來(lái)的一半。此后如果再
單擊一次窗體,則仍減少一半。如果把Form_Click事件過(guò)程改為:
PrivateSub,Form_Click()
Forml.Top=1500
Form1.Left=1500
Forml.Width=2500
Form1.Height=2500
EndSub
則程序運(yùn)行后,無(wú)論單擊多少次窗體,窗體的位置和大小都是原來(lái)的一半。
該程序用到了窗體的4個(gè)屬性,即Top.Left.Width和Height。在設(shè)置這幾個(gè)屬性時(shí),窗體名稱(Forml)
可以有,也可以沒(méi)有,也可以換成關(guān)鍵字Me。
例7在VisualBasic中,下列優(yōu)先級(jí)最高的運(yùn)算符是
A.*B.\C.<D.Not
【分析】VisualBasic提供了3類運(yùn)算符,即算術(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符。在3類運(yùn)算符
中,算術(shù)運(yùn)算的優(yōu)先級(jí)最高,其次是關(guān)系運(yùn)算,最后是邏輯運(yùn)算。在該例中,C和D分別為關(guān)系運(yùn)算
符和邏輯運(yùn)算符,A和B是算術(shù)運(yùn)算符,A和B的優(yōu)先級(jí)比C和D高。而對(duì)于A和B來(lái)說(shuō)乘法(*)
的優(yōu)先級(jí)比整除(\)的優(yōu)先級(jí)高。因此,優(yōu)先級(jí)最高的應(yīng)當(dāng)是乘法運(yùn)算符(*)。
【答案】A
例i8'以下關(guān)系表達(dá)式中,其值為False的是
A."XYZH<"XYz"
B."VisualBasic"="visualbasic"
C."the"<>"there,,
D."Integer">"IntM
【分析】該例通過(guò)關(guān)系表達(dá)式對(duì)字符串進(jìn)行比較。在VisualBasic中,字符串?dāng)?shù)據(jù)按其ASCII碼值
進(jìn)行比較。在比較兩個(gè)字符串時(shí),首先比較兩個(gè)字符串的第一個(gè)字符,其中ASCH碼值較大的字符所
在的字符串大。如果第一個(gè)字符相同,則比較第二個(gè)……依次類推。在該例的4個(gè)選擇中,A、C、D
的值均為T(mén)rue;B中的兩個(gè)字符串基本相同,但第一個(gè)字符串的第一個(gè)字母是大寫(xiě)字母,而第二個(gè)字
符串的第一個(gè)字母是小寫(xiě)字母,第一個(gè)字符串小于第二個(gè)字符串,即兩個(gè)字符串不相等,因此
"VisualBasic"="visualbasic”的值為假,即Falseo
【答案】B
例9下列正確的VisualBasic注釋語(yǔ)句是
A.Dima(10)AsIntegerRem這是一?個(gè)VB程序
B「這是一個(gè)VB程序
PrivateSubCommandl_Click()...
C.a=l:b=2:Rem這是?個(gè)VB程序:c=3
D.IfShift=6AndButton=2Then
PrintRem這是一個(gè)VB程序
EndIf
【分析】在使用注釋語(yǔ)句時(shí),有以下“禁忌”:當(dāng)注釋出現(xiàn)在一個(gè)語(yǔ)句行的后面時(shí),只能用撇號(hào)作
為注釋符,不能使用Rem:在豆合語(yǔ)句行中,注釋必須是最后一個(gè)語(yǔ)句,不能放在復(fù)合語(yǔ)句行中:注
釋語(yǔ)句不能放在續(xù)行符的后面。在所給出的選擇中,A.C.D都是不正確的。
【答案】B
例10為/建立窗體的Click事件過(guò)程,即Form_Click,應(yīng)先在代碼窗口的欄中選擇Form,然
后在欄中選擇Click。
【分析】代碼窗口的頂部(標(biāo)題欄的下面)分為左右兩欄,左邊一欄是“對(duì)象”欄,右邊一欄是“過(guò)程”
欄。在“對(duì)象”欄的下拉列表中可以選擇窗體或控件的名稱、在“過(guò)程”欄中可以選擇事件的名稱。
因此為了建立事件過(guò)程Form.Click,應(yīng)在“對(duì)象”欄中選擇Form,然后在“過(guò)程”欄中選擇Click,
【答案】第一個(gè)空:“對(duì)象”或?qū)ο?/p>
第二個(gè)空:“過(guò)程”或過(guò)程
例11假定窗體的名稱為Forml,對(duì)該窗體編寫(xiě)如下代碼:
PrivateSubForm_Load()
Form1.C叩tion="AAAAA"
Me.Capcion="BBBBB"
Caption="CCCCC"
EndSub
程序運(yùn)行后,窗體的標(biāo)題是。
【分析】FormLoad是程序運(yùn)行后首先要執(zhí)行的事件過(guò)程。在上面的事件過(guò)程中,有3個(gè)賦值語(yǔ)句,
這3個(gè)語(yǔ)句都用來(lái)對(duì)對(duì)象賦值,即對(duì)對(duì)象的Caption屬性賦值,它們都可以設(shè)置窗體的標(biāo)題。第一個(gè)
語(yǔ)句把窗體的標(biāo)題設(shè)置為“AAAAA",執(zhí)行第二個(gè)語(yǔ)句后,窗體的標(biāo)題變?yōu)椤癇BBBB”,而執(zhí)行第
三個(gè)語(yǔ)句后,窗體的標(biāo)題變?yōu)椤癈CCCC”。
【答案】CCCCC
例12編寫(xiě)程序,用來(lái)設(shè)置窗體的位置和大小。要求:程序運(yùn)行后,窗體的初始位置為(3000,3000),其
初始寬度和高度均為5000;單擊一次窗體后,窗體位置的X坐標(biāo)和Y坐標(biāo)各減少?半,其寬度和高
度均減少到原來(lái)的一半。
【分析】窗體的位置由Top屬性和Left屬性來(lái)設(shè)置,寬度和高度分別由Width屬性和Height屬性來(lái)
設(shè)置。窗體的初始屬性可以通過(guò)屬性窗口設(shè)置,也可以在Form_Load事件過(guò)程中設(shè)置;而單擊窗體
后的屬性可以在Form,Click事件過(guò)程中設(shè)置。
程序如下:
PrivateSubForm_Load()
Top=3000
Left=3000
Width=500()
Height=5000
EndSub
PrivateSubForm_Click()
Forml.Top=Forml.Top/2
Form1.Left=Forml.Left/2
Form1.Width=Form1.Width/2
Form1.Height=Form1.Height/2
EndSub
窗體的初始位置和大小在Fonn_Load事件過(guò)程中設(shè)置,程序運(yùn)行后,顯示窗體的初始位置和大小。
單擊一次窗體后,其位置的X坐標(biāo)、Y坐標(biāo)及窗體的寬度、高度均減少到原來(lái)的一半。此后如果再
單擊一次窗體,則仍減少一半。如果把Form_Click事件過(guò)程改為:
PrivateSub,Form_Click()
Form1.Top=1500
Forml.Left=1500
Forml.Width=2500
Form1.Height=2500
EndSub
則程序運(yùn)行后,無(wú)論單擊多少次窗體,窗體的位置和大小都是原來(lái)的一半。
該程序用到了窗體的4個(gè)屬性,即TopvLeftvWidth和Height。在設(shè)置這幾個(gè)屬性時(shí),窗體名稱(Form1)
可以有,也可以沒(méi)有.也可以換成關(guān)鍵字Meo
第四章數(shù)據(jù)的輸入與輸出例題分析
例1在窗體上畫(huà)一個(gè)命令按鈕(名稱為Command)然后編寫(xiě)如下事件過(guò)程:
PrivateSubCommand1ClickO
a=4
b=5
c=6
Printa=b+c
EndSub
程序運(yùn)行后,單擊命令按鈕,其結(jié)果為
A.a=llB.a=b+cC.FalseD.出錯(cuò)
【分析】Print方法具有計(jì)算和輸出兩種功能。當(dāng)Prini的輸出項(xiàng)是表達(dá)式時(shí),將先計(jì)算表達(dá)式,然后
輸出表達(dá)式的值。所計(jì)算和輸出的表達(dá)式可以是算術(shù)表達(dá)式,也可以關(guān)系表達(dá)式或邏輯表達(dá)式。該
例中的a=b+c是一個(gè)關(guān)系表達(dá)式,其中a的值為4,b+c的值是11,Printa=b+c實(shí)際上執(zhí)行的是Print
4-11,顯然是一個(gè)“假”值,
[答案]C
注意遍人可能會(huì)認(rèn)為本例的答案應(yīng)當(dāng)為D,這是不對(duì)的。
例2下列不正確的語(yǔ)句是
A.Printa=10+20
B.Print"a=";10+20
C.Print"a"="10+20"
D.Printa=;10+20
【分析】Prini方法的輸出項(xiàng)是一個(gè)表達(dá)式,包括算術(shù)表達(dá)式(字符串表達(dá)式)、關(guān)系表達(dá)式和邏輯表達(dá)
式。在所給出的選擇中,A是用Print方法輸出一個(gè)關(guān)系表達(dá)式的值,比較兩個(gè)算術(shù)表達(dá)式的值是否相
等;B是用Print輸出一個(gè)字符串和一個(gè)算術(shù)表達(dá)式的值,其中字符串照原樣輸出,然后計(jì)算并輸出
算術(shù)表達(dá)式的值;C是用Prim方法輸出一個(gè)關(guān)系表達(dá)式的值,比較兩個(gè)字符串是否相等,這幾個(gè)語(yǔ)
句都是正確的,可以輸出正確的結(jié)果,而D會(huì)產(chǎn)生語(yǔ)法錯(cuò)誤。
【答案】D
例3在窗體上畫(huà)一個(gè)命令按狙,然后編寫(xiě)如下代碼:
PrivateSubCommandl_Click()
a&二InputBox("請(qǐng)輸入第,個(gè)數(shù)")
b&=Inpu【Box(”請(qǐng)輸入第二個(gè)數(shù)”)
Printb&+a&
EndSub
程序運(yùn)行后,單擊命令按鈕,在兩個(gè)輸入對(duì)話框中先后輸入12345和54321,程序的輸出結(jié)果是
A.66666B,5432112345
C.1234554321D.出錯(cuò)
【分析】InputBox函數(shù)的返回值是一個(gè)字符串,但由于a&和b&通過(guò)類型說(shuō)明符被顯式地定義為
長(zhǎng)整型變量,因而在執(zhí)行InputBox函數(shù)后,所返回的字符串值被轉(zhuǎn)換為長(zhǎng)整型值,它實(shí)際上相當(dāng)于
執(zhí)行一次類型轉(zhuǎn)換,即:
a&=CLng(InpulBox("請(qǐng)輸入第一個(gè)數(shù)”))
b&二CLng(InputBox("請(qǐng)輸入第二個(gè)數(shù)"))
這樣,當(dāng)執(zhí)行Print方法時(shí),將計(jì)算并輸出算術(shù)表達(dá)式b&+a&的值。
【答案】A
例4假定程序中有如下語(yǔ)句:
answer=MsgBox("第一個(gè)字符串",vbAbor(RetryIgnore_
OrvbCricical_
OrvbDefaultButton3,_
"第二個(gè)字符串”)
執(zhí)行該語(yǔ)句后,將顯示一個(gè)信息框,此時(shí)如果按回車(chē)鍵,則answer的值為
A.”第二個(gè)字符串”B.5C.3D.7
【分析】MsgBox函數(shù)的返回值是一個(gè)整數(shù),這個(gè)整數(shù)與所選擇的按鈕有關(guān)。本例的第二個(gè)參數(shù)由
三部分組成,其中vbAbortRetrylgnore用來(lái)在信息框中顯示3個(gè)按鈕,分別為“終止”、“重試”和
"忽略”;vbCritical用來(lái)在信息框中顯示CriticalMessage圖標(biāo);而vbDefaultButton3把信息框的第
三個(gè)按鈕(即“忽略”)指定為默認(rèn)按鈕。執(zhí)行該語(yǔ)句后,在信息框中顯示3個(gè)按鈕,并把第三個(gè)按鈕
作為默認(rèn)按鈕.此時(shí)如果按回車(chē)鍵,則返回值是該按鈕所對(duì)應(yīng)的值。由于“忽略”按鈕對(duì)應(yīng)的值是
5,因此變量answer的值為5。
【答案】B
例5執(zhí)行下列語(yǔ)句后,顯示輸入對(duì)話框,此時(shí)如果單擊“確定”按鈕,則變量strhiput的內(nèi)容是
slrinput=InputBox(“請(qǐng)輸入字符串”,“字符串對(duì)話框”,“字符串”)
【分析】在執(zhí)行InputBox函數(shù)時(shí),會(huì)產(chǎn)生一個(gè)輸入對(duì)話框,該函數(shù)有7個(gè)參數(shù),前三個(gè)參數(shù)都是字
符串。其中第一個(gè)參數(shù)用來(lái)在輸入對(duì)話框內(nèi)顯示一個(gè)提示用戶輸入的字符串,第二個(gè)參數(shù)是對(duì)話框
的標(biāo)題,第三個(gè)參數(shù)是輸入的默認(rèn)信息。也就是說(shuō),在執(zhí)行InputBox函數(shù)后,如果用戶沒(méi)有輸入任何
信息,則可用此默認(rèn)字符串作為輸入值。如果不想用這個(gè)默認(rèn)字符串作為輸入值,則可在輸入?yún)^(qū)宜接
鍵入數(shù)據(jù),以取代默認(rèn)值。在咳例中,顯示對(duì)話框后直接單擊“確定”按鈕,因此第三個(gè)參數(shù)就是默
認(rèn)的輸入值。
【答案】字符串
例6閱讀程序:
PrivateSubForm_Click()
msgl$="繼續(xù)嗎?”
msg2$="操作對(duì)話框"
r=MsgBox(msg1$,vbYcsNoOrvbDefaultButton2,msg2$)
EndSub
程序運(yùn)行后,單擊窗體,將產(chǎn)生一個(gè)信息框。此時(shí)如果直接按回車(chē)鍵,則相當(dāng)于用鼠標(biāo)單擊信息框中
的按鈕。
【分析】本例用MsgBox函數(shù)產(chǎn)生信息框,該函數(shù)的第?個(gè)參數(shù)在信息框內(nèi)顯示,第二個(gè)參數(shù)分為
兩部分,其中前一部分(即vbYesNo)用來(lái)在信息框中產(chǎn)生兩個(gè)按鈕,分別為“是”和“否”,后一部
分(即vbDefaultButton2)把第二個(gè)按鈕(即“否”)設(shè)置為默認(rèn)按鈕;笫三個(gè)參數(shù)是信息框的標(biāo)題。程
序運(yùn)行后,單擊窗體,所產(chǎn)生的信息框的標(biāo)題為“操作對(duì)話框”,在信息框內(nèi)顯示的內(nèi)容是“繼續(xù)嗎?”,
兩個(gè)按鈕分別是“是”和“否”,其中“否”是默認(rèn)按鈕。此時(shí)如果按回車(chē)犍,則與單擊“否”按鈕
效果相同。
【答案】“否”或第二個(gè)
例7設(shè)有如下程序:
PrivateSubFoim_Click()
a=32548.56
PrintFormat(Int((a*10+0.5))/10,0000,000.00")
EndSub
程序運(yùn)行后,單擊窗體,輸出結(jié)果是。
【分析】本例用Format函數(shù)對(duì)數(shù)值進(jìn)行格式化輸出,要輸出的數(shù)值存放在變量a中。Format函數(shù)
的第一個(gè)參數(shù)對(duì)變量a進(jìn)行了舍入處理,保留一位小數(shù),第二位小數(shù)四舍五入,其值為32548.6。
Format函數(shù)的第二個(gè)參數(shù)是格式說(shuō)明符,使用的說(shuō)明符有“0”和“,”,保留兩位小數(shù),該函數(shù)的返
回值為032,548.60。
【答案】032,548.60
例8編寫(xiě)程序,計(jì)算圓的面積。
【分析】圓面積的計(jì)算公式為:
S=nr2
其中r是要計(jì)算面積的圓的半徑,程序運(yùn)行后從鍵盤(pán)上輸入。
程序如下:
PrivateSubForm_Click()
ConstPI=3.14159
DimrAsSingle,SAsSingle
r=InputBox(',請(qǐng)輸入圓的半徑",“輸入數(shù)據(jù)",“50")
S=PI*r*r
Print"S=',;Format(S,"###,###.##H)
EndSub
程序運(yùn)行后,單擊窗體,將顯示一個(gè)輸入對(duì)話框,在該對(duì)話框中輸入圓的半徑(默認(rèn)為50),然后
單擊確定按鈕或按回車(chē)鍵,即可在窗體上輸出圓的面積。假定在對(duì)話框中輸入35,則單擊“確定”
按鈕后,輸出結(jié)果為:5=3,848.45。
例9從鍵盤(pán)上輸入小時(shí)、分和秒,把它轉(zhuǎn)換為秒數(shù)并輸出。
【分析】1小時(shí)等于60分,1分鐘等于60秒。把小時(shí)數(shù)乘以60*60,把分鐘數(shù)乘以60,再加上秒數(shù),
就等于總秒數(shù)。設(shè)小時(shí)數(shù)為H,分鐘數(shù)為M,秒數(shù)為S,則H小時(shí)、M分、S秒的總秒數(shù)SS為:
SS=H*60*60+M*60+S
程序如下:
PrivateSubForm_Click()
H=InputBox("請(qǐng)輸入小時(shí)","小時(shí)”)
H=Val(H)
M=InputBox(“請(qǐng)輸入分“」分")
M=Val(M)
S=InputBox("請(qǐng)輸入秒1秒”)
S=Val(S)
SS=S+M*60+H*60*60
PrintH;"小時(shí)";M;"分”;S;”秒=";SS;"秒'
EndSub
程序運(yùn)行后,單擊窗體,將先后顯示3個(gè)輸入對(duì)話框,要求輸入小時(shí)、分和秒。假定分別輸入5.45
和25,則輸出結(jié)果為:
5小時(shí)45分25秒=20725秒
第五章常用標(biāo)準(zhǔn)控件例題
例1在窗體上畫(huà)兩個(gè)文本框(其名稱分別為T(mén)extl和Texl2)和一個(gè)命令按鈕(其名稱為Commandl),然
后編寫(xiě)如下兩個(gè)事件過(guò)程:
PrivateSubCommandI_Click()
Text1.Text="ComputerRankExamination',
EndSub
PrivateSubTextl_Change()
Tcxt2.Tcxt=UCase(TextIText)
EndSub
程序運(yùn)行后,單擊命令按鈕,則在Text2文本框中顯示的內(nèi)容是
A.ComputerRankExamination
B.computerrankexamination
C.COMPUTERRANKEXAMINATION
D.空字符串
【分析】該例有兩個(gè)事件過(guò)程,一個(gè)是命令按鈕的Click事件過(guò)程,一個(gè)是文本框的Texll的Change
事件過(guò)程,當(dāng)單擊命令按鈕時(shí),執(zhí)行前一個(gè)事件過(guò)程,而當(dāng)在文本框Textl中輸入信息時(shí),將執(zhí)行該
文本框的Change事件過(guò)程。在命令按鈕事件過(guò)程中,為文本框Textl的Text屬性賦值,即在該文本
框中顯示字符串“ComputerRankExamination”,在這種情況下,將觸發(fā)Textl文本框的Change事件,
把文本框Textl中的所有字母轉(zhuǎn)換為大寫(xiě)字母,并在文本框Tcxt2中顯示出來(lái)。程序運(yùn)行后,如果單
擊命令按鈕,則將先后觸發(fā)命令按鈕的Click事件和文本框Textl的Change事件,分別在兩個(gè)文本框
中顯示由兩個(gè)事件過(guò)程所指定的內(nèi)容。
【答案】C
例2在窗體上畫(huà)一個(gè)名稱為L(zhǎng)istl的列表框,一個(gè)名稱為L(zhǎng)abell的標(biāo)簽。列表框中顯示若干城市的
名稱。當(dāng)單擊列表框中的某個(gè)城市名時(shí),在標(biāo)簽中顯示選中城市的名稱。下列能正確實(shí)現(xiàn)上述功能
的程序是
A.PrivateSubListl_Click()
Label1.Caption=Listl.Listindex
EndSub
B.PrivateSubListl.ClickQ
.Label1.Nam..List1.Listindex
EndSub
C.PrivateSubListl_Click()
Labell.Name=Listl.Text
EndSub
I).PrivateSubLisll_Click()
Labe1I.Caption=Listl.Text
EndSub
【分析】所給出的4個(gè)選擇都是列表框的Click事件過(guò)程。當(dāng)單擊列表框中的某一項(xiàng)時(shí),將發(fā)生單
擊事件,同時(shí)選擇一個(gè)列表項(xiàng),這個(gè)列表項(xiàng)可以用列表框的Text屬性來(lái)表示。也就是說(shuō),Listl.Text
就是所選擇的項(xiàng)目。此外,為了在標(biāo)簽中顯示所選擇的列表項(xiàng),必須使用列表框的標(biāo)題屬性,即
LabelI.Captiono因此,正確的語(yǔ)句應(yīng)當(dāng)是:
Label1.Caption=ListI.Text
在VisualBasic中,不能在運(yùn)行期間改變控件或窗體的名稱(Name屬性),因此B和C兩個(gè)選擇都
是錯(cuò)誤的;而列表框的Listindex屬性是所選擇的列表項(xiàng)的位置,即列表項(xiàng)的標(biāo)題,不是列表項(xiàng)本身。
【答案】D
例3在窗體上畫(huà)一個(gè)文本框、一個(gè)標(biāo)簽和一個(gè)命令按鈕,其名稱分別為T(mén)extl.Label1和Commandl,
然后編寫(xiě)如下兩個(gè)事件過(guò)程:
PrivateSubCommandl_Click()
a=InputBox("請(qǐng)輸入一個(gè)字符串”)
Textl.Text=a
EndSub
PrivateSubTextl_Change()
Label1.Caption=UCase(Mid(Text1.Text,8))
EndSub
程序運(yùn)行后,單擊命令按鈕,將顯示一個(gè)輸入對(duì)話框,如果在該對(duì)話框中輸入字符串“VisualBasic”,
則在標(biāo)簽中顯示的內(nèi)容是
A.visualbasicB.VISUALBASIC
C.basicD.BASIC
分析】該例包括兩個(gè)事件過(guò)程,其中命令按鈕事件過(guò)程通過(guò)輸入對(duì)話框來(lái)輸入一個(gè)字符相,并把這
個(gè)字符串賦給文本框。而當(dāng)改變文本框的內(nèi)容時(shí),將觸發(fā)文本框的Change事件。因此,在把輸入的
字符串賦給文本框時(shí),將執(zhí)行文本框的Change事件過(guò)程,對(duì)標(biāo)簽的Caption屬性賦值,該佳是:首先
取出文本框中第八個(gè)字符之后的全部字符,然后把它們轉(zhuǎn)換為大寫(xiě)字母。由于文本框中的字符串為
“VisualBasic",第八個(gè)字符為“B”,它之后的字符為“Basic”,執(zhí)行Ucase函數(shù)后,轉(zhuǎn)換為大寫(xiě),即
“BASIC”。
【答案】D
例4在窗體上畫(huà)兩個(gè)文本框《名稱分別為T(mén)extl和Text2)和一個(gè)命令按鈕(名稱為CommandI),然后
編寫(xiě)如下事件過(guò)程:
PrivateSubCommand1Click()
Text1.Text=InputBox(”請(qǐng)輸入身高")
Texl2.Texl=InputBox("請(qǐng)輸入體重”)
EndSub
程序運(yùn)行后,如果單擊命令按鈕,將先后顯示兩個(gè)輸入對(duì)話框,在兩個(gè)輸入對(duì)話框中分別輸入1.78
和75,則兩個(gè)文本框中顯示的內(nèi)容分別為和o
【分析】在一般情況下,通過(guò)InputBox函數(shù)輸入的數(shù)據(jù)被賦給一個(gè)變量。在本例中,沒(méi)有使用變量,
而是直接把輸入對(duì)話框中的值賦給文本框的Text屬性。因此,第一個(gè)文本框接收的是身高,第二個(gè)
文本框接收的是體重。
【答案】1.7875
例5為了在運(yùn)行時(shí)把"d:\pic”文件夾下的圖形文件a.jpg裝入圖片框Picture1,所使用的語(yǔ)句為
分析】在運(yùn)行期間,可以用LoadPicture函數(shù)把指定的圖形文件裝入窗體、圖片框或圖像框,它實(shí)際
上是把圖形文件賦給對(duì)象的Picture屬性。一般格式為:
[對(duì)象.]Picture=LoadPiclure(“文件名”)其中的“文件名”可以是多種格式的圖形文件,包
括.bmp、.ico、.wmf、.emf、.jpg、.gif等,提供的“文件名”可以含有路徑。對(duì)于本例來(lái)說(shuō),“文件
名”(包括路徑)是:d:\pic\a.jpg,“對(duì)象”是Pictured
【答案】Picture1.Picture=LoadPicture("d:\pic\a.jpg")
例6在窗體上畫(huà)一個(gè)列表框、一個(gè)命令按鈕和一個(gè)標(biāo)簽。程序運(yùn)行后,在列表框中選擇一個(gè)項(xiàng)目,然
后單擊命令按鈕,即可將所選擇的項(xiàng)目刪除,并在標(biāo)簽中顯示列表框當(dāng)前的項(xiàng)目數(shù),運(yùn)行梢況如圖
6-1所示。下面是實(shí)現(xiàn)上述功能的程序,請(qǐng)?zhí)羁铡?/p>
PrivateSubForm_Load()
ListI.Additem"AAAAA"
List1.Additem"BBBBB"
List1.Additem"CCCCC"
ListI.Additem"DDDDD"
EndSub
PrivateSubCommandI_Click()
DimLAsInteger
L=______
Ifind>=0Then
Listl.RcmovcItcm
Label1.Caplion=
Else
MsgBox"請(qǐng)選擇要?jiǎng)h除的項(xiàng)目"
EndIf
EndSub
【分析】本例提供的程序包括兩個(gè)事件過(guò)程,其中FormLoad事件過(guò)程用來(lái)向列表框中添加項(xiàng)目,
而CommandlClick事件過(guò)程刪除列表框中被選擇的項(xiàng)目,并在標(biāo)簽中顯示列表框當(dāng)前的項(xiàng)目數(shù),需
要填空的代碼在這個(gè)事件過(guò)程中。
為了刪除列表框中指定的項(xiàng)目,可以使用Removehem方法,其格式為:
列表框.Rcmovcltcm索引值其中的“索引值”足項(xiàng)H的地址,列表框中的項(xiàng)H從。開(kāi)始計(jì)數(shù),被選擇
的項(xiàng)目的索引值就是列表框的Listlndex屬性。為了刪除列表框中被選擇的項(xiàng)目,必須先確定該項(xiàng)目
的索引值,即列表框的Listlndsx屬性,然后就可以用Renioveltem方法將其刪除。本題中的第一個(gè)空
是被選擇的項(xiàng)目的索引值,應(yīng)為L(zhǎng)istl.Listlndex,并把它賦給變量L。第二個(gè)空是Removeitem方法的
參數(shù),即“索引值”,由于該值已保存在變量L中,因此應(yīng)填入L。第三個(gè)空是列表框中當(dāng)前的項(xiàng)目
數(shù),它就是列表框的ListCount屬性。
【答案】List1.Listindex
L
List1.ListCount
例7在窗體上畫(huà)一個(gè)圖片框、一個(gè)垂直滾動(dòng)條和一個(gè)命令按鈕(標(biāo)題為“設(shè)置屬性”),通過(guò)屬性窗
口在圖片框中裝入一個(gè)圖形,圖片框的寬度與圖形的寬度相同,圖片框的高度任意。編寫(xiě)適當(dāng)?shù)氖录?/p>
過(guò)程。程序運(yùn)行后,如果單擊命令按鈕,則設(shè)置垂直滾動(dòng)條的屬性如下:
Min100
Max240D
LargeChange200
SmallChange20
之后就可以通過(guò)移動(dòng)滾動(dòng)條上的滾動(dòng)框來(lái)放大或縮小圖片框。
【分析】本例要求程序?qū)崿F(xiàn)兩個(gè)方面的功能,其一是當(dāng)單擊命令按鈕時(shí)設(shè)置滾動(dòng)條的幾個(gè)屬性:其
二是當(dāng)移動(dòng)滾動(dòng)條的滾動(dòng)框時(shí)擴(kuò)大或縮小圖片框的高度。第一個(gè)功能可以通過(guò)下面的事件過(guò)程來(lái)實(shí)
現(xiàn):
PrivateSubCommandl_Click()
VScrolll.Min=100
VScroll1.Max=2400
VScroll1.LargeChange=200
VScroll1.SmallChange=20
EndSub
第二個(gè)功能可以用下面的事件過(guò)程來(lái)實(shí)現(xiàn):
PrivateSubVScrollI_Change()
Picture1.Height=VScrollI.Value
EndSub
例8在窗體上畫(huà)兩個(gè)命令按羽和一個(gè)標(biāo)簽,把兩個(gè)命令按鈕的標(biāo)題分別設(shè)置為“縮小”和“擴(kuò)大”;
把標(biāo)簽的AutoSize屬性設(shè)置為T(mén)rue,標(biāo)題設(shè)置為“計(jì)算機(jī)等級(jí)考試”。程序運(yùn)行后,如果單擊第一個(gè)
命令按鈕,則可使標(biāo)簽中標(biāo)題的字體大小縮小1.2倍;如果單擊第二個(gè)命令按鈕,則可使標(biāo)簽中標(biāo)題
的字體大小擴(kuò)大L2倍。
【分析】命令按鈕和標(biāo)簽的標(biāo)題以及標(biāo)簽的AutoSize屬性可以通過(guò)屬性窗口設(shè)置,也可以在運(yùn)行期
間設(shè)置。程序運(yùn)行后,首先執(zhí)行Form_Load事件過(guò)程,可以壬設(shè)置標(biāo)題和AutoSize屬性的代碼放在
該事件過(guò)程中。根據(jù)題意,當(dāng)單擊兩個(gè)命令按鈕時(shí),分別使得標(biāo)簽中的字體縮小或擴(kuò)大1.2倍,而字
體的大小可以通過(guò)標(biāo)簽的FoniSize屬性來(lái)設(shè)置。因此,如果想使標(biāo)簽中的字體縮小1.2倍,則可執(zhí)行
下面的語(yǔ)句:
Label1.FontSize=Label1.FontSize/1.2
而如果想使標(biāo)簽中的字體擴(kuò)大L2倍,則應(yīng)執(zhí)行的語(yǔ)句為:
Label1.FontSize=Label1.FontSize*1.2程序如下:
PrivateSubFormLoad()
Label1Caption二”計(jì)算機(jī)等級(jí)考試”
Command1.Caption="縮小"
Command2.Caption="擴(kuò)大"
Label1.AutoSize=Truc
EndSub
PrivateSubCommandI_Click()
Label1.FontSize=Label1.FontSize/1.2
EndSub
PrivateSubCommand2_Click()
Label1.FontSize=Label1.FontSize*1.2
EndSub
第六章VB控制結(jié)構(gòu)例題
例1已知一個(gè)人出生的年、月、日分別存放在變量yO、mO、dO中,當(dāng)前日期的年、月、日分別存
放在變量yl.ml.dl中,這個(gè)人的實(shí)足年齡存放在變量age中。則以下可以正確計(jì)算實(shí)足年齡的程序
段是
A.B.
age=y1-yOage=y1-yO
Ifml<mOThenIfml<mOOrdKdOThen
age=age-Iage=age-1
Elselfdl<dOThenEndIf
age=age-1
EndIf
C.D.
age=y1-yOage=y1-yO
Ifml<mOThenIfml<mOThen
age=age-1age=age-1
EndIfEndIf
Ifml=mOAnddl<dOThenIfdl<dOThen
age=age-1age=age-1
EndIfEndIf
【分析】所謂實(shí)足年齡,指的是實(shí)際到達(dá)的年齡,即當(dāng)前的年、月、日都分別大于或等于出生的年、
月、日C例如一個(gè)人的出牛日期是1964年8月23日,當(dāng)前日期為2002年8月23日,則這個(gè)人的實(shí)
足年齡就是38歲;如果當(dāng)前日期為2002年7月或2002年8月22日,則這個(gè)人的實(shí)足年齡就是37
歲。
這就是說(shuō),為了計(jì)算一個(gè)人的實(shí)足年齡,需要進(jìn)行以下操作:
(I)計(jì)算出y1-yO,并把結(jié)果賦給age。
(2)如果mlVmO,則實(shí)足年齡為age-1。
(3)否則,如果ml=m0但dlVdO,則實(shí)足年齡為age-1。
(4)否則,如果ml=m0且dl>=dO,則實(shí)足年齡為age。
可以看出,為了計(jì)算實(shí)足年齡,可以先計(jì)算age=yl-yO,如果mlVmO,則不再考慮dl是否大于
dO,實(shí)足年齡=28?-1;如果ml=m0,則還要看dl是否大于等于dO,如果小于,則實(shí)足年齡=age-l,否
則實(shí)足年齡=age。
根據(jù)上面的分析,答案A顯然是不正確的,因?yàn)樵跍y(cè)試mlVmO后,就沒(méi)有必要再測(cè)試dl是否大于
dOo答案B和D類似,只單獨(dú)測(cè)試月或R,不能得到正確結(jié)果,只有答案C正確地描述了上面所分
析的情況。
[答案]c
例2’焉窗體上畫(huà)一個(gè)命令按鈕和一個(gè)文本框,然后編寫(xiě)如下程序:
PrivateSubCommandI_Click()
a=10
t二”旅游景點(diǎn):H_
&Hf(a>3,"長(zhǎng)城
&n「(aV8,"故宮
“頤和園
Text1.Text=t
EndSub
程序運(yùn)行后,單擊命令按鈕,則在文本框中顯示的內(nèi)容是
A.旅游景點(diǎn):長(zhǎng)城故宮B.旅游景點(diǎn):長(zhǎng)城頤和園
C.旅游景點(diǎn):頤和園D.旅游景點(diǎn):故宮
【分析】Hf函數(shù)有三個(gè)參數(shù).其中第一個(gè)參數(shù)是一個(gè)Boolean值,如果該參數(shù)的值為T(mén)rue,則函數(shù)
的返回值為第二個(gè)參數(shù);如果第一個(gè)參數(shù)的返回值為False,則函數(shù)的返回值為第三個(gè)參數(shù)。該例中
變量a的值為10,在第一個(gè)Hf函數(shù)中,第一個(gè)參數(shù)為T(mén)rue,其返回值為第二個(gè)參數(shù),即“長(zhǎng)城”;在
第二個(gè)Ilf函數(shù)中,第一個(gè)參數(shù)為False,其返問(wèn)值為第三個(gè)參數(shù),即空字符串;而在第三個(gè)Hf函數(shù)中,
第一個(gè)參數(shù)為T(mén)rue,莫返回值為第二個(gè)參數(shù),即“頤和園”v變量t的值為,
”旅游景點(diǎn):長(zhǎng)城&'頤和園”
【答案】B
例3假定有下面的程序段:
Fori=1To3
Forj=1Toi
Fork=jTo3
Print"i='*;i,”j=0;j,"k=";k
Nextk
Nextj
Nexti
這是一個(gè)三重循環(huán)程序,在這個(gè)程序中,外層、中層和內(nèi)層循環(huán)的循環(huán)次數(shù)是
A.3.6和14B.3.8和16
C.3.4和12D.3.9和18
【分析】在多重循環(huán)中,外層循環(huán)變化一次,內(nèi)層循環(huán)從頭到尾執(zhí)行一遍。該題是一個(gè)三重循環(huán),而
且中層循環(huán)變量的終值和內(nèi)層循環(huán)變量的初值是隨上一層循環(huán)的循環(huán)變量的變化而變化的,因此需
要逐層加以計(jì)算后累加出各層的循環(huán)次數(shù)。模擬計(jì)算機(jī)的計(jì)算過(guò)程,計(jì)算各層的循環(huán)次數(shù)如下:
(1)外層循環(huán):i=lTo3,循環(huán)次數(shù)為3
(2)中層循環(huán):當(dāng)i=l時(shí),j=lTo1,循環(huán)I次
當(dāng)i=2時(shí),j=llb2,循環(huán)2次
當(dāng)i=3時(shí),j=lTo3,循環(huán)3次
中層循環(huán)的循環(huán)次數(shù)為6
(3)內(nèi)層循環(huán):當(dāng)j=l時(shí),k=lTo3,循環(huán)3次
當(dāng)j=1時(shí),k=lTo3,循環(huán)3次
當(dāng)j=2時(shí),k=2To3,循環(huán)2次
當(dāng)j=l時(shí),k=lTo3,循環(huán)3次
當(dāng)j=2時(shí),k=2To3,循環(huán)2次
當(dāng)j=3時(shí),k=3To3,循環(huán)1次
內(nèi)層循環(huán)的循環(huán)次數(shù)為14
[答案]A
例4’海定有以下當(dāng)循環(huán):
WhileNot條件
循環(huán)體
WEnd
則執(zhí)行循環(huán)體的“條件”是
A.TrueB.1C.FalseD.-1
【分析1在當(dāng)循環(huán)中,只有當(dāng)While后面的“條件”為T(mén)rue時(shí)才能進(jìn)入循環(huán),執(zhí)行循環(huán)體。也就是
說(shuō),在While條件中,只有“條件”為T(mén)rue才能執(zhí)行循環(huán)體。本題在“條件”前加了一個(gè)取反運(yùn)算
符Noi,要想執(zhí)行循環(huán)體,必須對(duì)“條件”本身求反,即“條件”必須為False。
【答案】C
例5閱讀下面的程序:
PrivateSubForm_Click()
Dimm,nAsInteger
m=InpulBox("請(qǐng)輸入M的值”)
m=Val(m)
m1=m
n=InputBox("請(qǐng)輸入N的值”)
n=Val(n)
nl=n
DoWhilenOO
remin=rnModn
m=n
n=remin
Loop
Printml,nl,m
EndSub
程序運(yùn)行后,單擊窗體,在輸入對(duì)話框中分別輸入16和24,則程序在窗體上的輸出結(jié)果為
A.16244
B.16248
C.24166
D.24168
【分析】本題提供的是用“輾轉(zhuǎn)相除法”求兩個(gè)整數(shù)的最大公約數(shù)的程序。一般來(lái)說(shuō),假定有兩個(gè)
整數(shù)m和n(m>n),把m作為被除數(shù),n作為除數(shù),相除后余數(shù)為r。如果r不等于0,則令m=n,n=r,再
進(jìn)行一次除法運(yùn)算(以新的m作為被除數(shù),n作為除數(shù)),得到新的r。如果r仍不等于0,則重復(fù)上述
過(guò)程,直到LO為止,此時(shí)的n就是兩個(gè)數(shù)的最大公約數(shù)。
在本題的D。While-Loop循環(huán)中,通過(guò)輾轉(zhuǎn)相除求最大公約數(shù),循環(huán)結(jié)束的條件是相除后余數(shù)為
0.如果不為。,則一直“除”下去。這里用Mod運(yùn)算符求余數(shù),較大的整數(shù)作為被除數(shù)或者較小的
整數(shù)作為被除數(shù)都可以得到正確結(jié)果,但整除的次數(shù)可.能會(huì)不一樣。
例如,假定有兩個(gè)數(shù)24和16,先把24作為被除數(shù),16作為除數(shù),相除后余數(shù)為8。再把原來(lái)的
除數(shù)16作為下一次的被除數(shù),將上一次得到的余數(shù)8作為下一次的除數(shù),相除后余數(shù)為0。此時(shí)最
后一次的除數(shù)8就是所求的最大公約數(shù)。
在本題的輸入中,先輸入16,再輸入24,求出的最大公約數(shù)仍為8。
【答案】B
例6閱讀下面的程序:
PrivateSubForm_Click()
DimCheck,Counter
Check=True
Counter=0
Do
DoWhileCounter<20
Counter=Counter+1
IfCounter=10Then
Check=False
ExitDo
EndIf
Loop
LoopUntilCheck=False
PrintCounter,Check
EndSub
程序運(yùn)行后,單擊窗體,輸出結(jié)果為
A.150B.20-1
C.10TrueD.10False
【分析】這是一個(gè)二重循環(huán),內(nèi)層和外層都是D。循環(huán)。在內(nèi)層循環(huán)中,執(zhí)行循環(huán)體的條件是Counter
小于20,由于Counter的初值為0,因此執(zhí)行循環(huán)體。在循環(huán)體中,每次循環(huán)Counter增1,達(dá)到10
后,把Check變量設(shè)置為False,同時(shí)執(zhí)行ExitDo,退出內(nèi)層循環(huán)。外層循環(huán)執(zhí)行的條件是,變量
Check的值是True。如果Check為False,則退出外層循環(huán),輸出結(jié)果,結(jié)束程序。由于在退出內(nèi)層循
環(huán)時(shí),Check已被設(shè)置為False,因此退出內(nèi)層循環(huán)后立即就可以退出外層循環(huán)。退出兩層循環(huán)后,
Counter和Check的值沒(méi)有發(fā)生任何改變,與退出內(nèi)層循環(huán)時(shí)相同,分別為10和False。
[答案]D
例7星上面例題6的二重循環(huán)中,如果把外層循環(huán)中的Until關(guān)鍵字改為While,要求輸出結(jié)果相同,
請(qǐng)?zhí)羁铡?/p>
Do
DoWhileCounter<20
Counter=Counter+1
IfCounter=10Then
Check=False
ExitDo
EndIf
Loop
LoopWhile
【分析】在Do-Loop循環(huán)中,Until關(guān)鍵字的含義是“直到條件變?yōu)檎嬷啊眻?zhí)行循環(huán)體,而While
關(guān)鍵字正好相反,是“當(dāng)條件為真時(shí)”執(zhí)行循環(huán)體。也就是說(shuō),這兩個(gè)關(guān)鍵字后面的條件是相反的,只
要在條件前加上取反運(yùn)算符Not,或者條件從False改為T(mén)rue,就可以用While替換Until,并且反之
亦然。
【答案】NotCheck=False或Check=True
例8閱讀程序:
PrivateSubForm_Click()
DimiAsInteger,sumAsInteger
Fori=2To10
IfiMod2<>0Then
Printi
Else
sum=sum+i
EndIf
Nexti
Printsum
EndSub
程序運(yùn)行后,單擊窗體,在窗體上的輸出
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大對(duì)數(shù)施工方案(3篇)
- 鼓結(jié)構(gòu)施工方案(3篇)
- 優(yōu)才活動(dòng)策劃方案(3篇)
- 民豐跨年活動(dòng)策劃方案(3篇)
- 春節(jié)閱讀活動(dòng)策劃方案(3篇)
- 生態(tài)灰泥施工方案(3篇)
- 安吉度假酒店設(shè)計(jì)方案
- 中學(xué)學(xué)生社團(tuán)活動(dòng)策劃與實(shí)施制度
- DB61∕T 1144-2018 公路瀝青路面乳化瀝青廠拌冷再生技術(shù)規(guī)范
- 2025年中職口腔技術(shù)(口腔技術(shù)案例分析)試題及答案
- 2026年初二物理寒假作業(yè)(1.31-3.1)
- 2025秋人教版七年級(jí)上冊(cè)音樂(lè)期末測(cè)試卷(三套含答案)
- 2025福建德化閩投抽水蓄能有限公司招聘4人(公共基礎(chǔ)知識(shí))綜合能力測(cè)試題附答案
- GJB3243A-2021電子元器件表面安裝要求
- 糧食儲(chǔ)備庫(kù)擴(kuò)建工程施工組織設(shè)計(jì)方案樣本
- 創(chuàng)新創(chuàng)業(yè)與組織管理
- 產(chǎn)品質(zhì)量鑒定通用程序規(guī)范
- 中橋施工組織設(shè)計(jì)方案
- 一類,二類,三類醫(yī)療器械分類目錄
- 國(guó)開(kāi)大學(xué)2022年01月2136《管理會(huì)計(jì)》期末考試參考答案
- 健康相關(guān)生存質(zhì)量及其測(cè)量和評(píng)價(jià)課件
評(píng)論
0/150
提交評(píng)論