vb期末考試復(fù)習(xí)資料(經(jīng)典總結(jié)版)1_第1頁(yè)
vb期末考試復(fù)習(xí)資料(經(jīng)典總結(jié)版)1_第2頁(yè)
vb期末考試復(fù)習(xí)資料(經(jīng)典總結(jié)版)1_第3頁(yè)
vb期末考試復(fù)習(xí)資料(經(jīng)典總結(jié)版)1_第4頁(yè)
vb期末考試復(fù)習(xí)資料(經(jīng)典總結(jié)版)1_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論